forked from ezreal/BI-FR-MIX-FRONT
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
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; |
|
}) |
|
})(); |