@qn-pandora/pandora-visualization
Version:
Pandora 通用可视化库
90 lines (89 loc) • 3.72 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 __());
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var lodash_1 = require("lodash");
var base_chart_action_1 = __importDefault(require("./base-chart-action"));
/**
* Tree数据表的Link Service
*/
var TreeTableActionService = /** @class */ (function (_super) {
__extends(TreeTableActionService, _super);
function TreeTableActionService() {
return _super !== null && _super.apply(this, arguments) || this;
}
TreeTableActionService.prototype.toEvent = 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, lodash_1.get(params.record.bucketValue, index), params.fields);
});
metrics = [this.generateMetric(params.clickField.name, params.clickValue)];
}
else {
var bucketIndex = lodash_1.get(params.record, ['bucketValue', 'length']) - 1;
buckets = [
this.generateBucket(params.fields[bucketIndex].name, lodash_1.get(params.record, ['bucketValue', bucketIndex]), params.fields)
];
}
return this.generateValidResults({ buckets: buckets, metrics: metrics });
};
TreeTableActionService.prototype.toActionToken = function (params) {
var bucketValue = params.record.bucketValue;
var firstBucketName = lodash_1.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 = lodash_1.get(bucketValue, 'length') - 1;
clickName = params.fields[bucketIndex].name;
clickValue = lodash_1.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] = lodash_1.get(params.record, [name, 'current']);
}
});
return {
row: row,
click: {
name: firstBucketName,
value: firstBucketValue,
name1: clickName,
value1: clickValue
}
};
};
return TreeTableActionService;
}(base_chart_action_1.default));
exports.default = TreeTableActionService;