fix: bug修复
This commit is contained in:
parent
4bb64214e7
commit
b261a34d47
@ -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);
|
||||
|
||||
@ -378,6 +378,21 @@ export class Reconcile {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 过滤新增model中那些不需要高亮的model(比如target和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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user