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

分析类型去除索引和序值

zhuth 6 лет назад
Родитель
Сommit
59d17a097f

+ 2 - 15
src/components/chartDesigner/sections/dataViewConfigForm.jsx

@@ -19,21 +19,6 @@ class DataViewConfigForm extends React.Component {
 		return (
             <Form layout='horizontal'>
 				<FormItem label="展示列" {...formItemLayout}>
-					{/* <Select
-						mode='multiple'
-						allowClear 
-						showArrow={true}
-						value={chartDesigner.dataViewConfig.viewColumns}
-						showSearch
-						labelInValue={true}
-						onChange={(value) => {
-							dispatch({ type: 'chartDesigner/changeField', name: 'dataViewConfig', value: { ...chartDesigner.dataViewConfig, viewColumns: value }, autoRefresh });
-						}}
-					>
-						{columns.map((c, i)=>{
-							return <Option key={i} value={c.name}>{c.label}</Option>
-						})}
-					</Select> */}
 					<Button onClick={() => {this.setState({visibleDisplayColumnBox:true})}}>设置展示列</Button>
 				</FormItem>
 				<FormItem label='排序列' {...formItemLayout}>
@@ -41,6 +26,7 @@ class DataViewConfigForm extends React.Component {
 						allowClear
 						value={chartDesigner.dataViewConfig.sortColumn}
 						labelInValue={true}
+						placeholder={chartDesigner.dataViewConfig.viewColumns.length > 0 ? chartDesigner.dataViewConfig.viewColumns[0].label : '无'}
 						showSearch
 						filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
 						onChange={(value) => {
@@ -56,6 +42,7 @@ class DataViewConfigForm extends React.Component {
 					<Select
 						defaultValue='asc'
 						value={chartDesigner.dataViewConfig.sortType}
+						placeholder='升序'
 						onChange={(value) => {
 							dispatch({ type: 'chartDesigner/changeField', name: 'dataViewConfig', value: { ...chartDesigner.dataViewConfig, sortType: value }, autoRefresh });
 						}}

+ 2 - 2
src/components/chartDesigner/sections/statisticsOption.json

@@ -1,7 +1,7 @@
 [
-    {"value": "count", "label": "条数", "columnType": ["index", "time", "categorical", "scale", "ordinal", "string"] }, 
+    {"value": "count", "label": "条数", "columnType": ["time", "categorical", "scale", "string"] }, 
     {"value": "max", "label": "最大值", "columnType": ["scale"] },
-    {"value": "percent", "label": "百分比", "columnType": ["index", "time", "categorical", "scale", "ordinal", "string"] },
+    {"value": "percent", "label": "百分比", "columnType": ["time", "categorical", "scale", "string"] },
     {"value": "75th", "label": "75th值", "columnType": ["scale"] },
     {"value": "sum","label": "总和", "columnType": ["scale"] },
     {"value": "median","label": "中位数", "columnType": ["scale"] },

+ 5 - 4
src/components/common/listFilter/index.jsx

@@ -52,11 +52,12 @@ class ListFilter extends React.Component {
         if(type === 'date') {
             return <RangePicker  
                 ranges={{
-                    '今天': [moment().startOf('day'), moment().endOf('day')], 
-                    '昨天': [moment().startOf('day').add(-1,'days'), moment().endOf('day')],
-                    '近七天': [moment().startOf('day'),moment().endOf('day').add(6,'days')],
+                    '今天': [moment().startOf('day'), moment().endOf('day')],
                     '本月': [moment().startOf('month'), moment().endOf('month')],
-                    '本年': [moment().startOf('year'), moment().endOf('year')] 
+                    '上月': [moment().month(moment().month() - 1).startOf('month'), moment().month(moment().month() - 1).endOf('month')],
+                    '近半年': [moment().subtract(6, "months").startOf('day'), moment().endOf('day')],
+                    '本年': [moment().startOf('year'), moment().endOf('year')],
+                    '上年': [moment().subtract(1, "years").startOf('year'), moment().subtract(1, "years").endOf('year')],
                 }}
                 showTime={{ format: 'HH:mm' }}
                 format="YYYY-MM-DD HH:mm:ss"

+ 0 - 8
src/components/dataSourceDetail/columnType.json

@@ -1,8 +1,4 @@
 [{
-    "dataType": ["String", "BigDecimal", "Double", "long", "float", "int", "Short"],
-    "columnType": "index",
-    "label": "索引"
-}, {
     "dataType": ["Date", "Timestamp"],
     "columnType": "time",
     "label": "时间"
@@ -14,10 +10,6 @@
     "dataType": ["BigDecimal", "Double", "Long", "Float", "Int", "Short"],
     "columnType": "scale",
     "label": "标量"
-}, {
-    "dataType": ["BigDecimal", "Double", "Long", "Float", "Int", "Short"],
-    "columnType": "ordinal",
-    "label": "序值"
 }, {
     "dataType": ["String", "BigDecimal", "Double", "Long", "Float", "Int", "Boolean", "Byte", "Short", null],
     "columnType": "string",

+ 3 - 5
src/models/chartDesigner.js

@@ -325,9 +325,7 @@ export default {
                     }
                 }else if(viewType === 'dataView') {
                     const { dataViewConfig } = chartDesigner;
-                    if(dataViewConfig.viewColumns.length > 0 && 
-                        dataViewConfig.sortColumn.key && 
-                        dataViewConfig.sortType) {
+                    if(dataViewConfig.viewColumns.length > 0) {
                         yield put({ type: 'fetchDataViewData' });
                     }else {
                         yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
@@ -504,8 +502,8 @@ export default {
                 const body = {
                     id: code,
                     columnListName: dataViewConfig.viewColumns.map(c => c.name),
-                    sortColumn: dataViewConfig.sortColumn.key,
-                    sort: dataViewConfig.sortType,
+                    sortColumn: dataViewConfig.sortColumn ? dataViewConfig.sortColumn.key : dataViewConfig.viewColumns[0].name,
+                    sort: dataViewConfig.sortType || 'asc',
                     filters: getBodyFilters(filters),
                     testPage: {
                         pageNum: page || 1,

+ 6 - 2
src/models/parseChartOption.js

@@ -5,6 +5,9 @@ import moment from 'moment'
 import STATISTICS_OPTION from '../components/chartDesigner/sections/statisticsOption.json'
 
 export default function(viewType, data, chartConfig) {
+    if(!data) {
+        return {};
+    }
     try {
         let o;
         switch(viewType) {
@@ -47,6 +50,7 @@ function barOption(data, barConfig) {
     let yTitle = barConfig.yAxis?`${barConfig.yAxis.column.label}${barConfig.yAxis.gauge.value?'('+barConfig.yAxis.gauge.label+')':''}`:null
     data.serieses = data.serieses || [];
 
+    console.log(barConfig);
     let option = {
         tooltip : {
             trigger: "axis",
@@ -71,7 +75,7 @@ function barOption(data, barConfig) {
             type: 'category',
             data: data.xAxis.map(d => {
                 let gv= barConfig.xAxis.granularity.value;
-                let xv = d;
+                let xv = d || '空';
                 if(gv === 'halfYear') {
                     let arr = d.split('-H');
                     xv = arr[0] + ['上半年', '下半年'][arr[1] - 1]
@@ -94,7 +98,7 @@ function barOption(data, barConfig) {
         }],
         series: data.serieses.map(s => {
             return {
-                name: s.name,
+                name: barConfig.groupBy ? s.name : (barConfig.yAxis.column.label || s.name),
                 type: 'bar',
                 data: s.value,
                 // stack: s.stack

+ 3 - 0
src/utils/deepAssign.js

@@ -59,6 +59,9 @@ function assign(to, from) {
 }
 
 module.exports = function deepAssign(target) {
+	if(!target) {
+		return null;
+	}
 	target = toObject(target);
 
 	for (var s = 1; s < arguments.length; s++) {