- 添加导航条目和分类数据模型 - 实现导航卡片网格展示 - 支持点击卡片打开链接 - 添加主题样式(渐变色、卡片阴影) - 区分系统默认和自定义条目 - 添加分类统计信息"
85 lines
2.3 KiB
Dart
85 lines
2.3 KiB
Dart
import '../domain/models/home_data.dart';
|
|
import '../domain/models/link_item.dart';
|
|
import '../domain/models/link_section.dart';
|
|
import '../domain/models/nav_node.dart';
|
|
|
|
/// 侧栏导航树,与 `index3.html` 的 `<ul class="nav-group">` 一一对应。
|
|
const List<NavNode> mockNavNodes = <NavNode>[
|
|
NavNode(id: 'common', title: '常用推荐'),
|
|
NavNode(
|
|
id: 'materials',
|
|
title: '素材资源',
|
|
children: <NavNode>[
|
|
NavNode(id: 'design', title: 'UI 设计'),
|
|
NavNode(id: 'icon', title: '图标库'),
|
|
NavNode(id: 'stock', title: '高清壁纸'),
|
|
],
|
|
),
|
|
NavNode(
|
|
id: 'dev-tools',
|
|
title: '开发工具',
|
|
children: <NavNode>[
|
|
NavNode(id: 'dev', title: '前端框架'),
|
|
NavNode(id: 'api', title: '在线 API'),
|
|
],
|
|
),
|
|
];
|
|
|
|
/// 内容区分组,与 `index3.html` 的两段内容一一对应。
|
|
///
|
|
/// 原型只写了 `#common` 与 `#design` 两段;导航里的 `#icon`、`#stock`、
|
|
/// `#dev`、`#api` 在原型中没有对应元素,点击不会发生任何事——这里保持一致。
|
|
const List<LinkSection> mockLinkSections = <LinkSection>[
|
|
LinkSection(
|
|
id: 'common',
|
|
title: '常用推荐',
|
|
items: <LinkItem>[
|
|
LinkItem(
|
|
id: 'github',
|
|
title: 'GitHub',
|
|
url: 'https://github.com',
|
|
description: '代码托管与开源社区',
|
|
),
|
|
LinkItem(
|
|
id: 'zhihu',
|
|
title: '知乎',
|
|
url: 'https://www.zhihu.com',
|
|
description: '深度内容问答社区',
|
|
),
|
|
LinkItem(
|
|
id: 'bilibili',
|
|
title: '哔哩哔哩',
|
|
url: 'https://www.bilibili.com',
|
|
description: '弹幕视频分享网站',
|
|
),
|
|
],
|
|
),
|
|
LinkSection(
|
|
id: 'design',
|
|
title: '素材资源 - UI 设计',
|
|
items: <LinkItem>[
|
|
LinkItem(
|
|
id: 'figma',
|
|
title: 'Figma',
|
|
url: 'https://www.figma.com',
|
|
description: '协同界面设计工具',
|
|
),
|
|
LinkItem(
|
|
id: 'dribbble',
|
|
title: 'Dribbble',
|
|
url: 'https://dribbble.com',
|
|
description: '全球设计作品分享社区',
|
|
),
|
|
],
|
|
),
|
|
];
|
|
|
|
/// 首页聚合数据。
|
|
const HomeData mockHomeData = HomeData(
|
|
siteName: 'Suxing Nav',
|
|
searchHint: '输入关键字搜索全网资源...',
|
|
navNodes: mockNavNodes,
|
|
sections: mockLinkSections,
|
|
submitUrl: 'https://mattermost.example.com',
|
|
);
|