fix: bug修复

This commit is contained in:
黎智洲 2022-03-11 15:22:30 +08:00
parent 4bb64214e7
commit b261a34d47
2 changed files with 21 additions and 1 deletions

View File

@ -12,6 +12,9 @@ export class SVLink extends SVModel {
public shadowG6Item: IEdge;
public G6Item: IEdge;
public nodeId: string;
public targetId: string;
constructor(
id: string,
type: string,
@ -26,6 +29,8 @@ export class SVLink extends SVModel {
this.node = node;
this.target = target;
this.nodeId = node.id;
this.targetId = target.id;
this.linkIndex = index;
node.links.outDegree.push(this);

View File

@ -378,6 +378,21 @@ export class Reconcile {
});
}
/**
* model中那些不需要高亮的modeltarget和node都一样的link
* @param appendModels
*/
private filterUnChangeModelsOfAppend(appendModels: SVModel[], prevModelList: SVModel[]): SVModel[] {
const links: SVLink[] = appendModels.filter(item => item instanceof SVLink) as SVLink[],
prevLinks: SVLink[] = prevModelList.filter(item => item instanceof SVLink) as SVLink[],
models = appendModels.filter(item => item instanceof SVLink === false),
changeLinks: SVLink[] = links.filter(
item => !prevLinks.some(prev => prev.targetId === item.targetId && prev.nodeId === item.nodeId)
);
return [...models, ...changeLinks];
}
/**
* diff
* @param layoutGroupTable
@ -402,7 +417,7 @@ export class Reconcile {
const updateModels: SVModel[] = [
...this.getReTargetMarkers(prevModelList, modelList),
...this.getLabelChangeModels(prevModelList, modelList),
...appendModels,
...this.filterUnChangeModelsOfAppend(appendModels, prevModelList),
...leakModels,
];
const freedModels: SVNode[] = this.getFreedModels(prevModelList, modelList);