Browse Source

新功能:报表导出Excel/service.fetch方法添加文件下载功能,返回参数格式调整

zhuth 6 years ago
parent
commit
5e9e2f286f

+ 2 - 2
src/components/common/filterBox/filter.jsx

@@ -266,14 +266,14 @@ class Filter extends React.Component {
                     allow: true,
                     body: body,
                 }).then(r => {
-                    if(!r.err && r.data.code > 0) {
+                    if(r.code > 0) {
                         return r;
                     }else {
                         let obj = {};
                         throw obj;
                     }
                 }).then(r => {
-                    const resData = r.data.data || [];
+                    const resData = r.data || [];
                     this.setState({
                         columnData: resData.map(d => d || 'null'),
                         fetching: false

+ 2 - 2
src/components/common/filterBox/filter2.jsx

@@ -269,14 +269,14 @@ class Filter extends React.Component {
                     allow: true,
                     body: body,
                 }).then(r => {
-                    if(!r.err && r.data.code > 0) {
+                    if(r.code > 0) {
                         return r;
                     }else {
                         let obj = {};
                         throw obj;
                     }
                 }).then(r => {
-                    const resData = r.data.data || [];
+                    const resData = r.data || [];
                     // 需要把已经选择的值作为选项展示出来
                     if(value1) {
                         if(value1 instanceof Array) { // 如果value1是数组

+ 2 - 2
src/components/common/filterBox/filterBox.jsx

@@ -207,14 +207,14 @@ class FilterBox extends React.Component {
                     allow: true,
                     body: body,
                 }).then(r => {
-                    if(!r.err && r.data.code > 0) {
+                    if(r.code > 0) {
                         return r;
                     }else {
                         let obj = {};
                         throw obj;
                     }
                 }).then(r => {
-                    const resData = r.data.data || [];
+                    const resData = r.data || [];
                     let obj = {fetching: false}
                     obj['columnData-' + column.name] = resData.map(d => d || 'null')
                     this.setState(obj);

+ 4 - 4
src/components/common/filterBox/filterBox2.jsx

@@ -222,14 +222,14 @@ class FilterBox extends React.Component {
                     allow: true,
                     body: body,
                 }).then(r => {
-                    if(!r.err && r.data.code > 0) {
+                    if(r.code > 0) {
                         return r;
                     }else {
                         let obj = {};
                         throw obj;
                     }
                 }).then(r => {
-                    const resData = r.data.data || [];
+                    const resData = r.data || [];
                     let obj = {fetching: false};
                     obj['columnData-' + filter.name] = resData.map(d => d || 'null')
                     this.setState(obj);
@@ -566,14 +566,14 @@ class FilterBox extends React.Component {
             body: targetOption.name
         }).then(r => {
             targetOption.loading = false;
-            if(!r.err && r.data.code > 0) {
+            if(r.code > 0) {
                 return r;
             }else {
                 let obj = {};
                 throw obj;
             }
         }).then(r => {
-            const resData = r.data.data || [];
+            const resData = r.data || [];
             let columns = resData.map((c, i) => {
                 return {
                     key: i,

+ 2 - 2
src/components/common/selectUserBox/selectUserBox.jsx

@@ -28,14 +28,14 @@ class AddGroupMemberBox extends React.Component {
                     condition
                 },
             }).then(r => {
-                if(!r.err && r.data.code > 0) {
+                if(r.code > 0) {
                     return r;
                 }else {
                     let obj = {};
                     throw obj;
                 }
             }).then(r => {
-                const resData = r.data.data || [];
+                const resData = r.data || [];
                 this.setState({
                     userData: resData.map(d => ({
                         code: d.id + '',

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

@@ -74,7 +74,7 @@ class DashboardList extends React.Component {
             dispatch({ type: 'dashboard/shareList', code: selectedRecord.code })
             .then(
                 (resolve) => {
-                    const resData = resolve.data.data;
+                    const resData = resolve.data;
                     const { groupNames: defaultSelectedGroups, userNames: defaultSelectedUsers } = resData;
                     this.setState({
                         visibleDistributeBox: true,

+ 1 - 1
src/components/dashboardDesigner/viewLayout.less

@@ -127,7 +127,7 @@
         .anticon {
           display: inline-block;
           &:hover {
-            color: red;
+            color: @item-active-bg-color;
           }
         }
       }

+ 14 - 6
src/components/homePage/toolbar.jsx

@@ -2,6 +2,7 @@ import React from 'react'
 import { Icon, Modal } from 'antd'
 import { connect } from 'dva'
 import DashboardDesigner from '../dashboardDesigner/layout'
+import CusIcon from '../common/cusIcon/index'
 import './toolbar.less'
 
 class Toolbar extends React.Component {
@@ -50,24 +51,31 @@ class Toolbar extends React.Component {
         const { dispatch, home } = this.props;
         dispatch({ type: 'home/saveCurrentTabDashboardConfig', code: home.selectedTab.code });
     }
+
+    exportToExcel = () => {
+        const { dispatch } = this.props;
+        dispatch({ type: 'dashboardDesigner/exportToExcel' });
+    }
+
     render() {
         const { home } = this.props;
         const { tabs, selectedTab, collectionDashboards, fixedDashboard } = home;
         let { config } = tabs.find(t => t.code === selectedTab.code);
         return <div className='dashboardview-toolbar'>
             <div className='toos'>
-                <div className='tool'><span onClick={this.fullscreen}><Icon type="fullscreen" />全屏</span></div>
-                <div className='tool'><span onClick={this.refresh}><Icon type="sync" />刷新</span></div>
+                <div className='tool'><span onClick={this.fullscreen}><Icon title="全屏" type="fullscreen" /></span></div>
+                <div className='tool'><span onClick={this.refresh}><Icon title="刷新" type="sync" /></span></div>
                 <div className='tool'>{
                     collectionDashboards.findIndex(c => c.code === selectedTab.code) > -1 ? 
-                        <span onClick={this.uncollect}><Icon type="star" theme="filled" />取消收藏</span> :
-                        <span onClick={this.collect}><Icon type="star" />收藏</span>
+                        <span onClick={this.uncollect}><Icon title="取消收藏" type="star" theme="filled" /></span> :
+                        <span onClick={this.collect}><Icon title="收藏" type="star" /></span>
                 }</div>
                 <div className='tool'>{
                     (!!fixedDashboard && fixedDashboard.code === selectedTab.code) ? 
-                        <span onClick={this.onCancelFixed}><Icon type="star" theme="filled" />取消固定到首页</span> :
-                        <span onClick={this.onFixed}><Icon type="star" />固定到首页</span>
+                        <span onClick={this.onCancelFixed}><CusIcon title="取消固定到首页" type="bi-fixed" /></span> :
+                        <span onClick={this.onFixed}><CusIcon title="固定到首页" type="bi-no-fixed" /></span>
                 }</div>
+                <div className='tool'><span onClick={this.exportToExcel}><CusIcon title="导出Excel" type="bi-export-excel" /></span></div>
             </div>
             {/** 全屏展示modal */}
             {this.state.visibleFullscreenBox && <Modal

+ 5 - 2
src/components/homePage/toolbar.less

@@ -8,12 +8,15 @@
     border-color: @border-color-base;
     &>.toos {
         display: flex;
-        margin-right: 16px;
         &>.tool {
             cursor: pointer;
-            margin-right: 8px;
+            margin-left: 8px;
             i {
+                font-size: 18px;
                 margin: 0 4px;
+                &:hover {
+                    color: @item-active-bg-color;
+                }
             }
         }
     }

+ 2 - 0
src/constants/url.js

@@ -194,6 +194,8 @@ const URLS = {
 
     DASHBOARD_COLLECT_REMOVE: BASE_URL + 'dashboard/favorite/delete', // 报表取消收藏
 
+    DASHBOARD_EXPORT: BASE_URL + 'dashboard/export', // 报表导出
+
     /***************************************报表目录***************************************/
 
     DASHBOARD_MENU_TREE: BASE_URL + 'dashboard/menu/list', // 获取报表目录树

+ 11 - 11
src/models/authority.js

@@ -46,14 +46,14 @@ export default {
                     method: 'GET'
                 })
                 
-                if(!res.err && res.data.code > 0) {
-                    const list = res.data.data || [];
+                if(res.code > 0) {
+                    const list = res.data || [];
                     const dashboardList = list.map(l => l.id + '');
                     yield put({ type: 'setFields', fields: [
                         { name: 'dashboardList', value: dashboardList },
                     ] });
                 }else {
-                    message.error('获取报表目录失败: ' + (res.err || res.data.msg));
+                    message.error('获取报表目录失败: ' + res.msg);
                     return false;
                 }
             }catch(e) {
@@ -78,10 +78,10 @@ export default {
                         type: dtype
                     }
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'fetchDashboardTree', dtype, code });
                 }else {
-                    message.error('设置权限失败: ' + (res.err || res.data.msg));
+                    message.error('设置权限失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('设置权限失败: ' + e.message);
@@ -104,10 +104,10 @@ export default {
                         type: dtype
                     }
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'fetchDashboardTree', dtype, code });
                 }else {
-                    message.error('设置权限失败: ' + (res.err || res.data.msg));
+                    message.error('设置权限失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('设置权限失败: ' + e.message);
@@ -130,10 +130,10 @@ export default {
                         type: dtype
                     }
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'fetchDashboardTree', dtype, code });
                 }else {
-                    message.error('设置权限失败: ' + (res.err || res.data.msg));
+                    message.error('设置权限失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('设置权限失败: ' + e.message);
@@ -156,10 +156,10 @@ export default {
                         type: dtype
                     }
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'fetchDashboardTree', dtype, code });
                 }else {
-                    message.error('设置权限失败: ' + (res.err || res.data.msg));
+                    message.error('设置权限失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('设置权限失败: ' + e.message);

+ 36 - 36
src/models/chart.js

@@ -27,13 +27,13 @@ export default {
                             pageSize: 999999999
                         }
                     }).then(res => {
-                        if(!res.error && res.data.code > 0) {
-                            return res.data.data.list.map(l => ({
+                        if(res.code > 0) {
+                            return res.data.list.map(l => ({
                                 name: l.dataId,
                                 label: l.dataName,
                             }));
                         }else {
-                            message.error('获取数据源下拉列表失败: ' + res.data.msg);
+                            message.error('获取数据源下拉列表失败: ' + res.msg);
                         }
                     }).catch(e => {
                         message.error('获取数据源下拉列表失败: ' + e.message);
@@ -48,13 +48,13 @@ export default {
                             pageSize: 999999999
                         }
                     }).then(res => {
-                        if(!res.error && res.data.code > 0) {
-                            return res.data.data.list.map(l => ({
+                        if(res.code > 0) {
+                            return res.data.list.map(l => ({
                                 name: l.id,
                                 label: l.name,
                             }));
                         }else {
-                            message.error('获取数据链接下拉列表失败: ' + res.data.msg);
+                            message.error('获取数据链接下拉列表失败: ' + res.msg);
                         }
                     }).catch(e => {
                         message.error('获取数据链接下拉列表失败: ' + e.message);
@@ -198,8 +198,8 @@ export default {
                     method: 'GET',
                     body
                 });
-                if(!res.err && res.data.code > 0) {
-                    let list = res.data.data.list.map(d => {
+                if(res.code > 0) {
+                    let list = res.data.list.map(d => {
                         let chartOption = d.chartOption ? JSON.parse(d.chartOption) : {};
                         return {
                             code:  d.chartId+'',
@@ -225,7 +225,7 @@ export default {
                     yield put({ type: 'list', list: list });
                     return list;
                 }else {
-                    message.error('请求图表列表失败: ' + (res.err || res.data.msg));
+                    message.error('请求图表列表失败: ' + res.msg);
                     return false;
                 }
             }catch(e) {
@@ -247,8 +247,8 @@ export default {
                         id: code
                     }
                 });
-                if(!res.err && res.data.code > 0) {
-                    let resData = res.data.data;
+                if(res.code > 0) {
+                    let resData = res.data;
                     if(!resData) {
                         message.error('该图表不存在');
                         return false;
@@ -316,7 +316,7 @@ export default {
                     let pageSize = ~~((document.getElementsByClassName('content-body')[0].offsetHeight - 12 * 2 - 40 - 24 - 8 * 2)/38) + 1;
                     yield put({ type: 'chartDesigner/fetchChartData', page: 1, pageSize });
                 }else {
-                    message.error('解析图表错误: ' + (res.err || res.data.msg));
+                    message.error('解析图表错误: ' + res.msg);
                 }
             }catch(e) {
                 message.error('解析图表错误: ' + e.message);
@@ -363,11 +363,11 @@ export default {
                     url: URLS.CHART_ADD,
                     body: body
                 })
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     message.success('新增成功');
                     yield put({ type: 'fetchList', mandatory: true });
                 }else {
-                    message.error('新增失败: ' + (res.err || res.data.msg));
+                    message.error('新增失败: ' + res.msg);
                 }
             }catch(e) {
                 console.error(e);
@@ -414,11 +414,11 @@ export default {
                     url: URLS.CHART_UPDATE,
                     body: body
                 })
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     message.success('修改成功');
                     yield put({ type: 'fetchList', mandatory: true });
                 }else {
-                    message.error('修改失败: ' + (res.err || res.data.msg));
+                    message.error('修改失败: ' + res.msg);
                 }
             }catch(e) {
                 console.error(e);
@@ -434,7 +434,7 @@ export default {
                     url: URLS.CHART_DELETE,
                     body: code
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     for(let i = 0; i < list.length; i++) {
                         if(list[i].code === code) {
                             list.splice(i, 1);
@@ -444,7 +444,7 @@ export default {
                     yield put({ type: 'list', list: list });
                     message.success('删除成功');
                 }else {
-                    message.error('删除失败: ' + (res.err || res.data.msg));
+                    message.error('删除失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('删除失败: ' + e.message);
@@ -461,8 +461,8 @@ export default {
                     url: URLS.GROUP_CHART_LIST,
                 });
                 
-                if(!res.err && res.data.code > 0) {
-                    const resData = res.data.data;
+                if(res.code > 0) {
+                    const resData = res.data;
                     let data = resData.map(d => {
                         return {
                             code: d.id+'',
@@ -473,7 +473,7 @@ export default {
                     });
                     yield put({ type: 'groupList', data });
                 }else {
-                    message.error('读取图表分组列表错误: ' + (res.err || res.data.msg));
+                    message.error('读取图表分组列表错误: ' + res.msg);
                 }
             }catch(e) {
                 message.error('读取图表分组列表错误: ' + e.message);
@@ -493,12 +493,12 @@ export default {
                     url: URLS.GROUP_CHART_BATCH_SET,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     message.success('修改分组信息成功');
                     yield put({ type: 'remoteGroupList', mandatory: true });
                     return true;
                 }else {
-                    message.error('修改分组信息失败: ' + (res.data.msg));
+                    message.error('修改分组信息失败: ' + res.msg);
                     return false;
                 }
             }catch(e) {
@@ -534,16 +534,16 @@ export default {
                     url: URLS.GROUP_CHART_ADD,
                     body: body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     let group = {
-                        code: res.data.data + '',
+                        code: res.data + '',
                         pcode: body.fatherId + '',
                         index: body.groupIndex,
                         label: body.groupName+'',
                     }
                     yield put({ type: 'addGroup', group });
                 }else {
-                    message.error('添加分组失败: ' + (res.err || res.data.msg));
+                    message.error('添加分组失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('添加分组失败: ' + e.message);
@@ -571,10 +571,10 @@ export default {
                     url: URLS.GROUP_CHART_UPDATE,
                     body: body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'setGroupDirty', dirty: false });
                 }else {
-                    message.error('修改分组失败: ' + (res.err || res.data.msg));
+                    message.error('修改分组失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('修改分组失败: ' + e.message);
@@ -599,10 +599,10 @@ export default {
                     url: URLS.GROUP_CHART_LIST_UPDATE,
                     body: body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'modifyGroups', groups: groups });
                 }else {
-                    message.error('修改分组失败: ' + (res.err || res.data.msg));
+                    message.error('修改分组失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('修改分组失败: ' + e.message);
@@ -627,10 +627,10 @@ export default {
                     body: group.code
                 });
                 
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'deleteGroup', group});
                 }else {
-                    message.error('删除分组失败: ' + (res.err || res.data.msg));
+                    message.error('删除分组失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('删除分组失败: ' + e.message);
@@ -779,10 +779,10 @@ export default {
                     url: URLS.GROUP_CHART_SET_GROUP,
                     body: body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'setChartGroup', chartCode, groupCode });
                 }else {
-                    message.error('设置分组失败: ' + (res.err || res.data.msg));
+                    message.error('设置分组失败: ' + res.msg);
                 }
             } catch(e) {
                 message.error('设置分组失败: ' + e.message);
@@ -799,7 +799,7 @@ export default {
                     url: URLS.CHART_TRANSFER,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     const chart = yield select(state => state.present.chart);
                     const list = chart.list;
                     for(let i = 0; i < list.length; i++) {
@@ -811,7 +811,7 @@ export default {
                     yield put({ type: 'list', list });
                     message.success('移交成功');
                 }else {
-                    message.error('移交失败: ' + (res.err || res.data.msg));
+                    message.error('移交失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('移交失败: ' + e.message);

+ 31 - 31
src/models/chartDesigner.js

@@ -179,12 +179,12 @@ export default {
                     url: URLS.CHART_ADD,
                     body: body
                 })
-                if(!res.err && res.data.data > 0) {
+                if(res.data > 0) {
                     yield put({ type: 'chart/fetchList', mandatory: true });
-                    yield put({ type: 'main/redirect', path: '/chart/' + res.data.data });
-                    // yield put({ type: 'chart/remoteDetail', code: res.data.data });
+                    yield put({ type: 'main/redirect', path: '/chart/' + res.data });
+                    // yield put({ type: 'chart/remoteDetail', code: res.data });
                 }else {
-                    message.error('新增失败: ' + (res.err || res.data.msg));
+                    message.error('新增失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('新增失败: ' + e.message);
@@ -237,11 +237,11 @@ export default {
                     url: URLS.CHART_ADD,
                     body: body
                 })
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'chart/fetchList', mandatory: true });
-                    yield put({ type: 'main/redirect', path: '/chart/' + res.data.data , reload: true});
+                    yield put({ type: 'main/redirect', path: '/chart/' + res.data , reload: true});
                 }else {
-                    message.error('创建副本失败: ' + (res.err || res.data.msg));
+                    message.error('创建副本失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('创建副本失败: ' + e.message);
@@ -254,8 +254,8 @@ export default {
                     url: URLS.DATASOURCE_QUERY_DATACOLUMNS,
                     body: code
                 });
-                if(!res.err && res.data.code > 0) {
-                    let resData = res.data.data;
+                if(res.code > 0) {
+                    let resData = res.data;
 
                     let columns = resData.map((c, i) => {
                         return {
@@ -271,7 +271,7 @@ export default {
                     })
                     yield put({ type: 'silentSetField', name: 'columns', value: columns });
                 }else {
-                    message.error('请求列数据失败:' + (res.err || res.data.msg));
+                    message.error('请求列数据失败:' + res.msg);
                     yield put({ type: 'silentSetField', name: 'columns', value: [] });
                 }
             }catch(e) {
@@ -362,11 +362,11 @@ export default {
                     body: body,
                     timeout: 30000
                 });
-                if(!res.err && res.data.code > 0) {
-                    let option = parseChartOption('bar', res.data.data, barConfig, theme, styleConfig.bar || {});
+                if(res.code > 0) {
+                    let option = parseChartOption('bar', res.data, barConfig, theme, styleConfig.bar || {});
                     yield put({ type: 'silentSetField', name: 'chartOption', value: option });
                 }else {
-                    message.error('请求柱状图数据失败: ' + (res.err || res.data.msg));
+                    message.error('请求柱状图数据失败: ' + res.msg);
                     yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
                 }
                 yield put({ type: 'silentSetField', name: 'fetchConfig', value: body });
@@ -400,11 +400,11 @@ export default {
                     body: body,
                     timeout: 30000
                 });
-                if(!res.err && res.data.code > 0) {
-                    let option = parseChartOption('pie', res.data.data, pieConfig, theme, styleConfig.pie || {});
+                if(res.code > 0) {
+                    let option = parseChartOption('pie', res.data, pieConfig, theme, styleConfig.pie || {});
                     yield put({ type: 'silentSetField', name: 'chartOption', value: option });
                 }else {
-                    message.error('请求饼图数据失败: ' + (res.err || res.data.msg));
+                    message.error('请求饼图数据失败: ' + res.msg);
                     yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
                 }
                 yield put({ type: 'silentSetField', name: 'fetchConfig', value: body });
@@ -437,11 +437,11 @@ export default {
                     body: body,
                     timeout: 30000
                 });
-                if(!res.err && res.data.code > 0) {
-                    let option = parseChartOption('line', res.data.data, lineConfig, theme, styleConfig.line || {});
+                if(res.code > 0) {
+                    let option = parseChartOption('line', res.data, lineConfig, theme, styleConfig.line || {});
                     yield put({ type: 'silentSetField', name: 'chartOption', value: option });
                 }else {
-                    message.error('请求折线图数据失败: ' + (res.err || res.data.msg));
+                    message.error('请求折线图数据失败: ' + res.msg);
                     yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
                 }
                 yield put({ type: 'silentSetField', name: 'fetchConfig', value: body });
@@ -474,11 +474,11 @@ export default {
                     body: body,
                     timeout: 30000
                 });
-                if(!res.err && res.data.code > 0) {
-                    let option = parseChartOption('scatter', res.data.data, scatterConfig, theme, styleConfig.scatter || {});
+                if(res.code > 0) {
+                    let option = parseChartOption('scatter', res.data, scatterConfig, theme, styleConfig.scatter || {});
                     yield put({ type: 'silentSetField', name: 'chartOption', value: option });
                 }else {
-                    message.error('请求散点图数据失败: ' + (res.err || res.data.msg));
+                    message.error('请求散点图数据失败: ' + res.msg);
                     yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
                 }
                 yield put({ type: 'silentSetField', name: 'fetchConfig', value: body });
@@ -509,11 +509,11 @@ export default {
                     body: body,
                     timeout: 30000
                 });
-                if(!res.err && res.data.code > 0) {
-                    let option = parseChartOption('dataView', res.data.data, dataViewConfig, theme, styleConfig.dataView);
+                if(res.code > 0) {
+                    let option = parseChartOption('dataView', res.data, dataViewConfig, theme, styleConfig.dataView);
                     yield put({ type: 'silentSetField', name: 'chartOption', value: option });
                 }else {
-                    message.error('请求列表数据失败: ' + (res.err || res.data.msg));
+                    message.error('请求列表数据失败: ' + res.msg);
                     yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
                 }
                 yield put({ type: 'silentSetField', name: 'fetchConfig', value: body });
@@ -545,11 +545,11 @@ export default {
                     body: body,
                     timeout: 30000
                 });
-                if(!res.err && res.data.code > 0) {
-                    let option = parseChartOption('aggregateTable', res.data.data, aggregateTableConfig, theme, styleConfig.aggregateTable || {});
+                if(res.code > 0) {
+                    let option = parseChartOption('aggregateTable', res.data, aggregateTableConfig, theme, styleConfig.aggregateTable || {});
                     yield put({ type: 'silentSetField', name: 'chartOption', value: option });
                 }else {
-                    message.error('请求统计数据失败: ' + (res.err || res.data.msg));
+                    message.error('请求统计数据失败: ' + res.msg);
                     yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
                 }
                 yield put({ type: 'silentSetField', name: 'fetchConfig', value: body });
@@ -688,9 +688,9 @@ export default {
                     body: body,
                     timeout: 30000
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
 
-                    const { valueList } = res.data.data;
+                    const { valueList } = res.data;
                     const { list: dataSource, pageSize, total } = valueList;
 
                     yield put({ type: 'dataList/setFields', fields: [
@@ -700,7 +700,7 @@ export default {
                         { name: 'total', value: total }
                     ] });
                 }else {
-                    message.error('请求列表数据失败: ' + (res.err || res.data.msg));
+                    message.error('请求列表数据失败: ' + res.msg);
                     // yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
                 }
             }catch(e) {

+ 15 - 15
src/models/chartPolicy.js

@@ -102,8 +102,8 @@ export default {
                     url: URLS.CHART_POLICY_LIST,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
-                    let list = (res.data.data && res.data.data.length > 0) ? res.data.data.sort((a, b) => new Date(a.createDate) - new Date(b.createDate)).map(d => ({
+                if(res.code > 0) {
+                    let list = (res.data && res.data.length > 0) ? res.data.sort((a, b) => new Date(a.createDate) - new Date(b.createDate)).map(d => ({
                         code: d.strategies.id,
                         enabled: d.strategies.isOpen+'' === '1',
                         name: d.strategies.name,
@@ -120,7 +120,7 @@ export default {
                     })) : [];
                     yield put({ type: 'list', list });
                 }else {
-                    message.error('请求图表策略列表失败: ' + (res.err || res.data.msg));
+                    message.error('请求图表策略列表失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('读取图表策略列表错误: ' + e.message);
@@ -141,15 +141,15 @@ export default {
                     url: URLS.CHART_POLICY_ADD,
                     body,
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     let { list } = chartPolicy;
                     list.push({
-                        code: res.data.data,
+                        code: res.data,
                         ...policy
                     });
                     yield put({ type: 'list', list });
                 }else {
-                    message.error('添加失败: ' + (res.err || res.data.msg));
+                    message.error('添加失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('添加失败: ' + e.message);
@@ -170,10 +170,10 @@ export default {
                     url: URLS.CHART_POLICY_UPDATE,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'modify', policy });
                 }else {
-                    message.error('修改失败: ' + (res.err || res.data.msg));
+                    message.error('修改失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('修改失败: ' + e.message);
@@ -188,7 +188,7 @@ export default {
                     url: URLS.CHART_POLICY_DELETE,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     let { list } = chartPolicy;
                     for(let i = 0; i < list.length; i++) {
                         if(list[i].code === code) {
@@ -198,7 +198,7 @@ export default {
                     }
                     yield put({ type: 'list', list });
                 }else {
-                    message.error('删除失败: ' + (res.err || res.data.msg));
+                    message.error('删除失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('删除失败: ' + e.message);
@@ -219,13 +219,13 @@ export default {
                     url: URLS.CHART_POLICY_TARGET_UPDATE,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'modify', policy: {
                         ...policy,
                         targets
                     } });
                 }else {
-                    message.error('设置对象失败: ' + (res.err || res.data.msg));
+                    message.error('设置对象失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('设置对象失败: ' + e.message);
@@ -241,15 +241,15 @@ export default {
                     url: URLS.CHART_QUERY_DATACOLUMNS,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
-                    let columnData = res.data.data.map(d => ({
+                if(res.code > 0) {
+                    let columnData = res.data.map(d => ({
                         name: d.columnName,
                         label: d.columnRaname,
                         type: d.columnType,
                     }));
                     yield put({ type: 'setColumnData', columnData });
                 }else {
-                    message.error('获得图表列数据失败: ' + (res.err || res.data.msg));
+                    message.error('获得图表列数据失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('获得图表列数据失败: ' + e.message);

+ 43 - 43
src/models/dashboard.js

@@ -86,8 +86,8 @@ export default {
                     method: 'GET',
                     body
                 });
-                if(!res.err && res.data.code > 0) {
-                    const resData = res.data.data.list;
+                if(res.code > 0) {
+                    const resData = res.data.list;
                     let list = resData.map(d => {
                         let items = d.bdConfiguration ? JSON.parse(d.bdConfiguration) : [];
 
@@ -129,7 +129,7 @@ export default {
                     })
                     yield put({ type: 'list', list: list });
                 }else {
-                    message.error('请求报表列表失败: ' + (res.err || res.data.msg));
+                    message.error('请求报表列表失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('请求报表列表失败: ' + e.message)
@@ -151,8 +151,8 @@ export default {
                         id: code
                     }
                 });
-                if(!res.err && res.data.code > 0) {
-                    const resData = res.data.data;
+                if(res.code > 0) {
+                    const resData = res.data;
                     let items = resData.bdConfiguration ? JSON.parse(resData.bdConfiguration) : [];
                     let relationColumns = resData.relationColumns ? JSON.parse(resData.relationColumns) : [];
                     let chartCodes = resData.chartIds ? resData.chartIds.split(',') : [];
@@ -205,7 +205,7 @@ export default {
                     yield put({ type: 'dashboardDesigner/silentSetFields', fields: fields });
                     return data;
                 }else {
-                    message.error('解析报表错误: ' + (res.err || res.data.msg));
+                    message.error('解析报表错误: ' + res.msg);
                     return false;
                 }
             }catch(e) {
@@ -238,11 +238,11 @@ export default {
                     url: URLS.DASHBOARD_ADD,
                     body: body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'remoteMenuDashboardList', menuCode });
-                    yield put({ type: 'main/redirect', path: '/dashboard/' + res.data.data });
+                    yield put({ type: 'main/redirect', path: '/dashboard/' + res.data });
                 }else {
-                    message.error('保存失败: ' + (res.err || res.data.msg));
+                    message.error('保存失败: ' + res.msg);
                 } 
             }catch(e) {
                 message.error('保存失败: ' + e.message);
@@ -283,14 +283,14 @@ export default {
                     url: URLS.DASHBOARD_UPDATE,
                     body: body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'fetchList', mandatory: true });
                     yield put({ type: 'dashboardDesigner/silentSetField', name: 'dirty', value: false });
                     let menu = dashboard.menuList.find(l => l.code === dashboardDesigner.menuCode);
                     yield put({ type: 'remoteSetMenu', dashboard: { code }, menu })
                     !hideMessage && message.success('保存成功');
                 }else {
-                    !hideMessage && message.error('保存失败: ' + (res.err || res.data.msg));
+                    !hideMessage && message.error('保存失败: ' + res.msg);
                 } 
             }catch(e) {
                 !hideMessage && message.error('保存失败: ' + e.message);
@@ -305,7 +305,7 @@ export default {
                     url: URLS.DASHBOARD_DELETE,
                     body: code
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     for(let i = 0; i < list.length; i++) {
                         if(list[i].code === code) {
                             list.splice(i, 1);
@@ -315,7 +315,7 @@ export default {
                     yield put({ type: 'list', list: list });
                     message.success('删除成功');
                 }else {
-                    message.error('删除失败: ' + (res.err || res.data.msg));
+                    message.error('删除失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('删除失败: ' + e.message);
@@ -334,8 +334,8 @@ export default {
                     url: URLS.DASHBOARD_MENU_TREE,
                     method: 'GET'
                 })
-                if(!res.err && res.data.code > 0) {
-                    const resTree = res.data.data;
+                if(res.code > 0) {
+                    const resTree = res.data;
                     const list = [];
                     let fun = (tree, pcode) => {
                         let newTree = tree.map((t, i) => {
@@ -366,7 +366,7 @@ export default {
                     ] });
                     return {menuList, menuTree};
                 }else {
-                    message.error('获取报表目录失败: ' + (res.err || res.data.msg));
+                    message.error('获取报表目录失败: ' + res.msg);
                     return false;
                 }
             }catch(e) {
@@ -389,11 +389,11 @@ export default {
                         parentId: menu.pcode === '-1' ? 0 : menu.pcode
                     }
                 })
-                if(!res.err && res.data.code > 0) {
-                    let menuCode = res.data.data + '';
+                if(res.code > 0) {
+                    let menuCode = res.data + '';
                     return menuCode;
                 }else {
-                    message.error('添加报表目录失败: ' + (res.err || res.data.msg));
+                    message.error('添加报表目录失败: ' + res.msg);
                     return false;
                 }
             }catch(e) {
@@ -411,11 +411,11 @@ export default {
                     parentId: menu.pcode === '-1' ? '0' : menu.pcode
                 }
             });
-            if(!res.err && res.data.code > 0) {
+            if(res.code > 0) {
                 yield put({ type: 'remoteMenuTree', mandatory: true });
                 return menu;
             }else {
-                message.error('修改报表目录失败: ' + (res.err || res.data.msg));
+                message.error('修改报表目录失败: ' + res.msg);
                 return false;
             }
         },
@@ -432,11 +432,11 @@ export default {
             const res = yield call(service.fetch, {
                 url: URLS.DASHBOARD_MENU_DELETE + '/' + menu.code,
             });
-            if(!res.err && res.data.code > 0) {
+            if(res.code > 0) {
                 yield put({ type: 'remoteMenuTree', mandatory: true });
                 return true;
             }else {
-                message.error('删除报表目录失败: ' + (res.err || res.data.msg));
+                message.error('删除报表目录失败: ' + res.msg);
                 return false;
             }
         },
@@ -461,7 +461,7 @@ export default {
                         menuId: menu.code
                     },
                 })
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'remoteMenuDashboardList', menuCode: menu.code });
                     yield put({ type: 'setFields', fields: [
                         { name: 'currentMenu', value: menu },
@@ -471,7 +471,7 @@ export default {
                         { name: 'menuAutoExpandParent', value: true },
                     ] })
                 }else {
-                    message.error('移动到目录失败: ' + (res.err || res.data.msg));
+                    message.error('移动到目录失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('移动到目录失败: ' + e.message);
@@ -487,8 +487,8 @@ export default {
                     url: URLS.DASHBOARD_MENU_DASHBOARD_LIST + '/' + menuCode,
                     method: 'GET',
                 })
-                if(!res.err && res.data.code > 0) {
-                    const resData = res.data.data;
+                if(res.code > 0) {
+                    const resData = res.data;
                     let list = resData.map(d => {
                         let items = d.bdConfiguration ? JSON.parse(d.bdConfiguration) : [];
 
@@ -530,7 +530,7 @@ export default {
                     })
                     yield put({ type: 'list', list: list });
                 }else {
-                    message.error('获取报表列表失败: ' + (res.err || res.data.msg));
+                    message.error('获取报表列表失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('获取报表列表失败: ' + e.message);
@@ -553,10 +553,10 @@ export default {
                     url: URLS.DASHBOARD_SHARE,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     message.success('设置分发对象成功');
                 }else {
-                    message.error('设置分发对象失败: ' + (res.err || res.data.msg));
+                    message.error('设置分发对象失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('分发失败: ' + e.message);
@@ -582,7 +582,7 @@ export default {
                     url: URLS.DASHBOARD_TRANSFER,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     const dashboard = yield select(state => state.present.dashboard);
                     const list = dashboard.list;
                     for(let i = 0; i < list.length; i++) {
@@ -594,7 +594,7 @@ export default {
                     yield put({ type: 'list', list });
                     message.success('移交成功');
                 }else {
-                    message.error('移交失败: ' + (res.err || res.data.msg));
+                    message.error('移交失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('移交失败: ' + e.message);
@@ -615,8 +615,8 @@ export default {
                         code: code
                     }
                 });
-                if(!res.err && res.data.code > 0) {
-                    const resData = res.data.data;
+                if(res.code > 0) {
+                    const resData = res.data;
                     let items = resData.bdConfiguration ? JSON.parse(resData.bdConfiguration) : [];
                     let relationColumns = resData.relationColumns ? JSON.parse(resData.relationColumns) : [];
                     let chartCodes = resData.chartIds ? resData.chartIds.split(',') : [];
@@ -667,7 +667,7 @@ export default {
                     }
                     yield put({ type: 'dashboardDesigner/silentSetFields', fields: fields });
                 }else {
-                    message.error('解析报表错误: ' + (res.err || res.data.msg));
+                    message.error('解析报表错误: ' + res.msg);
                 }
             }catch(e) {
                 message.error('解析报表错误: ' + e.message);
@@ -690,11 +690,11 @@ export default {
                         delay: delay
                     }
                 });
-                if(!res.err && res.data.code > 0) {
-                    const resData = res.data.data;
+                if(res.code > 0) {
+                    const resData = res.data;
                     return resData;
                 }else {
-                    message.error('生成分享链接失败: ' + (res.err || res.data.msg));
+                    message.error('生成分享链接失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('生成分享链接失败: ' + e.message);
@@ -715,8 +715,8 @@ export default {
                         data: code
                     }
                 });
-                if(!res.err && res.data.code > 0) {
-                    const resData = res.data.data;
+                if(res.code > 0) {
+                    const resData = res.data;
                     let items = resData.bdConfiguration ? JSON.parse(resData.bdConfiguration) : [];
                     let relationColumns = resData.relationColumns ? JSON.parse(resData.relationColumns) : [];
                     let chartCodes = resData.chartIds ? resData.chartIds.split(',') : [];
@@ -767,7 +767,7 @@ export default {
                     }
                     yield put({ type: 'dashboardDesigner/silentSetFields', fields: fields });
                 }else {
-                    message.error('解析报表错误: ' + (res.err || res.data.msg));
+                    message.error('解析报表错误: ' + res.msg);
                 }
             }catch(e) {
                 message.error('解析报表错误: ' + e.message);
@@ -785,7 +785,7 @@ export default {
                     dataSourceId: dataConnectCode
                 }
             });
-            if(!res.err && res.data.code > 0) {
+            if(res.code > 0) {
                 message.success('复制成功');
                 // yield put({ type: 'fetchList', mandatory: true });
                 const dashboard = yield select(state => state.present.dashboard);
@@ -794,7 +794,7 @@ export default {
                 yield put({ type: 'chart/fetchList', mandatory: true });
                 return true;
             }else {
-                message.error('复制失败: ' + (res.err || res.data.msg));
+                message.error('复制失败: ' + res.msg);
                 return false;
             }
         }

+ 36 - 11
src/models/dashboardDesigner.js

@@ -383,8 +383,8 @@ export default {
                     url: URLS.DATASOURCE_QUERY_DATACOLUMNS,
                     body: body
                 });
-                if(!res.err && res.data.code > 0) {
-                    let resData = res.data.data;
+                if(res.code > 0) {
+                    let resData = res.data;
                     
                     let columns = resData.map((c, i) => {
                         return {
@@ -402,7 +402,7 @@ export default {
                     dataSources[idx] = { ...dataSources[idx], columns }
                     yield put({ type: 'silentSetField', name: 'dataSources', value: dataSources });
                 }else {
-                    message.error('请求列数据失败:' + (res.err || res.data.msg));
+                    message.error('请求列数据失败:' + res.msg);
                     yield put({ type: 'silentSetField', name: 'dataSources', value: [] });
                 }
             }catch(e) {
@@ -490,8 +490,8 @@ export default {
                     body,
                     timeout: 30000
                 });
-                if(!res.err && res.data.code > 0) {
-                    let resData = res.data.data;
+                if(res.code > 0) {
+                    let resData = res.data;
                     if(!resData) {
                         yield put({ type: 'setItemFields', code: chartCode, fields: [
                             { name: 'chartType', value: '' },
@@ -515,7 +515,7 @@ export default {
                         { name: 'chartType', value: '' },
                         { name: 'chartOption', value: {} }
                     ] });
-                    message.error('请求图表展示数据失败: ' + (res.err || res.data.msg));
+                    message.error('请求图表展示数据失败: ' + res.msg);
                     return false;
                 }
             }catch(e) {
@@ -551,8 +551,8 @@ export default {
                     code: shareCode
                 },
             });
-            if(!res.err && res.data.code > 0) {
-                let resData = res.data.data;
+            if(res.code > 0) {
+                let resData = res.data;
                 return resData;
             }else {
                 return false;
@@ -654,8 +654,8 @@ export default {
                     body,
                     timeout: 30000
                 });
-                if(!res.err && res.data.code > 0) {
-                    const { chartsColumnConfig, valueList } = res.data.data;
+                if(res.code > 0) {
+                    const { chartsColumnConfig, valueList } = res.data;
                     const { list, pageSize, total } = valueList;
                     const chartConfig = JSON.parse(chartsColumnConfig.chartConfig);
                     const columns = chartConfig.viewColumns;
@@ -673,7 +673,7 @@ export default {
                         window.dispatchEvent(e);
                     }, 20);
                 }else {
-                    message.error('请求图表展示数据失败: ' + (res.err || res.data.msg));
+                    message.error('请求图表展示数据失败: ' + res.msg);
                     return false;
                 }
             }catch(e) {
@@ -682,6 +682,31 @@ export default {
             }finally {
                 yield put({ type: 'dataList/setField', name: 'loading', value: false });
             }
+        },
+        *exportToExcel(action, { select, call, put }) {
+            const dashboardDesigner = yield select(state => state.present.dashboardDesigner);
+            const { code, name, dataSources, filters } = dashboardDesigner;
+            try {
+                let body = {
+                    dashboardId: code,
+                    dashboardName: name,
+                    data: dataSources.map(d => {
+                        let { code } = d;
+                        return {
+                            dataSourceId: code,
+                            filter: getBodyFilters(getTrueFilters({ dataSourceCode: code }, filters))
+                        }
+                    }),
+                }
+                yield call(service.fetch, {
+                    url: URLS.DASHBOARD_EXPORT,
+                    requestType: 'file',
+                    fileName: name,
+                    body,
+                })
+            }catch(e) {
+                message.error('报表导出错误: ' + e);
+            }
         }
     },
     subscriptions: {

+ 11 - 11
src/models/dataConnect.js

@@ -158,8 +158,8 @@ export default {
                     method: 'GET',
                     body
                 });
-                if(!res.err && res.data.code > 0) {
-                    let data = res.data.data.list.map((r, i) => {
+                if(res.code > 0) {
+                    let data = res.data.list.map((r, i) => {
                         return {
                             key: i,
                             code: r.id + '',
@@ -176,7 +176,7 @@ export default {
                     });
                     yield put({ type: 'list', data });
                 }else {
-                    message.error('读取数据链接配置列表错误: ' + (res.err || res.data.msg));
+                    message.error('读取数据链接配置列表错误: ' + res.msg);
                 }
             }catch(e) {
                 message.error('读取数据链接配置列表错误: ' + e.message);
@@ -219,13 +219,13 @@ export default {
                 // 设置validating为false
                 yield put({ type: 'setNewModelField', name: 'validating', value: false });
 
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     // 如果合法
                     // 设置valid为true
                     yield put({ type: 'setNewModelInvalid', name: 'invalid', value: false });
                     message.success('测试通过');
                 }else {
-                    message.error('校验失败: ' + (res.err || res.data.msg));
+                    message.error('校验失败: ' + res.msg);
                     yield put({ type: 'setNewModelInvalid', name: 'invalid', value: true });
                 }
             }catch(e) {
@@ -258,13 +258,13 @@ export default {
                 });
                 yield put({ type: 'setNewModelField', name: 'saving', value: false });
 
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'setNewModelInvalid', name: 'invalid', value: false });
                     yield put({ type: 'fetchList', mandatory: true });
                     message.success('新增成功');
                     return true;
                 }else {
-                    message.error('新增失败: ' + (res.err || res.data.msg));
+                    message.error('新增失败: ' + res.msg);
                     yield put({ type: 'setNewModelInvalid', name: 'invalid', value: true });
                     return false;
                 }
@@ -303,14 +303,14 @@ export default {
 
                 yield put({ type: 'setNewModelField', name: 'saving', value: false });
 
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'setNewModelInvalid', name: 'invalid', value: false });
                     yield put({ type: 'fetchList', mandatory: true });
                     message.success('修改成功');
                     return true;
                 }else {
                     yield put({ type: 'setNewModelInvalid', name: 'invalid', value: true });
-                    message.error('修改失败: ' + (res.err || res.data.msg));
+                    message.error('修改失败: ' + res.msg);
                     return false;
                 }
             }catch(e) {
@@ -328,7 +328,7 @@ export default {
                     url: URLS.DATACONNECT_DELETE,
                     body: code
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     for(let i = 0; i < list.length; i++) {
                         if((list[i].code+'') === (code+'')) {
                             list.splice(i, 1);
@@ -338,7 +338,7 @@ export default {
                     yield put({ type: 'list', data: list });
                     message.success('删除成功');
                 }else {
-                    message.error('删除失败: ' + (res.err || res.data.msg));
+                    message.error('删除失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('删除失败: ' + e.message);

+ 37 - 37
src/models/dataSource.js

@@ -25,13 +25,13 @@ export default {
                             pageSize: 999999999
                         }
                     }).then(res => {
-                        if(!res.error && res.data.code > 0) {
-                            return res.data.data.list.map(l => ({
+                        if(res.code > 0) {
+                            return res.data.list.map(l => ({
                                 name: l.id,
                                 label: l.name,
                             }));
                         }else {
-                            message.error('获取数据源下拉列表失败: ' + res.data.msg);
+                            message.error('获取数据源下拉列表失败: ' + res.msg);
                         }
                     }).catch(e => {
                         message.error('获取数据源下拉列表失败: ' + e.message);
@@ -177,8 +177,8 @@ export default {
                     body
                 });
                 
-                if(!res.err && res.data.code > 0) {
-                    let list = res.data.data.list.map((r, i) => {
+                if(res.code > 0) {
+                    let list = res.data.list.map((r, i) => {
                         let dbConfig = {
                             code: r.dbConfig.id + '',
                             name: r.dbConfig.name,
@@ -209,7 +209,7 @@ export default {
                     });
                     yield put({ type: 'list', list });
                 }else {
-                    message.error('读取数据源列表错误: ' + (res.err || res.data.msg));
+                    message.error('读取数据源列表错误: ' + res.msg);
                 }
             }catch(e) {
                 message.error('读取数据源列表错误: ' + e.message);
@@ -250,12 +250,12 @@ export default {
                     url: URLS.DATASOURCE_ADD,
                     body: data
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'fetchList', mandatory: true });
                     yield put({ type: 'main/redirect', path: { pathname: '/workshop/datasource' } });
                     message.success('新增成功');
                 }else {
-                    message.error('新增失败: ' + (res.err || res.data.msg));
+                    message.error('新增失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('新增失败: ' + e.message);
@@ -273,8 +273,8 @@ export default {
                         id: code
                     }
                 });
-                if(!res.err && res.data.code > 0) {
-                    let resData = res.data.data;
+                if(res.code > 0) {
+                    let resData = res.data;
                     let columnConfig = JSON.parse(resData.columnConfig) || [];
                     let dbConfig = resData.dbConfig;
                     let tags = JSON.parse(resData.dataTag);
@@ -321,7 +321,7 @@ export default {
                     }
                     yield put({ type: 'dataSourceDetail/silentSetFields', fields: fields });
                 }else {
-                    message.error('数据源解析错误: ' + (res.err || res.data.msg));
+                    message.error('数据源解析错误: ' + res.msg);
                 }
             }catch(e) {
                 message.error('数据源解析错误: ' + e.message);
@@ -337,7 +337,7 @@ export default {
                     url: URLS.DATASOURCE_DELETE,
                     body: code
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     for(let i = 0; i < list.length; i++) {
                         if((list[i].code + '') === (code + '')) {
                             list.splice(i, 1);
@@ -347,7 +347,7 @@ export default {
                     yield put({ type: 'list', list });
                     message.success('删除成功');
                 }else {
-                    message.error('删除失败: ' + (res.err || res.data.msg));
+                    message.error('删除失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('删除失败: ' + e.message);
@@ -387,11 +387,11 @@ export default {
                     url: URLS.DATASOURCE_UPDATE,
                     body: data
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'fetchList', mandatory: true });
                     message.success('保存成功');
                 }else {
-                    message.error('保存失败: ' + (res.err || res.data.msg));
+                    message.error('保存失败: ' + res.msg);
     
                 }
             }catch(e) {
@@ -409,8 +409,8 @@ export default {
                     url: URLS.GROUP_DATASOURCE_LIST,
                 });
                 
-                if(!res.err && res.data.code > 0) {
-                    const resData = res.data.data;
+                if(res.code > 0) {
+                    const resData = res.data;
                     let data = resData.map(d => {
                         return {
                             code: d.id+'',
@@ -421,7 +421,7 @@ export default {
                     });
                     yield put({ type: 'groupList', data });
                 }else {
-                    message.error('请求数据源列表错误: ' + (res.err || res.data.msg));
+                    message.error('请求数据源列表错误: ' + res.msg);
                 }
             }catch(e) {
                 message.error('请求数据源列表错误: ' + e.message);
@@ -442,12 +442,12 @@ export default {
                     url: URLS.GROUP_DATASOURCE_BATCH_SET,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     message.success('修改分组信息成功');
                     yield put({ type: 'remoteGroupList', mandatory: true });
                     return true;
                 }else {
-                    message.error('修改分组信息失败: ' + (res.data.msg));
+                    message.error('修改分组信息失败: ' + res.msg);
                     return false;
                 }
             }catch(e) {
@@ -483,16 +483,16 @@ export default {
                     url: URLS.GROUP_DATASOURCE_ADD,
                     body: body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     let group = {
-                        code: res.data.data + '',
+                        code: res.data + '',
                         pcode: body.fatherId + '',
                         index: body.groupIndex,
                         label: body.groupName+'',
                     }
                     yield put({ type: 'addGroup', group });
                 }else {
-                    message.error('新增分组失败: ' + (res.err || res.data.msg));
+                    message.error('新增分组失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('新增分组失败: ' + e.message);
@@ -515,10 +515,10 @@ export default {
                     url: URLS.GROUP_DATASOURCE_UPDATE,
                     body: body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'setGroupDirty', dirty: false });
                 }else {
-                    message.error('修改分组失败: ' + (res.err || res.data.msg));
+                    message.error('修改分组失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('修改分组失败: ' + e.message);
@@ -544,10 +544,10 @@ export default {
                     body: body
                 });
                 
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'modifyGroups', groups: groups });
                 }else {
-                    message.error('修改分组失败: ' + (res.err || res.data.msg));
+                    message.error('修改分组失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('修改分组失败: ' + e.message);
@@ -572,10 +572,10 @@ export default {
                     body: group.code
                 });
                 
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'deleteGroup', group});
                 }else {
-                    message.error('删除分组失败: ' + (res.err || res.data.msg));
+                    message.error('删除分组失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('删除分组失败: ' + e.message);
@@ -725,10 +725,10 @@ export default {
                     url: URLS.GROUP_DATASOURCE_SET_GROUP,
                     body: body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'setDataSourceGroup', dataSourceCode, groupCode });
                 }else {
-                    message.error('设置分组失败: ' + (res.err || res.data.msg));
+                    message.error('设置分组失败: ' + res.msg);
                 }
             } catch(e) {
                 message.error('设置分组失败: ' + e.message);
@@ -745,7 +745,7 @@ export default {
                     url: URLS.DATASOURCE_TRANSFER,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     const dataSource = yield select(state => state.present.dataSource);
                     const list = dataSource.list;
                     for(let i = 0; i < list.length; i++) {
@@ -783,8 +783,8 @@ export default {
                     url: URLS.DATASOURCE_DATA_LIST,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
-                    const { columnConfig, values } = res.data.data;
+                if(res.code > 0) {
+                    const { columnConfig, values } = res.data;
                     const columns = JSON.parse(columnConfig).filter(c => c.isOpen === '1').map(c => ({
                         label: c.columnLable,
                         name: c.columnName,
@@ -811,7 +811,7 @@ export default {
                         total
                     }
                 }else {
-                    message.error('请求数据列表失败: ' + (res.err || res.data.msg));
+                    message.error('请求数据列表失败: ' + res.msg);
                     return false;
                 }
             }catch(e) {
@@ -830,12 +830,12 @@ export default {
                     dataConnectionId: dataConnectCode
                 }
             });
-            if(!res.err && res.data.code > 0) {
+            if(res.code > 0) {
                 message.success('复制成功');
                 yield put({ type: 'fetchList', mandatory: true });
                 return true;
             }else {
-                message.error('复制失败: ' + (res.err || res.data.msg));
+                message.error('复制失败: ' + res.msg);
                 return false;
             }
         }

+ 3 - 3
src/models/dataSourceDetail.js

@@ -94,10 +94,10 @@ export default {
                 // 点击查询后清除数据对象dirty状态
                 yield put({ type: 'setField', name: 'targetDirty', value: false });
     
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     let colNames = [];
                     let repeatColumnName = false;
-                    let columns = res.data.data.map((d, i) => {
+                    let columns = res.data.map((d, i) => {
                         if(colNames.findIndex(cn => cn === d.columnName) > -1) {
                             repeatColumnName = d.columnName;
                         }
@@ -139,7 +139,7 @@ export default {
                 }else {
                     yield put({ type: 'setFields', fields: [
                         { name: 'columns', value: [] },
-                        { name: 'notice', value: res.err || res.data.msg }
+                        { name: 'notice', value: res.msg }
                     ] });
                 }
             }catch(e) {

+ 12 - 12
src/models/dataSourcePolicy.js

@@ -92,8 +92,8 @@ export default {
                     url: URLS.DATASOURCE_POLICY_LIST,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
-                    let list = (res.data.data && res.data.data.length > 0) ? res.data.data.sort((a, b) => new Date(a.createDate) - new Date(b.createDate)).map(d => ({
+                if(res.code > 0) {
+                    let list = (res.data && res.data.length > 0) ? res.data.sort((a, b) => new Date(a.createDate) - new Date(b.createDate)).map(d => ({
                         code: d.strategies.id,
                         enabled: d.strategies.isOpen+'' === '1',
                         name: d.strategies.name,
@@ -110,7 +110,7 @@ export default {
                     })) : [];
                     yield put({ type: 'list', list });
                 }else {
-                    message.error('请求数据源策略列表失败: ' + (res.err || res.data.msg));
+                    message.error('请求数据源策略列表失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('读取数据源策略列表错误: ' + e.message);
@@ -132,15 +132,15 @@ export default {
                     url: URLS.DATASOURCE_POLICY_ADD,
                     body,
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     let { list } = dataSourcePolicy;
                     list.push({
-                        code: res.data.data,
+                        code: res.data,
                         ...policy
                     });
                     yield put({ type: 'list', list });
                 }else {
-                    message.error('添加失败: ' + (res.err || res.data.msg));
+                    message.error('添加失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('添加失败: ' + e.message);
@@ -162,10 +162,10 @@ export default {
                     url: URLS.DATASOURCE_POLICY_UPDATE,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'modify', policy });
                 }else {
-                    message.error('修改失败: ' + (res.err || res.data.msg));
+                    message.error('修改失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('修改失败: ' + e.message);
@@ -180,7 +180,7 @@ export default {
                     url: URLS.DATASOURCE_POLICY_DELETE,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     let { list } = dataSourcePolicy;
                     for(let i = 0; i < list.length; i++) {
                         if(list[i].code === code) {
@@ -190,7 +190,7 @@ export default {
                     }
                     yield put({ type: 'list', list });
                 }else {
-                    message.error('删除失败: ' + (res.err || res.data.msg));
+                    message.error('删除失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('删除失败: ' + e.message);
@@ -211,13 +211,13 @@ export default {
                     url: URLS.DATASOURCE_POLICY_TARGET_UPDATE,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'modify', policy: {
                         ...policy,
                         targets
                     } });
                 }else {
-                    message.error('设置对象失败: ' + (res.err || res.data.msg));
+                    message.error('设置对象失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('设置对象失败: ' + e.message);

+ 19 - 19
src/models/home.js

@@ -158,15 +158,15 @@ export default {
                     url: URLS.DASHBOARD_COLLECT_LIST,
                     method: 'GET'
                 });
-                if(!res.err && res.data.code > 0) {
-                    const list = res.data.data.map(d => ({
+                if(res.code > 0) {
+                    const list = res.data.map(d => ({
                         code: d.id + '',
                         name: d.name
                     }));
                     yield put({ type: 'setField', name: 'collectionDashboards', value: list });
                     return list;
                 }else {
-                    message.error('获取收藏列表失败: ' + (res.err || res.data.msg));
+                    message.error('获取收藏列表失败: ' + res.msg);
                     return false;
                 }
             }catch(e) {
@@ -183,11 +183,11 @@ export default {
                 const res = yield call(service.fetch, {
                     url: URLS.DASHBOARD_COLLECT_ADD + '/' + data.code
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     collectionDashboards.unshift({ code: data.code, name: data.name });
                     yield put({ type: 'setField', name: 'collectionDashboards', value: collectionDashboards });
                 }else {
-                    message.error('添加收藏失败: ' + (res.err || res.data.msg));
+                    message.error('添加收藏失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('添加收藏失败: ' + e.message);
@@ -201,12 +201,12 @@ export default {
                 const res = yield call(service.fetch, {
                     url: URLS.DASHBOARD_COLLECT_REMOVE + '/' + data.code
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     let idx = collectionDashboards.findIndex(d => d.code === data.code);
                     collectionDashboards.splice(idx, 1);
                     yield put({ type: 'setField', name: 'collectionDashboards', value: collectionDashboards });
                 }else {
-                    message.error('添加收藏失败: ' + (res.err || res.data.msg));
+                    message.error('添加收藏失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('添加收藏失败: ' + e.message);
@@ -220,19 +220,19 @@ export default {
                     url: URLS.HOMEPAGE_FIXED_GET + '/' + currentUser.code,
                     method: 'GET'
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     // let fixedDashboard = {
-                    //     code: res.data.data ? (res.data.data.code + '') : null,
-                    //     name: res.data.data ? (res.data.data.name + '') : null
+                    //     code: res.data ? (res.data.code + '') : null,
+                    //     name: res.data ? (res.data.name + '') : null
                     // }
-                    let fixedDashboard = res.data.data ? {
-                        code: res.data.data['id'] + '',
-                        name: res.data.data['name'],
+                    let fixedDashboard = res.data ? {
+                        code: res.data['id'] + '',
+                        name: res.data['name'],
                     } : null;
                     yield put({ type: 'setField', name: 'fixedDashboard', value: fixedDashboard });
                     return fixedDashboard;
                 }else {
-                    message.error('请求默认报表失败: ' + (res.err || res.data.msg));
+                    message.error('请求默认报表失败: ' + res.msg);
                     return null;
                 }
             }catch(e) {
@@ -247,11 +247,11 @@ export default {
                 const res = yield call(service.fetch, {
                     url: URLS.HOMEPAGE_FIXED + '/' + currentUser.code + '/' + tab.code
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'setField', name: 'fixedDashboard', value: tab });
                     message.success('已设为默认报表');
                 }else {
-                    message.error('设为默认报表失败: ' + (res.err || res.data.msg));
+                    message.error('设为默认报表失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('设为默认报表失败: ' + e.message);
@@ -265,16 +265,16 @@ export default {
                 const res = yield call(service.fetch, {
                     url: URLS.HOMEPAGE_CANCELFIXED + '/' + currentUser.code + '/' + tab.code
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'setField', name: 'fixedDashboard', value: null });
                     message.success('已取消默认报表');
                 }else {
-                    message.error('取消默认报表失败: ' + (res.err || res.data.msg));
+                    message.error('取消默认报表失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('取消默认报表失败: ' + e.message);
             }
-        }
+        },
     },
     subscriptions: {
         setup({ dispatch, history }) {

+ 4 - 4
src/models/logs.js

@@ -84,9 +84,9 @@ export default {
                     method: 'GET',
                     body
                 });
-                if(!res.err && res.data.code > 0) {
-                    let total = res.data.data.total;
-                    let list = res.data.data.list.map(d => {
+                if(res.code > 0) {
+                    let total = res.data.total;
+                    let list = res.data.list.map(d => {
                         return {
                             code: d.id + '',
                             date: d.date,
@@ -103,7 +103,7 @@ export default {
                         { name: 'total', value: total },
                     ] });
                 }else {
-                    message.error('请求操作日志列表失败: ' + (res.err || res.data.msg));
+                    message.error('请求操作日志列表失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('请求操作日志列表失败: ' + e.message);

+ 3 - 3
src/models/main.js

@@ -115,8 +115,8 @@ export default {
                     allow: true,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
-                    const resData = res.data.data;
+                if(res.code > 0) {
+                    const resData = res.data;
 
                     const token = resData.token;
                     const expireTime = resData.times;
@@ -140,7 +140,7 @@ export default {
                     authenticate(token, expireTime, currentUser, autoLogin);
                     return true;
                 }else {
-                    message.error('登录失败: ' + (res.err || res.data.msg));
+                    message.error('登录失败: ' + res.msg);
                     return false;
                 }
             }catch(e) {

+ 6 - 6
src/models/recent.js

@@ -36,8 +36,8 @@ export default {
                     url: URLS.HOMEPAGE_RECENT_CHART_GET,
                 });
                 
-                if(!res.err && res.data.code > 0) {
-                    let recentChart = res.data.data.map((r, i) => {
+                if(res.code > 0) {
+                    let recentChart = res.data.map((r, i) => {
                         return {
                             key: r.chartId + '',
                             code: r.chartId + '',
@@ -52,7 +52,7 @@ export default {
                     });
                     yield put({ type: 'listRecentChart', recentChart });
                 }else {
-                    message.error('读取最近访问图表列表错误: ' + (res.err || res.data.msg));
+                    message.error('读取最近访问图表列表错误: ' + res.msg);
                 }
             }catch(e) {
                 console.error(e);
@@ -68,8 +68,8 @@ export default {
                 const res = yield call(service.fetch, {
                     url: URLS.HOMEPAGE_RECENT_DASHBOARD_GET,
                 });
-                if(!res.err && res.data.code > 0) {
-                    let recentDashboard = res.data.data.map((r, i) => {
+                if(res.code > 0) {
+                    let recentDashboard = res.data.map((r, i) => {
                         return {
                             key: r.id + '',
                             code: r.id + '',
@@ -82,7 +82,7 @@ export default {
                     });
                     yield put({ type: 'listRecentDashboard', recentDashboard });
                 }else {
-                    message.error('读取最近访问报表列表错误: ' + (res.err || res.data.msg));
+                    message.error('读取最近访问报表列表错误: ' + res.msg);
                 }
             }catch(e) {
                 console.error(e);

+ 5 - 5
src/models/user.js

@@ -45,8 +45,8 @@ export default {
                 const res = yield call(service.fetch, {
                     url: URLS.USER_LIST
                 });
-                if(!res.err && res.data.code > 0) {
-                    const list = res.data.data.map(d => ({
+                if(res.code > 0) {
+                    const list = res.data.map(d => ({
                         code: d.id+'',
                         userName: d.userName,
                         fullName: d.name,
@@ -54,7 +54,7 @@ export default {
                     }));
                     yield put({ type: 'list', list });
                 }else {
-                    message.error('请求用户列表失败: ' + (res.err || res.data.msg));
+                    message.error('请求用户列表失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('请求用户列表失败: ' + e.message);
@@ -77,11 +77,11 @@ export default {
                     url: URLS.USER_UPDATE,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     message.success('修改成功');
                     yield put({ type: 'fetchList', mandatory: true });
                 }else {
-                    message.error('修改失败: ' + (res.err || res.data.msg));
+                    message.error('修改失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('修改失败: ' + e.message);

+ 17 - 17
src/models/userGroup.js

@@ -108,8 +108,8 @@ export default {
                 const res = yield call(service.fetch, {
                     url: URLS.USERGROUP_LIST,
                 });
-                if(!res.err && res.data.code > 0) {
-                    const list = res.data.data.map(d => ({
+                if(res.code > 0) {
+                    const list = res.data.map(d => ({
                         code: d.id + '',
                         name: d.userGroupName,
                         description: d.userGroupNote,
@@ -119,7 +119,7 @@ export default {
                     yield put({ type: 'list', list: list.sort((a, b) => a.createTime - b.createTime) });
                     yield autoSelect && put({ type: 'changeSelectedGroup', group: list[0] });
                 }else {
-                    message.error('请求用户组列表失败: ' + (res.err || res.data.msg));
+                    message.error('请求用户组列表失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('请求用户组列表失败: ' + e.message);
@@ -137,9 +137,9 @@ export default {
                     url: URLS.USERGROUP_ADD,
                     body: body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'add', group: {
-                        code: res.data.data + '',
+                        code: res.data + '',
                         name: newOne.name,
                         description: newOne.description,
                         member: []
@@ -148,7 +148,7 @@ export default {
                     yield put({ type: 'resetNewModel' });
                     message.success('新增成功');
                 }else {
-                    message.error('新增失败: ' + (res.err || res.data.msg));
+                    message.error('新增失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('新增失败: ' + e.message);
@@ -167,12 +167,12 @@ export default {
                     url: URLS.USERGROUP_UPDATE,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'modify', group: newOne });
                     yield put({ type: 'setNewModelField', name: 'visibleDetailBox', value: false });
                     message.success('修改成功');
                 }else {
-                    message.error('修改失败: ' + (res.err || res.data.msg));
+                    message.error('修改失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('修改失败: ' + e.message);
@@ -185,14 +185,14 @@ export default {
                     url: URLS.USERGROUP_DELETE + '/' + group.code,
                     
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'delete', group });
                     const userGroup = yield select(state => state.present.userGroup);
                     const { list } = userGroup;
                     yield put({ type: 'changeSelectedGroup', group: list[0] });
                     message.success('删除成功');
                 }else {
-                    message.error('删除失败: ' + (res.err || res.data.msg));
+                    message.error('删除失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('删除失败: ' + e.message);
@@ -222,15 +222,15 @@ export default {
                     url: URLS.USERGROUP_MEMBER_LIST,
                     body: groupCode
                 });
-                if(!res.err && res.data.code > 0) {
-                    const memberList = res.data.data.map(d => ({
+                if(res.code > 0) {
+                    const memberList = res.data.map(d => ({
                         code: d.id + '',
                         name: d.name,
                         role: d.role
                     }));
                     yield put({ type: 'setMemberList', groupCode, memberList });
                 }else {
-                    message.error('请求用户组成员列表失败: ' + (res.err || res.data.msg));
+                    message.error('请求用户组成员列表失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('请求用户组成员列表失败: ' + e.message);
@@ -247,11 +247,11 @@ export default {
                     url: URLS.USERGROUP_MEMBER_ADD,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'remoteMemberList', groupCode: group.code, mandatory: true });
                     yield put({ type: 'setNewModelField', name: 'visibleAddMemberBox', value: false });
                 }else {
-                    message.error('添加失败: ' + (res.err || res.data.msg));
+                    message.error('添加失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('添加失败: ' + e.message);
@@ -268,10 +268,10 @@ export default {
                     url: URLS.USERGROUP_MEMBER_DELETE,
                     body
                 });
-                if(!res.err && res.data.code > 0) {
+                if(res.code > 0) {
                     yield put({ type: 'remoteMemberList', groupCode, mandatory: true });
                 }else {
-                    message.error('删除失败: ' + (res.err || res.data.msg));
+                    message.error('删除失败: ' + res.msg);
                 }
             }catch(e) {
                 message.error('删除失败: ' + e.message);

+ 28 - 6
src/services/index.js

@@ -1,4 +1,5 @@
 import request from '../utils/request'
+import deepAssign from '../utils/deepAssign'
 import { hashcode } from '../utils/baseUtils'
 
 // 防抖控制
@@ -12,7 +13,7 @@ function debounce(option) {
     })
 }
 export function fetch(option) {
-    let { url, method, body, timeout, allow } = option;
+    let { url, method, headers, body, timeout, allow, requestType, fileName } = option;
     const token = window.sessionStorage.getItem("token");
     return debounce({ url, method, body }).then(() => {
         // 除非特殊许可,Token不存在时不发送请求
@@ -21,10 +22,10 @@ export function fetch(option) {
                 method: method || 'POST',
             };
             if(method === 'GET') {
-                opt.headers = {
+                opt.headers = deepAssign({
                     token: token,
                     'Content-Type': 'application/json'
-                }
+                }, headers);
                 if (body) {  
                     let paramsArray = [];  
                     //拼接参数  
@@ -36,9 +37,10 @@ export function fetch(option) {
                     }  
                 }
             }else {
-                opt.headers = {
+                opt.headers = deepAssign({
+                    token: token,
                     'Content-Type': 'application/json'
-                }
+                }, headers);
                 opt.body = JSON.stringify(body);
 
                 if(!!token) {
@@ -46,7 +48,27 @@ export function fetch(option) {
                 }
             }
 
-            return request(url, opt, timeout);
+            return request(url, opt, timeout).then(data => {
+                if(requestType === 'file') {
+                    let blob = data.blob().then(blob => {
+                        if (window.navigator.msSaveOrOpenBlob) {
+                            navigator.msSaveBlob(blob);  //兼容ie10
+                        } else {
+                            var a = document.createElement('a');
+                            document.body.appendChild(a) //兼容火狐,将a标签添加到body当中
+                            var url = window.URL.createObjectURL(blob);   // 获取 blob 本地文件连接 (blob 为纯二进制对象,不能够直接保存到磁盘上)
+                            a.href = url;
+                            a.download = fileName;
+                            a.target='_blank'  // a标签增加target属性
+                            a.click();
+                            a.remove()  //移除a标签
+                            window.URL.revokeObjectURL(url);
+                        }
+                    });
+                    return blob;
+                }
+                return data.json();
+            });
         }else {
             // 使用一个空的Promise阻止后续链式方法的调用
             return new Promise(() => {});

+ 1 - 1
src/themes/default/dashboarddesigner.less

@@ -20,7 +20,7 @@
                     >.config-sider {
                         background: @sider-background-color;
                         >.ant-layout-sider-children {
-                            border-width: 0 1px 0 0;
+                            border-width: 0;
                             margin: 0;
                             >.form-config {
                                 .divider {

+ 2 - 7
src/utils/request.js

@@ -1,9 +1,5 @@
 import fetch from 'dva/fetch';
 
-function parseJSON(response) {
-  return response.json();
-}
-
 function checkStatus(response) {
   if(!response) {
     throw new Error('无法访问服务器');
@@ -75,13 +71,12 @@ export default function request(url, options, timeout) {
 
       fetch(this.url, this.options)
         .then(checkStatus)
-        .then(parseJSON)
         .then(data => {
           // 未进入重试或者超时错误,返回结果
           if (!done) {
-            fn({
+            fn(
               data
-            });
+            );
             done = true;
           }
         })

File diff suppressed because it is too large
+ 0 - 0
static/iconfont/iconfont.js


Some files were not shown because too many files changed in this diff