data-vis-ui
Version:
## [使用文档](https://temp-static-domain.jd.com/data-vis-ui)
85 lines (79 loc) • 2.06 kB
JavaScript
import { cloneDeep } from 'lodash';
export var getOption = function getOption(type, axis, series, option) {
if (type === 'line' || type === 'bar') {
return getLineOrBarOption(type, axis, series);
} else if (type === 'pie') {
return getPieOption(type, axis, series);
} else {
if (series.length > 0 || axis.length > 0) {
return getLineOrBarOption(type, axis, series);
} else if (option) {
return option;
} else {
console.warn('data-vis-ui:请检查组件传参');
return defaultOption;
}
}
};
var defaultOption = {
title: {
text: '',
left: '2%',
top: 0,
textStyle: {
fontSize: 14,
color: '#fff'
}
},
grid: {
show: true,
borderWidth: 0,
left: '10%',
top: '10%',
bottom: '10%',
right: '5%'
},
tooltip: {
show: true,
trigger: 'axis',
axisPointer: {
type: 'cross'
}
}
}; // 折线图、柱状图
var getLineOrBarOption = function getLineOrBarOption(type, axis, series) {
return Object.assign(Object.assign({}, defaultOption), {
xAxis: {
type: 'category',
data: axis
},
yAxis: [{
type: 'value'
}],
series: getSeries(type, series)
});
}; // 饼图
var getPieOption = function getPieOption(type, axis, series) {
return Object.assign(Object.assign({}, defaultOption), {
series: getSeries(type, series)
});
};
var getSeries = function getSeries() {
var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'bar';
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var series = cloneDeep(data); // 适用于折线图跟柱状图
if (type === 'line' || type === 'bar' || type === 'pie') {
if (Array.isArray(series)) {
return series.map(function (item) {
item.data = item.value;
item.type = item.type || type;
return item;
});
} else {
series.data = series.value;
series.type = series.type || type;
return series;
}
}
return series;
};