fix: bug修复
This commit is contained in:
parent
4bb64214e7
commit
b261a34d47
@ -12,6 +12,9 @@ export class SVLink extends SVModel {
|
|||||||
public shadowG6Item: IEdge;
|
public shadowG6Item: IEdge;
|
||||||
public G6Item: IEdge;
|
public G6Item: IEdge;
|
||||||
|
|
||||||
|
public nodeId: string;
|
||||||
|
public targetId: string;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
id: string,
|
id: string,
|
||||||
type: string,
|
type: string,
|
||||||
@ -26,6 +29,8 @@ export class SVLink extends SVModel {
|
|||||||
|
|
||||||
this.node = node;
|
this.node = node;
|
||||||
this.target = target;
|
this.target = target;
|
||||||
|
this.nodeId = node.id;
|
||||||
|
this.targetId = target.id;
|
||||||
this.linkIndex = index;
|
this.linkIndex = index;
|
||||||
|
|
||||||
node.links.outDegree.push(this);
|
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
|
* 进行diff
|
||||||
* @param layoutGroupTable
|
* @param layoutGroupTable
|
||||||
@ -402,7 +417,7 @@ export class Reconcile {
|
|||||||
const updateModels: SVModel[] = [
|
const updateModels: SVModel[] = [
|
||||||
...this.getReTargetMarkers(prevModelList, modelList),
|
...this.getReTargetMarkers(prevModelList, modelList),
|
||||||
...this.getLabelChangeModels(prevModelList, modelList),
|
...this.getLabelChangeModels(prevModelList, modelList),
|
||||||
...appendModels,
|
...this.filterUnChangeModelsOfAppend(appendModels, prevModelList),
|
||||||
...leakModels,
|
...leakModels,
|
||||||
];
|
];
|
||||||
const freedModels: SVNode[] = this.getFreedModels(prevModelList, modelList);
|
const freedModels: SVNode[] = this.getFreedModels(prevModelList, modelList);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user