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
|
|
|
}
|
|
|
|
}
|