fix:修复一些bug

This commit is contained in:
黎智洲
2021-05-27 15:56:17 +08:00
parent ad9333bd3b
commit 66a084ba12
6 changed files with 62 additions and 30 deletions
+26 -20
View File
@@ -26,32 +26,38 @@ export class Container {
this.interactionOptions = engine.interactionOptions;
this.prevModelList = [];
const tooltip = new SV.G6.Tooltip({
offsetX: 10,
offsetY: 20,
shouldBegin(event) {
return event.item.getModel().SVModelType === 'element';
},
getContent(event) {
const data = event.item.SVModel.data,
wrapper = document.createElement('div');
const g6Plugins = [];
wrapper.style.padding = '0 4px 0 4px';
wrapper.innerHTML = `
<h5>id: ${ event.item.SVModel.sourceId }</h5>
<h5>data: ${ data? data: '' }</h5>
`
return wrapper;
},
itemTypes: ['node']
});
if(g6Options.tooltip) {
const tooltip = new SV.G6.Tooltip({
offsetX: 10,
offsetY: 20,
shouldBegin(event) {
return event.item.getModel().SVModelType === 'element';
},
getContent(event) {
const data = event.item.SVModel.data,
wrapper = document.createElement('div');
wrapper.style.padding = '0 4px 0 4px';
wrapper.innerHTML = `
<h5>id: ${ event.item.SVModel.sourceId }</h5>
<h5>data: ${ data? data: '' }</h5>
`
return wrapper;
},
itemTypes: ['node']
});
g6Plugins.push(tooltip);
}
this.renderer = new Renderer(engine, DOMContainer, {
...g6Options,
fitCenter: g6Options.fitCenter,
modes: {
default: this.initBehaviors(this.engine.optionsTable)
},
plugins: [tooltip]
plugins: g6Plugins
});
this.afterInitRenderer();
+10 -5
View File
@@ -25,17 +25,17 @@ export class ViewManager {
constructor(engine: Engine, DOMContainer: HTMLElement) {
this.engine = engine;
this.layouter = new Layouter(engine);
this.mainContainer = new MainContainer(engine, DOMContainer);
this.mainContainer = new MainContainer(engine, DOMContainer, { tooltip: true });
this.prevLayoutGroupTable = null;
const options: EngineOptions = this.engine.engineOptions;
if(options.freedContainer) {
this.freedContainer = new FreedContainer(engine, options.freedContainer, { fitCenter: true });
this.freedContainer = new FreedContainer(engine, options.freedContainer, { fitCenter: true, tooltip: false });
}
if(options.leakContainer) {
this.leakContainer = new LeakContainer(engine, options.leakContainer, { fitCenter: true });
this.leakContainer = new LeakContainer(engine, options.leakContainer, { fitCenter: true, tooltip: false });
}
this.shadowG6Instance = new SV.G6.Graph({
@@ -119,11 +119,16 @@ export class ViewManager {
if(curGroup) {
elements = prevGroup.element.filter(item => !curGroup.element.find(n => n.id === item.id)).filter(item => item.freed === false),
links = prevGroup.link.filter(item => !curGroup.link.find(n => n.id === item.id)),
elementIds = elements.map(item => item.id);
links = prevGroup.link.filter(item => !curGroup.link.find(n => n.id === item.id));
elements = curGroup.layouter.defineLeakRule(elements);
}
else {
elements = prevGroup.element;
links = prevGroup.link;
}
elements.forEach(item => {
elementIds.push(item.id);
item.set('style', {
fill: '#ccc'
});