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.
 
 
 

93 lines
3.7 KiB

/**
* 对bi.subject.relationship.pane魔改
*/
;!(function () {
BI.Front = BI.Front || {};
BI.Front = BI.extend(BI.Front, {
relation_pane: {
widget: null
}
});
BI.Plugin.registerWidget("bi.subject.relationship.pane", function (widget) {
widget.beforeCreate = function () {
var self = this;
BI.Front.relation_pane.widget = self;
BI.each(BI.Front.SUPPORT_REPORT, function (index, item) {
(self.model.shownTypeMap)[item.type] = true;
})
self.store.oldSetLayout = self.store.setLayout;
self.store.setLayout = function (v) {
if (v) {
self.store._computedWatchers.shownIdsMap.value = self.store._computedWatchers.shownIdsMap.getter.call(self.store);
}
self.store.oldSetLayout();
}
}
})
BI.Plugin.registerObject("bi.subject.relationship.pane", function (object) {
var self = object;
object.populate = function () {
self.loading();
return self.store.initData().then(function () {
BI.each(BI.Front.SUPPORT_REPORT, function (index, item) {
var reportInfo = {};
var reportType = item.type;
var reportItems = [];
if (reportType === "cpt") {
reportItems = self.model.subjectInfo.cptItems.availableReports
} else if (reportType === "frm") {
reportItems = self.model.subjectInfo.frmItems.availableReports
} else {
return
}
BI.each(reportItems, function (i, o) {
reportInfo[o.id] = BI.extend({
available:true
},o);
var find = BI.find(self.model.itemBeans, function (a, b) {
return b.id === o.id;
})
if (!find) {//甘老师后台接口没有返回无血缘的数据,所以找不到就也要装进去,父节点为空
self.model.itemBeans.push({
id: o.id,
type: item.typeValue,
fatherItemIds: []
})
}
});
(self.model.resourceMap)[reportType] = reportInfo;
});
self.store._computedWatchers.shownIdsMap.value = self.store._computedWatchers.shownIdsMap.getter.call(self.store);
self.store._computedWatchers.shownList.value = self.store._computedWatchers.shownList.getter.call(self.store);
self.store._computedWatchers.shownEdges.value = self.store._computedWatchers.shownEdges.getter.call(self.store);
self.store.setLayout();
}).then(function () {
self.loaded();
if (BI.isNotEmptyArray(self.model.relationMapLayout)) {
self.map.initMap();
}
});
}
/**
* 血缘关系视图 点击切换tab的方法
* @type {object.store.showSelect}
*/
self.store.oldShowSelect = self.store.showSelect;
self.store.showSelect = function (id, type) {
var find = BI.find(BI.Front.SUPPORT_REPORT, function (index, item) {
return item.typeValue === type;
});
if (find) {
BI.isFunction(find.showPage) && find.showPage(id);
return;
}
self.store.oldShowSelect(id, type);
}
return object;
})
})();