nuke-biz-qn-chart
Version:
weex 版本千牛业务图表库,基于weex + rax,包含线图、柱状图、饼图、雷达图等,其他类型的图表正在按业务需求陆续接入。其中 native 端由客户端插件实现,h5 端使用 g2-mobile
88 lines (75 loc) • 2.59 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,
cols = options.cols,
colors = options.colors,
lineSeperator = options.lineSeperator,
xAxis = options.xAxis,
yAxis = options.yAxis,
_options$smooth = options.smooth,
smooth = _options$smooth === undefined ? false : _options$smooth;
var dataObj = {};
var colorSeries = colors || _nukeBizChart.defaultSettings.colors;
// antv 的图标数据是混杂的,必须要先分成若干个数据块
if (lineSeperator) {
dataObj = (0, _lodash2.default)(data, lineSeperator);
} else {
dataObj[yAxis.name] = Object.assign([], data);
}
var labels = [];
var dataResult = {
dataSets: [],
"barWidth": _nukeBizChart.defaultSettings.widthRatio.column,
"drawValues": false,
"valueTextColor": "#000000",
"valueTextSize": 15
};
var colorIndex = 0;
(0, _lodash4.default)(dataObj, function (item, key) {
var entries = item;
labels = [];
var dataSetItem = {
"label": key,
"color": colorSeries[colorIndex],
"barBorderWidth": 0,
"barBorderColor": "black",
"highlightEnabled": false,
"highLightColor": "red",
"highLightAlpha": 0.7
};
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] = { "x": i, "y": entries[i][yAxis.name] };
labels.push(x);
}
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;