You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

86 lines
3.2 KiB

;!(function () {
BI.Plugin.registerWidget("bi.conf.pack.table.usage", function (widget) {
widget.beforeInit = function (callback) {
var self = this;
self.store.cptMap = {};
self.store.frmMap = {};
/**
* 初始化一些数据的
* @type {self.store.buildItemMap}
*/
self.store.oldBuildItemMap = self.store.buildItemMap;
self.store.buildItemMap = function (usageInfo) {
self.store.oldBuildItemMap(usageInfo);
BI.each(usageInfo.cptMap, (key, value) => {
self.store.cptMap[key] = value;
});
BI.each(usageInfo.frmMap, (key, value) => {
self.store.frmMap[key] = value;
});
}
/**
* 创建节点
* @type {function(*=, *=, *=): (*|null)}
*/
self.store.oldGetNodeByItem = self.store.getNodeByItem;
self.store.getNodeByItem = function (pId, item, direction) {
var find = BI.find(BI.Front.SUPPORT_REPORT, function (index, o) {
return item.type === o.typeValue;
})
if (find) {
var info = {
isParent: item.knots > 0,
count: item.knots,
childrenItems: item.usageItemBeans,
direction,
};
var reportMap = {};
if (find.typeValue === 101) {
reportMap = self.store.cptMap
} else if (find.typeValue === 102) {
reportMap = self.store.frmMap
}
if (reportMap[item.id]) {
return BI.extend(self.store.createExtendReportNode(pId, reportMap[item.id], find.typeValue), info)
}
return null;
}
return self.store.oldGetNodeByItem(pId, item, direction);
}
self.store.createExtendReportNode = function (pId, report, itemType) {
return {
text: report.name,
title: function () {
return report.name
},
value: Object.assign(Object.assign({}, report), {moduleType: 2}),
id: BI.UUID(),
pId: pId,
itemType: itemType,
}
}
/**
* 图标
* @type {function(*=): (*)}
*/
self.oldGetIconCls = self.getIconCls;
self.getIconCls = function (ob) {
var find = BI.find(BI.Front.SUPPORT_REPORT, function (index, o) {
return ob.itemType === o.typeValue;
});
if (find) {
return find.iconCls;
}
return self.oldGetIconCls(ob)
}
BI.isFunction(callback) && callback();
};
return widget;
});
BI.Plugin.configRender("bi.conf.pack.table.usage", function (renderObject) {
return renderObject;
})
})();