@qn-pandora/pandora-visualization
Version:
Pandora 通用可视化库
335 lines (334 loc) • 14.4 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 __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var mobx_1 = require("mobx");
var lodash_1 = require("lodash");
var bind_1 = __importDefault(require("../../../utils/bind"));
var base_1 = __importDefault(require("../stores/base"));
var BaseTableStore = /** @class */ (function (_super) {
__extends(BaseTableStore, _super);
function BaseTableStore(getProps) {
var _this = _super.call(this, getProps) || this;
/**
* 表格数据显示、样式form表单都依赖于dataset, 特加此reaction。
* 渲染了数据后设置column和DataSource到chartStyleService
*/
_this.addDisposer(mobx_1.reaction(function () { return _this.dataset; }, function (dataset) {
var _a = _this.getInitTableData(dataset), columns = _a.columns, dataSource = _a.dataSource;
var _b = _this.chartStyleService, setColumns = _b.setColumns, setDataSource = _b.setDataSource;
setColumns(columns);
setDataSource(dataSource);
}, {
fireImmediately: true
}));
return _this;
}
Object.defineProperty(BaseTableStore.prototype, "filters", {
get: function () {
return this.chartStyleService.filterColumns
.filter(function (item) { return item.checked && item.filters; })
.map(function (item) { return ({ key: item.dataIndex, value: item.filters }); });
},
enumerable: false,
configurable: true
});
Object.defineProperty(BaseTableStore.prototype, "baseDataSource", {
get: function () {
return this.chartStyleService.dataSource;
},
enumerable: false,
configurable: true
});
Object.defineProperty(BaseTableStore.prototype, "tableData", {
get: function () {
var _this = this;
if (!this.filters.length) {
return this.baseDataSource;
}
var newData = [];
this.baseDataSource.forEach(function (item) {
var e_1, _a;
var isAdd = true;
var _loop_1 = function (filter) {
if (filter.value.length > 0) {
var index = lodash_1.findIndex(filter.value, function (value) { return lodash_1.toString(value) === lodash_1.toString(item[filter.key].current); });
if (index === -1) {
isAdd = false;
return "break";
}
}
};
try {
for (var _b = __values(_this.filters), _c = _b.next(); !_c.done; _c = _b.next()) {
var filter = _c.value;
var state_1 = _loop_1(filter);
if (state_1 === "break")
break;
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
if (isAdd) {
newData.push(item);
}
});
return newData;
},
enumerable: false,
configurable: true
});
Object.defineProperty(BaseTableStore.prototype, "renderColumns", {
get: function () {
var _a;
// 下钻后,新的数据需要全部checked
// 非下钻数据变更的时候,如果有配置项,按照配置项的,无配置项则为全部选中
var isInDrillDown = (_a = this.chartActionService) === null || _a === void 0 ? void 0 : _a.drillDownActionService.isInDrillDown;
var _b = this.chartStyleService, filterColumns = _b.filterColumns, hasColumnsConfig = _b.hasColumnsConfig;
var checked = isInDrillDown ? true : !hasColumnsConfig;
var renderColumns = [];
filterColumns.forEach(function (item) {
var realChecked = lodash_1.isNil(item.checked) ? checked : item.checked;
if (realChecked) {
renderColumns.push(__assign(__assign({}, item), { checked: true }));
}
});
return renderColumns;
},
enumerable: false,
configurable: true
});
Object.defineProperty(BaseTableStore.prototype, "chartDataset", {
get: function () {
return this.dataset;
},
enumerable: false,
configurable: true
});
Object.defineProperty(BaseTableStore.prototype, "showPagination", {
get: function () {
return this.chartStyleService.pagination;
},
enumerable: false,
configurable: true
});
Object.defineProperty(BaseTableStore.prototype, "pagination", {
get: function () {
var total = this.tableData.length;
var _a = this.chartStyleService, tablePageSize = _a.tablePageSize, pagination = _a.pagination;
var pageSize = pagination ? tablePageSize : total;
return {
size: 'default',
total: total,
pageSize: pageSize,
simple: true
};
},
enumerable: false,
configurable: true
});
Object.defineProperty(BaseTableStore.prototype, "bordered", {
get: function () {
var border = this.chartStyleService.bordered;
return lodash_1.isUndefined(border)
? lodash_1.get(this.themeOption, ['table', 'border', 'show'])
: border;
},
enumerable: false,
configurable: true
});
Object.defineProperty(BaseTableStore.prototype, "tableTitleFont", {
get: function () {
return this.chartStyleService.tableTitleFont;
},
enumerable: false,
configurable: true
});
Object.defineProperty(BaseTableStore.prototype, "tableTitleBgColor", {
get: function () {
return this.chartStyleService.tableTitleBgColor;
},
enumerable: false,
configurable: true
});
Object.defineProperty(BaseTableStore.prototype, "pageScroll", {
get: function () {
return this.chartStyleService.scroll;
},
enumerable: false,
configurable: true
});
Object.defineProperty(BaseTableStore.prototype, "autoplaySpeed", {
get: function () {
return this.chartStyleService.autoplaySpeed;
},
enumerable: false,
configurable: true
});
BaseTableStore.prototype.getSortFunction = function (key) {
return {
ascend: function (a, b) {
return (lodash_1.get(a, [key, 'current']) || 0) - (lodash_1.get(b, [key, 'current']) || 0);
},
descend: function (a, b) {
return (lodash_1.get(b, [key, 'current']) || 0) - (lodash_1.get(a, [key, 'current']) || 0);
}
};
};
BaseTableStore.prototype.onSettingChange = function (fields) {
var _a;
var _b = this.chartStyleService, filterColumns = _b.filterColumns, setFilterColumns = _b.setFilterColumns, hasColumnsConfig = _b.hasColumnsConfig;
var isInDrillDown = (_a = this.chartActionService) === null || _a === void 0 ? void 0 : _a.drillDownActionService.isInDrillDown;
var checked = isInDrillDown ? true : !hasColumnsConfig;
setFilterColumns(filterColumns.map(function (col) {
var _a;
var realChecked = lodash_1.isNil(col.checked) ? checked : col.checked;
var width = ((_a = fields.find(function (item) { return item.field === col.dataIndex; })) === null || _a === void 0 ? void 0 : _a.width) || col.width;
return __assign(__assign({}, col), { width: lodash_1.isNumber(width) && width < 120 ? 120 : width, checked: realChecked });
}));
};
BaseTableStore.prototype.onColumnsFiltersChange = function (filters) {
var _a;
var _b = this.chartStyleService, filterColumns = _b.filterColumns, setFilterColumns = _b.setFilterColumns, hasColumnsConfig = _b.hasColumnsConfig;
var isInDrillDown = (_a = this.chartActionService) === null || _a === void 0 ? void 0 : _a.drillDownActionService.isInDrillDown;
var checked = isInDrillDown ? true : !hasColumnsConfig;
setFilterColumns(filterColumns.map(function (col) {
var realChecked = lodash_1.isNil(col.checked) ? checked : col.checked;
var index = filters.findIndex(function (filterValue) { return filterValue.key === col.dataIndex; });
if (index !== -1) {
return __assign(__assign({}, col), { checked: realChecked, filters: filters[index].value });
}
return __assign(__assign({}, col), { checked: realChecked, filters: [] });
}));
};
__decorate([
mobx_1.computed,
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], BaseTableStore.prototype, "filters", null);
__decorate([
mobx_1.computed,
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], BaseTableStore.prototype, "baseDataSource", null);
__decorate([
mobx_1.computed,
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], BaseTableStore.prototype, "tableData", null);
__decorate([
mobx_1.computed,
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], BaseTableStore.prototype, "renderColumns", null);
__decorate([
mobx_1.computed,
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], BaseTableStore.prototype, "chartDataset", null);
__decorate([
mobx_1.computed,
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], BaseTableStore.prototype, "showPagination", null);
__decorate([
mobx_1.computed,
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], BaseTableStore.prototype, "pagination", null);
__decorate([
mobx_1.computed,
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], BaseTableStore.prototype, "bordered", null);
__decorate([
mobx_1.computed,
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], BaseTableStore.prototype, "tableTitleFont", null);
__decorate([
mobx_1.computed,
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], BaseTableStore.prototype, "tableTitleBgColor", null);
__decorate([
mobx_1.computed,
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], BaseTableStore.prototype, "pageScroll", null);
__decorate([
mobx_1.computed,
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], BaseTableStore.prototype, "autoplaySpeed", null);
__decorate([
bind_1.default,
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", void 0)
], BaseTableStore.prototype, "getSortFunction", null);
__decorate([
bind_1.default,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Array]),
__metadata("design:returntype", void 0)
], BaseTableStore.prototype, "onSettingChange", null);
__decorate([
bind_1.default,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Array]),
__metadata("design:returntype", void 0)
], BaseTableStore.prototype, "onColumnsFiltersChange", null);
return BaseTableStore;
}(base_1.default));
exports.default = BaseTableStore;