zhuth %!s(int64=7) %!d(string=hai) anos
pai
achega
9b2053cfd2

BIN=BIN
public/images/selected.png


+ 3 - 1
src/components/chartDesigner/charts/resolveChartOption.js

@@ -192,7 +192,9 @@ function tableConfig(option) {
     const { columns, data } = option;
     let o = {
         columns,
-        data
+        data: data.map((d, i) => {
+            return { ...d, key: i}
+        })
     };
     return o;
 }

+ 21 - 2
src/components/chartDesigner/sections/aggregateTableConfigForm.jsx

@@ -7,22 +7,41 @@ const { Option } = Select;
 const CheckboxGroup = Checkbox.Group;
 
 class AggregateTableConfigForm extends React.Component {
+
+	constructor(props) {
+		super(props);
+		this.state = {
+			searchKey: ''
+		};
+		
+	}
+
+	handleSearch = (value) => {
+		this.setState({
+			searchKey: value
+		});
+	}
+
 	render() {
 		const props = this.props;
 		const { formItemLayout, chartDesigner, dispatch } = props;
+		const{ searchKey } = this.state;
 		const { columns, aggregateTableConfig } = chartDesigner;
-        
+
+		let options = columns.filter(c => c.label.toLowerCase().indexOf(searchKey.toLowerCase()) !== -1);
 		return (
 			<Form>
 				<FormItem label='分析目标' {...formItemLayout}>
 					<Select
 						value={aggregateTableConfig.targetColumn.name}
+						showSearch
+						filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
 						onChange={(value) => {
 							let column = columns.filter(c => c.name === value)[0];
 							dispatch({ type: 'chartDesigner/changeField', name: 'aggregateTableConfig', value: { ...chartDesigner.aggregateTableConfig, targetColumn: column, statistics: [] } });
 						}}
 					>
-						{columns.map((c, i)=>{
+						{options.map((c, i)=>{
 							return (<Option key={i} value={c.name}>{c.label}</Option>)
 						})}
 					</Select>

+ 4 - 1
src/components/chartDesigner/sections/baseConfigForm.jsx

@@ -35,7 +35,10 @@ class baseConfigForm extends React.Component {
 						value={props.chartDesigner.baseConfig.viewType}
 						dropdownMatchSelectWidth={false}
 						onChange={(value, item) => {
-							props.dispatch({ type: 'chartDesigner/changeField', name: 'baseConfig', value: { ...props.chartDesigner.baseConfig, viewType: value } });
+							props.dispatch({ type: 'chartDesigner/changeFields', fields: [
+								{ name: 'baseConfig', value: { ...props.chartDesigner.baseConfig, viewType: value } },
+								{ name: 'chartOption', value: { } }
+							] });
 						}}
 					>
 					{

+ 23 - 1
src/components/chartDesigner/sections/dataViewConfigForm.jsx

@@ -1,5 +1,5 @@
 import React from 'react'
-import { Form, Select } from 'antd'
+import { Form, Select, InputNumber  } from 'antd'
 import { connect } from 'dva'
 const FormItem = Form.Item
 const { Option } = Select
@@ -40,6 +40,28 @@ class DataViewConfigForm extends React.Component {
 						})}
 					</Select>
 				</FormItem>
+				<FormItem label='排序方式' {...formItemLayout}>
+					<Select
+						defaultValue='asc'
+						value={chartDesigner.dataViewConfig.sortType}
+						onChange={(value) => {
+							dispatch({ type: 'chartDesigner/changeField', name: 'dataViewConfig', value: { ...chartDesigner.dataViewConfig, sortType: value }});
+						}}
+					>
+						<Option value="asc">升序</Option>
+						<Option value="desc">降序</Option>
+					</Select>
+				</FormItem>
+				<FormItem label='数据条数' {...formItemLayout}>
+					<InputNumber
+						min={0}
+						defaultValue={chartDesigner.dataViewConfig.count}
+						onChange={(value) => {
+							dispatch({ type: 'chartDesigner/changeField', name: 'dataViewConfig', value: { ...chartDesigner.dataViewConfig, count: value }});
+						}}
+					>
+					</InputNumber>
+				</FormItem>
 			</Form>
         );
 	}

+ 3 - 3
src/components/chartDesigner/sections/filterOperators.json

@@ -78,13 +78,13 @@
         "label": "不为空"
     }],
     "time": [{
-        "value": "equals",
+        "value": "=",
         "label": "等于"
     }, {
-        "value": "from",
+        "value": ">",
         "label": "开始于"
     }, {
-        "value": "to",
+        "value": "<=",
         "label": "结束于"
     }, {
         "value": "between",

+ 0 - 2
src/components/chartDesigner/sections/lineConfigForm.jsx

@@ -26,8 +26,6 @@ const LineConfigForm = ({ chartDesigner, dispatch, formItemLayout }) => {
 					onChange={(value, items) => {
 						let column = {};
 						let granularity = {};
-						console.log('items', items)
-						console.log('value', value)
 						if(items.length > 0) {
 							column = { type: items[0].type, value: items[0].value, label: items[0].label };
 						}

+ 1 - 1
src/components/datasource/columnType.json

@@ -11,7 +11,7 @@
     "columnType": "categorical",
     "label": "类别"
 }, {
-    "dataType": ["NUMBER"],
+    "dataType": ["NUMBER", "FLOAT"],
     "columnType": "scale",
     "label": "标量"
 }, {

+ 2 - 2
src/models/chart.js

@@ -197,7 +197,7 @@ export default {
                         },
                         otherConfig: otherConfig,
                         description: resData.describes,
-                        groupCode: resData.chartsGroup+'' === '-1' ? 'all' : resData.chartsGroup
+                        group: resData.chartsGroup+''
                     }
 
                     if(viewType === 'bar') {
@@ -374,11 +374,11 @@ export default {
                     body.chartType = 'individual';
                     body.chartConfig = JSON.stringify(dataViewConfig);
                 }
-                console.log(body);
                 const res = yield call(service.fetch, {
                     url: URLS.CHART_UPDATE,
                     body: body
                 })
+                console.log('修改图表', body, res);
                 if(!res.err && res.data.code > 0) {
                     message.success('修改成功');
                     yield put({ type: 'fetchList', mandatory: true });

+ 1 - 1
src/models/chartDesigner.js

@@ -493,7 +493,7 @@ export default {
                     columnListName: dataViewConfig.viewColumns.map(c => c.key),
                     sortColumn: dataViewConfig.sortColumn.key,
                     sort: dataViewConfig.sortType,
-                    showLine: '20'
+                    showLine: dataViewConfig.count
                 };
                 let res = yield call(service.fetch, {
                     url: URLS.CHART_DATAVIEW_OPTION,

+ 10 - 8
src/models/dataSource.js

@@ -193,7 +193,7 @@ export default {
                             groupCode: r.connectorGroup+'' === '-1' ? 'all' : r.connectorGroup+''
                         }
                     });
-                    console.log('数据源list', res, data);
+                    console.log('获得数据源list', res, data);
                     yield put({ type: 'list', data });
                 }else {
                     message.error('读取数据源列表错误');
@@ -240,7 +240,7 @@ export default {
                     url: URLS.DATASOURCE_ADD,
                     body: data
                 });
-                console.log(data, res);
+                console.log('新增数据源', data, res);
                 if(!res.err && res.data.code > 0) {
                     yield put({ type: 'fetchList', mandatory: true });
                     yield put({ type: 'main/redirect', path: { pathname: '/datasource' } });
@@ -265,7 +265,7 @@ export default {
                     url: URLS.DATASOURCE_DETAIL,
                     body: code
                 });
-                console.log('dataSource/remoteDetail', code, res);
+                console.log('解析数据源', code, res);
                 if(!res.err && res.data.code > 0) {
                     let resData = res.data.data;
                     let columnConfig = JSON.parse(resData.columnConfig);
@@ -301,7 +301,6 @@ export default {
                             }
                         })
                     }
-                    console.log('请求数据源详情', res, data);
                     yield put({ type: 'setNewModel', model: data });
                 }else {
                     message.error('数据源解析错误');
@@ -317,18 +316,21 @@ export default {
             try{
                 const dataSource = yield select(state => state.present.dataSource);
                 const sqlStr = dataSource.newOne.target;
+                let body = {
+                    baseName: dataSource.newOne.userName,
+                    strSql: sqlStr
+                };
                 const res = yield call(service.fetch, {
                     url: URLS.DATASOURCE_QUERY_SQLCOLUMNS,
-                    body: {
-                        baseName: dataSource.newOne.userName,
-                        strSql: sqlStr
-                    }
+                    body: body
                 });
     
                 const getColumnType = (dataType) => {
                     return DEFAULT_COLUMN_TYPE[dataType] || 'string';
                 }
     
+                console.log('请求数据源列数据', body, res);
+
                 if(!res.err && res.data.code > 0) {
                     let columns = res.data.data.map((d, i) => {
                         return {