@qn-pandora/pandora-visualization
Version:
Pandora 通用可视化库
85 lines (84 loc) • 3.45 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import { get } from 'lodash';
import ChartDrillDownService from './base-chart-drill';
/**
* Tree数据表的DrillDown Service
*/
var TreeTableDrillDownService = /** @class */ (function (_super) {
__extends(TreeTableDrillDownService, _super);
function TreeTableDrillDownService() {
return _super !== null && _super.apply(this, arguments) || this;
}
TreeTableDrillDownService.prototype.toSearchAutoEvent = function (params) {
var _this = this;
var metrics = [];
var buckets = [];
if (params.clickField.type === 'metric') {
buckets = params.fields
.filter(function (item) { return item.type === 'bucket'; })
.map(function (field, index) {
var fieldName = field.name;
return _this.generateBucket(fieldName, get(params.record.bucketValue, index), params.fields);
});
metrics = [this.generateMetric(params.clickField.name, params.clickValue)];
}
else {
var bucketIndex = get(params.record, ['bucketValue', 'length']) - 1;
buckets = [
this.generateBucket(params.fields[bucketIndex].name, get(params.record, ['bucketValue', bucketIndex]), params.fields)
];
}
return this.generateValidResults({ buckets: buckets, metrics: metrics });
};
TreeTableDrillDownService.prototype.toDrillDownToken = function (params) {
var bucketValue = params.record.bucketValue;
var firstBucketName = get(params.fields[0], 'name');
var firstBucketValue = bucketValue[0];
var clickName = params.clickField.name;
var clickValue = params.clickValue;
// 纠正树状表第一列列名与指标名称不对应
if (params.clickField.type === 'bucket') {
var bucketIndex = get(bucketValue, 'length') - 1;
clickName = params.fields[bucketIndex].name;
clickValue = get(bucketValue, bucketIndex);
}
var row = {};
params.fields.forEach(function (_a, index) {
var name = _a.name, type = _a.type;
if (type === 'bucket') {
if (index < bucketValue.length) {
row[name] = bucketValue[index];
}
else {
row[name] = '*';
}
}
else {
row[name] = get(params.record, [name, 'current']);
}
});
return {
row: row,
click: {
name: firstBucketName,
value: firstBucketValue,
name1: clickName,
value1: clickValue
}
};
};
return TreeTableDrillDownService;
}(ChartDrillDownService));
export default TreeTableDrillDownService;