docs: 清理过时文档,新增首页API契约并更新相关内容
- 删除backend-plan.md、backend-api-service.md等多份过时项目文档 - 新增home-api.md规范首页三类内容的Admin API补充契约 - 更新docs/README.md的文档清单与展示格式 - 优化integration-workflow.md、admin-api-requirements.md等文档的表格与内容 - 为WonderQ-MiniAPP的homeExperienceData.ts新增API适配类型与归一化函数
This commit is contained in:
1 parent
ca6f9397e0
commit
cda8069630
11 files changed
+475
-512
No files matched your search
@@ -8,6 +8,20 @@ export type HomeExperience = {
|
||||
demandKeyword: string;
|
||||
};
|
||||
|
||||
export type HomeExperienceApiItem = {
|
||||
id?: string | null;
|
||||
badge?: string | null;
|
||||
category?: string | null;
|
||||
title?: string | null;
|
||||
englishTitle?: string | null;
|
||||
image?: string | null;
|
||||
demandKeyword?: string | null;
|
||||
isActive?: boolean | null;
|
||||
sortOrder?: number | null;
|
||||
};
|
||||
|
||||
export type HomeExperiences = HomeExperienceApiItem[];
|
||||
|
||||
export const homeExperienceMocks: HomeExperience[] = [
|
||||
{
|
||||
id: "waterfall-descent",
|
||||
@@ -28,3 +42,37 @@ export const homeExperienceMocks: HomeExperience[] = [
|
||||
demandKeyword: "地心探险",
|
||||
},
|
||||
];
|
||||
|
||||
export const homeExperienceFallback = homeExperienceMocks;
|
||||
|
||||
export function normalizeHomeExperiences(
|
||||
items: HomeExperiences | null | undefined,
|
||||
): HomeExperience[] {
|
||||
const fallback = homeExperienceFallback.map((item) => ({ ...item }));
|
||||
const activeItems = (items ?? [])
|
||||
.map((item, index) => ({ item, index }))
|
||||
.filter(({ item }) => item.isActive !== false && Boolean(item.title?.trim()))
|
||||
.sort(
|
||||
(left, right) =>
|
||||
(left.item.sortOrder ?? left.index) - (right.item.sortOrder ?? right.index),
|
||||
);
|
||||
|
||||
if (activeItems.length === 0) {
|
||||
return fallback;
|
||||
}
|
||||
|
||||
return activeItems.map(({ item }, index) => {
|
||||
const fallbackItem = homeExperienceFallback[index] ?? homeExperienceFallback[0];
|
||||
const title = item.title?.trim() || fallbackItem.title;
|
||||
|
||||
return {
|
||||
id: item.id?.trim() || fallbackItem.id,
|
||||
badge: item.badge?.trim() || fallbackItem.badge,
|
||||
category: item.category?.trim() || fallbackItem.category,
|
||||
title,
|
||||
englishTitle: item.englishTitle?.trim() || fallbackItem.englishTitle,
|
||||
image: item.image?.trim() || fallbackItem.image,
|
||||
demandKeyword: item.demandKeyword?.trim() || title,
|
||||
};
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user