nuke-biz-qn-chart
Version:
weex 版本千牛业务图表库,基于weex + rax,包含线图、柱状图、饼图、雷达图等,其他类型的图表正在按业务需求陆续接入。其中 native 端由客户端插件实现,h5 端使用 g2-mobile
95 lines (81 loc) • 2.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.parseDataForWeex = undefined;
var _lodash = require('lodash.groupby');
var _lodash2 = _interopRequireDefault(_lodash);
var _lodash3 = require('lodash.foreach');
var _lodash4 = _interopRequireDefault(_lodash3);
var _nukeBizChart = require('nuke-biz-chart');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* 把 antv 的数据遍历、格式化为千牛 native 可识别的数据格式。
*
*/
function parseData(options) {
var data = options.data,
colors = options.colors,
cols = options.cols,
lineSeperator = options.lineSeperator,
value = options.value,
xAxis = options.xAxis,
yAxis = options.yAxis,
color = options.color,
fontSize = options.fontSize,
lineWidth = options.lineWidth,
label = options.label,
opacity = options.opacity;
var drawFilled = false;
if (opacity) {
drawFilled = true;
}
var colorSeries = colors || _nukeBizChart.defaultSettings.colors;
var dataObj = {};
// antv 的图标数据是混杂的,必须要先分成若干个数据块
if (lineSeperator) {
dataObj = (0, _lodash2.default)(data, lineSeperator);
} else {
dataObj[yAxis.name] = Object.assign([], data);
}
var labels = [];
var dataResult = {
dataSets: [],
"drawValues": false,
"valueTextColor": color,
"valueTextSize": fontSize
};
var colorIndex = 0;
(0, _lodash4.default)(dataObj, function (item, key) {
var entries = item;
labels = [];
var dataSetItem = {
"label": key,
"color": colorSeries[colorIndex],
drawFilled: drawFilled,
"fillColor": colorSeries[colorIndex],
"fillAlpha": opacity,
"lineWidth": lineWidth
};
for (var i = 0; i < entries.length; i++) {
var x = entries[i][xAxis.name];
// entries[i] = {"x": entries[i][xAxis],"y": entries[i][yAxis]};
entries[i] = { "value": entries[i][yAxis.name] };
labels.push(x.toString());
}
dataSetItem['entries'] = entries;
dataResult['dataSets'].push(dataSetItem);
colorIndex++;
});
var result = {
dataResult: dataResult,
labels: labels
};
return result;
}
function parseDataForWeex(options) {
// const {data,cols,lineSeperator,xAxis,yAxis} = options;
var dataArr = parseData(options);
return dataArr;
}
exports.parseDataForWeex = parseDataForWeex;