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.
93 lines
3.7 KiB
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; |
|
}) |
|
|
|
})(); |