|
|
@@ -63,7 +63,7 @@ export default {
|
|
|
lineConfig: { xAxis: { column: {}, granularity: {} }, yAxis: { column: {}, gauge: {} }, groupBy: {key:''}, threshold: 200 },
|
|
|
pieConfig: { xAxis: { column: {}, granularity: {} }, yAxis: { column: {}, gauge: {} }, threshold: 20 },
|
|
|
scatterConfig: { xAxis: { column: {}, granularity: {} }, yAxis: { column: {}, gauge: {} }, groupBy: {key:''}, threshold: 1000 },
|
|
|
- indicatorConfig: { xAxis: { column: {} }, yAxis: { column: {} }, threshold: 6 },
|
|
|
+ indicatorConfig: { xAxis: { column: {} }, yAxis: { column: {}, gauge: {} }, otherColumn: [], threshold: 6 },
|
|
|
theme: 'default',
|
|
|
styleConfig: {},
|
|
|
otherConfig:{},
|
|
|
@@ -210,7 +210,7 @@ export default {
|
|
|
yield put({ type: 'chart/remoteModify' });
|
|
|
const { newHeaderLabel } = action;
|
|
|
const chartDesigner = yield select(state => state.present.chartDesigner);
|
|
|
- const { filters, baseConfig, otherConfig, description, group, chartOption, fetchConfig, styleConfig } = chartDesigner;
|
|
|
+ const { filters, baseConfig, otherConfig, description, group, chartOption, fetchConfig, styleConfig, theme } = chartDesigner;
|
|
|
let body = {
|
|
|
filters: JSON.stringify(filters),
|
|
|
chartName: newHeaderLabel,
|
|
|
@@ -221,6 +221,7 @@ export default {
|
|
|
chartsGroup: group+'' ? group : '-1',
|
|
|
chartOption: JSON.stringify(chartOption),
|
|
|
fetchConfig: JSON.stringify(fetchConfig),
|
|
|
+ theme: theme
|
|
|
}; // 基本属性
|
|
|
if(!!baseConfig.viewType) {
|
|
|
let _CHART_TYPE = {
|
|
|
@@ -419,7 +420,7 @@ export default {
|
|
|
}
|
|
|
}else if(viewType === 'indicator') {
|
|
|
const { indicatorConfig } = chartDesigner;
|
|
|
- if(indicatorConfig.xAxis.column.name && indicatorConfig.yAxis.column.name) {
|
|
|
+ if(indicatorConfig.yAxis.column.value) {
|
|
|
yield put({ type: 'fetchIndicatorData' });
|
|
|
}else {
|
|
|
yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
|
|
|
@@ -462,14 +463,23 @@ export default {
|
|
|
});
|
|
|
if(res.code > 0) {
|
|
|
let option = parseChartOption('bar', res.data, barConfig, theme, styleConfig.bar || {});
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: option });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: res.data },
|
|
|
+ { name: 'chartOption', value: option },
|
|
|
+ ] });
|
|
|
}else {
|
|
|
message.error('请求柱状图数据失败: ' + res.msg);
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: null },
|
|
|
+ { name: 'chartOption', value: {} },
|
|
|
+ ] });
|
|
|
}
|
|
|
yield put({ type: 'silentSetField', name: 'fetchConfig', value: body });
|
|
|
}catch(e) {
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: null },
|
|
|
+ { name: 'chartOption', value: {} },
|
|
|
+ ] });
|
|
|
message.error('请求柱状图数据失败: ' + e.message);
|
|
|
}
|
|
|
},
|
|
|
@@ -501,14 +511,23 @@ export default {
|
|
|
});
|
|
|
if(res.code > 0) {
|
|
|
let option = parseChartOption('pie', res.data, pieConfig, theme, styleConfig.pie || {});
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: option });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: res.data },
|
|
|
+ { name: 'chartOption', value: option },
|
|
|
+ ] });
|
|
|
}else {
|
|
|
message.error('请求饼图数据失败: ' + res.msg);
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: null },
|
|
|
+ { name: 'chartOption', value: {} },
|
|
|
+ ] });
|
|
|
}
|
|
|
yield put({ type: 'silentSetField', name: 'fetchConfig', value: body });
|
|
|
}catch(e) {
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: null },
|
|
|
+ { name: 'chartOption', value: {} },
|
|
|
+ ] });
|
|
|
message.error('请求饼图数据失败: ' + e.message);
|
|
|
}
|
|
|
},
|
|
|
@@ -540,14 +559,23 @@ export default {
|
|
|
});
|
|
|
if(res.code > 0) {
|
|
|
let option = parseChartOption('line', res.data, lineConfig, theme, styleConfig.line || {});
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: option });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: res.data },
|
|
|
+ { name: 'chartOption', value: option },
|
|
|
+ ] });
|
|
|
}else {
|
|
|
message.error('请求折线图数据失败: ' + res.msg);
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: null },
|
|
|
+ { name: 'chartOption', value: {} },
|
|
|
+ ] });
|
|
|
}
|
|
|
yield put({ type: 'silentSetField', name: 'fetchConfig', value: body });
|
|
|
}catch(e) {
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: null },
|
|
|
+ { name: 'chartOption', value: {} },
|
|
|
+ ] });
|
|
|
message.error('请求折线图数据失败: ' + e.message);
|
|
|
}
|
|
|
},
|
|
|
@@ -578,14 +606,23 @@ export default {
|
|
|
});
|
|
|
if(res.code > 0) {
|
|
|
let option = parseChartOption('scatter', res.data, scatterConfig, theme, styleConfig.scatter || {});
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: option });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: res.data },
|
|
|
+ { name: 'chartOption', value: option },
|
|
|
+ ] });
|
|
|
}else {
|
|
|
message.error('请求散点图数据失败: ' + res.msg);
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: null },
|
|
|
+ { name: 'chartOption', value: {} },
|
|
|
+ ] });
|
|
|
}
|
|
|
yield put({ type: 'silentSetField', name: 'fetchConfig', value: body });
|
|
|
}catch(e) {
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: null },
|
|
|
+ { name: 'chartOption', value: {} },
|
|
|
+ ] });
|
|
|
message.error('请求散点图数据失败: ' + e.message);
|
|
|
}
|
|
|
},
|
|
|
@@ -613,14 +650,23 @@ export default {
|
|
|
});
|
|
|
if(res.code > 0) {
|
|
|
let option = parseChartOption('dataView', res.data, dataViewConfig, theme, styleConfig.dataView);
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: option });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: res.data },
|
|
|
+ { name: 'chartOption', value: option },
|
|
|
+ ] });
|
|
|
}else {
|
|
|
message.error('请求列表数据失败: ' + res.msg);
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: null },
|
|
|
+ { name: 'chartOption', value: {} },
|
|
|
+ ] });
|
|
|
}
|
|
|
yield put({ type: 'silentSetField', name: 'fetchConfig', value: body });
|
|
|
}catch(e) {
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: null },
|
|
|
+ { name: 'chartOption', value: {} },
|
|
|
+ ] });
|
|
|
message.error('请求列表数据失败: ' + e.message);
|
|
|
}
|
|
|
},
|
|
|
@@ -649,14 +695,23 @@ export default {
|
|
|
});
|
|
|
if(res.code > 0) {
|
|
|
let option = parseChartOption('aggregateTable', res.data, aggregateTableConfig, theme, styleConfig.aggregateTable || {});
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: option });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: res.data },
|
|
|
+ { name: 'chartOption', value: option },
|
|
|
+ ] });
|
|
|
}else {
|
|
|
message.error('请求统计数据失败: ' + res.msg);
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: null },
|
|
|
+ { name: 'chartOption', value: {} },
|
|
|
+ ] });
|
|
|
}
|
|
|
yield put({ type: 'silentSetField', name: 'fetchConfig', value: body });
|
|
|
}catch(e) {
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: null },
|
|
|
+ { name: 'chartOption', value: {} },
|
|
|
+ ] });
|
|
|
message.error('请求统计数据失败: ' + e.message);
|
|
|
}
|
|
|
},
|
|
|
@@ -664,34 +719,49 @@ export default {
|
|
|
try {
|
|
|
const chartDesigner = yield select(state => state.present.chartDesigner);
|
|
|
const { code, indicatorConfig, filters, theme, styleConfig, defaultIndicatorThreshold } = chartDesigner;
|
|
|
- const { xAxis, yAxis, sortColumn, sortType, threshold } = indicatorConfig;
|
|
|
+ const { xAxis, yAxis, otherColumn, sortColumn, sortType, threshold } = indicatorConfig;
|
|
|
const body = {
|
|
|
id: code,
|
|
|
- columnListName: [xAxis.column.name, yAxis.column.name],
|
|
|
- sortColumn: sortColumn ? sortColumn.key : xAxis.column.name,
|
|
|
- sort: sortType || 'asc',
|
|
|
+ xField: {
|
|
|
+ columnRename: xAxis.column.value,
|
|
|
+ columnType: xAxis.column.type
|
|
|
+ },
|
|
|
+ yField: {
|
|
|
+ columnRename: yAxis.column.value,
|
|
|
+ columnType: yAxis.column.type,
|
|
|
+ showDataType: yAxis.gauge.value
|
|
|
+ },
|
|
|
+ otherColumn: otherColumn.map(c => c.value),
|
|
|
+ sort: sortColumn ? sortColumn.key : (xAxis.column.value || yAxis.column.value),
|
|
|
+ rule: sortType || 'asc',
|
|
|
filters: getBodyFilters(filters),
|
|
|
- testPage: {
|
|
|
- pageNum: 1,
|
|
|
- pageSize: threshold || defaultIndicatorThreshold,
|
|
|
- }
|
|
|
+ threshold: threshold || defaultIndicatorThreshold
|
|
|
};
|
|
|
|
|
|
let res = yield call(service.fetch, {
|
|
|
- url: URLS.CHART_DATAVIEW_OPTION,
|
|
|
+ url: URLS.CHART_INDICATOR_OPTION,
|
|
|
body: body,
|
|
|
timeout: 30000
|
|
|
});
|
|
|
if(res.code > 0) {
|
|
|
let option = parseChartOption('indicator', res.data, indicatorConfig, theme, styleConfig.indicator);
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: option });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: res.data },
|
|
|
+ { name: 'chartOption', value: option },
|
|
|
+ ] });
|
|
|
}else {
|
|
|
message.error('请求指标数据失败: ' + res.msg);
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: null },
|
|
|
+ { name: 'chartOption', value: {} },
|
|
|
+ ] });
|
|
|
}
|
|
|
yield put({ type: 'silentSetField', name: 'fetchConfig', value: body });
|
|
|
}catch(e) {
|
|
|
- yield put({ type: 'silentSetField', name: 'chartOption', value: {} });
|
|
|
+ yield put({ type: 'silentSetFields', fields: [
|
|
|
+ { name: 'resData', value: null },
|
|
|
+ { name: 'chartOption', value: {} },
|
|
|
+ ] });
|
|
|
message.error('请求指标数据失败: ' + e.message);
|
|
|
}
|
|
|
},
|