collect-system/packages/client/src/singleton/DataHolder.ts

86 lines
2.0 KiB
TypeScript
Raw Normal View History

2025-02-06 16:32:52 +08:00
export class PostParams {
private static instance: PostParams;
private postParams: Array<object>;
private postDetailParams: Array<object>;
2024-12-30 08:26:40 +08:00
private constructor() {
2025-02-06 16:32:52 +08:00
this.postParams = [];
this.postDetailParams = [];
2024-12-30 08:26:40 +08:00
}
2025-02-06 16:32:52 +08:00
public static getInstance(): PostParams {
if (!PostParams.instance) {
PostParams.instance = new PostParams();
2024-12-30 08:26:40 +08:00
}
2025-02-06 16:32:52 +08:00
return PostParams.instance;
2024-12-30 08:26:40 +08:00
}
public addItem(item: object): void {
2025-02-06 16:32:52 +08:00
const isDuplicate = this.postParams.some((existingItem: any) => {
if (item && existingItem) {
const itemWhere = (item as any).where;
const existingWhere = existingItem.where;
return (
itemWhere?.parentId === existingWhere?.parentId &&
itemWhere?.type === existingWhere?.type
);
}
return false;
});
2024-12-30 08:26:40 +08:00
if (!isDuplicate) {
2025-02-06 16:32:52 +08:00
this.postParams.push(item);
2024-12-30 08:26:40 +08:00
}
}
2025-02-06 16:32:52 +08:00
public addDetailItem(item: object): void {
const isDuplicate = this.postDetailParams.some((existingItem: any) => {
if (item && existingItem) {
const itemWhere = (item as any).where;
const existingWhere = existingItem.where;
return itemWhere?.id === existingWhere?.id;
}
return false;
});
if (!isDuplicate) {
this.postDetailParams.push(item);
}
}
public removeItem(item: object): void {
this.postParams = this.postParams.filter((existingItem: any) => {
if (item && existingItem) {
const itemWhere = (item as any).where;
const existingWhere = existingItem.where;
return !(
itemWhere?.parentId === existingWhere?.parentId &&
itemWhere?.type === existingWhere?.type
);
}
return true;
});
}
public removeDetailItem(item: object): void {
this.postDetailParams = this.postDetailParams.filter(
(existingItem: any) => {
if (item && existingItem) {
const itemWhere = (item as any).where;
const existingWhere = existingItem.where;
return !(itemWhere?.id === existingWhere?.id);
}
return true;
}
);
}
2024-12-30 08:26:40 +08:00
public getItems(): Array<object> {
2025-02-06 16:32:52 +08:00
return [...this.postParams];
}
public getDetailItems(): Array<object> {
return [...this.postDetailParams];
2024-12-30 08:26:40 +08:00
}
}