1.3 KiB
1.3 KiB
category.ts
路径:src/api/category.ts
功能用途
分类(Tag)相关接口与数据结构,对接 /PmTag/getPmTagList,获取首页顶部分类 Tab 数据。支持树形结构、图标自动匹配、按 sort 排序。
核心能力
getPmTagMain:获取主分类树,返回CategoryTreeNode[]enrichWithIcons:递归为节点补充 MDI 图标(无 icon 时自动匹配)MOCK_CATEGORY_TREE:模拟分类数据,用于开发/测试
类型说明
| 类型 | 说明 |
|---|---|
PmTagMainItem |
接口返回的 PmTag 结构,含 children |
CategoryTreeNode |
前端使用的树节点,含 id、label、slug、icon、sectionTitle、children |
使用方式
import { getPmTagMain, enrichWithIcons, MOCK_CATEGORY_TREE } from '@/api/category'
// 获取分类
const res = await getPmTagMain()
const tree = res.data // 已包含图标、排序
// 开发时使用 mock
const mockTree = enrichWithIcons(MOCK_CATEGORY_TREE)
扩展方式
- 新增分类层级:在
CategoryTreeNode中扩展字段,getPmTagMain的mapPmTagToTreeNode中映射 - 自定义图标:在
categoryIcons.ts中扩展ICON_MAP,enrichWithIcons会自动使用 - 过滤逻辑:在
getPmTagMain中根据forceShow/forceHide过滤节点