Update WBBR frontend template collection

This commit is contained in:
Codex
2026-08-27 20:15:24 +08:00
parent bd4d54a110
commit e444605e5d
85 changed files with 6322 additions and 115 deletions

108
app/data/anime-detail.json Normal file
View File

@@ -0,0 +1,108 @@
{
"work": {
"title": "星海回响",
"titleEn": "ECHOES ACROSS THE STARS",
"subtitle": "当最后一颗人造星辰熄灭,他们决定把真正的星空带回城市。",
"status": "连载中",
"year": "2026",
"region": "原创动画",
"age": "13+",
"episodes": 12,
"updatedEpisode": 8,
"rating": 9.3,
"ratingCount": 18342,
"watchCount": "126.8万",
"followCount": "48.2万",
"rank": "本季口碑榜 No.2",
"tags": ["科幻", "青春", "治愈", "原创"],
"studio": "Lumen Frame",
"director": "川原澄",
"release": "2026-07-04",
"schedule": "每周六 20:00 更新",
"description": "海平面上升后的新港市,真正的星空被人造穹顶遮蔽。天文部少女澪在废弃观测站收到一段来自十二年前的星际讯号,并与转学生遥组成临时观测队。他们沿着讯号留下的坐标寻找失落的天文台,也逐渐发现城市穹顶背后被隐藏的秘密。",
"copyright": "© 2026 Project Star Echoes",
"announcement": "第 9 话将于本周六 20:00 准时更新"
},
"episodes": [
{ "id": 1, "title": "看不见星星的城市", "duration": "24:12", "date": "07-04", "progress": 100, "released": true, "summary": "澪在废弃天文台意外接收到未知讯号。" },
{ "id": 2, "title": "十二年前的坐标", "duration": "23:48", "date": "07-11", "progress": 42, "released": true, "summary": "遥辨认出讯号中属于旧港区的坐标。" },
{ "id": 3, "title": "雨停之前", "duration": "24:05", "date": "07-18", "progress": 0, "released": true, "summary": "两人在暴雨中寻找第一座地面信标。" },
{ "id": 4, "title": "潮汐电台", "duration": "23:56", "date": "07-25", "progress": 0, "released": true, "summary": "一段夜间广播连接起被遗忘的记忆。" },
{ "id": 5, "title": "光的背面", "duration": "24:20", "date": "08-01", "progress": 0, "released": true, "summary": "穹顶维护记录第一次出现人为删改痕迹。" },
{ "id": 6, "title": "无人观测站", "duration": "23:51", "date": "08-08", "progress": 0, "released": true, "summary": "观测队在海上风场发现第二台接收器。" },
{ "id": 7, "title": "零点之后", "duration": "24:03", "date": "08-15", "progress": 0, "released": true, "summary": "城市短暂停电,真正的银河显露了十一秒。" },
{ "id": 8, "title": "我们仰望的方向", "duration": "24:16", "date": "08-22", "progress": 0, "released": true, "summary": "澪决定公开观测数据,却面临意外阻力。" },
{ "id": 9, "title": "彗星抵达之夜", "duration": "--:--", "date": "本周六", "progress": 0, "released": false, "summary": "彗星将穿过穹顶开放窗口。" },
{ "id": 10, "title": "尚未命名", "duration": "--:--", "date": "待更新", "progress": 0, "released": false, "summary": "内容将在播出后解锁。" },
{ "id": 11, "title": "尚未命名", "duration": "--:--", "date": "待更新", "progress": 0, "released": false, "summary": "内容将在播出后解锁。" },
{ "id": 12, "title": "尚未命名", "duration": "--:--", "date": "待更新", "progress": 0, "released": false, "summary": "内容将在播出后解锁。" }
],
"products": [
{ "id": "SE-FIG-01", "name": "澪·观星时刻 1/7 手办", "category": "收藏手办", "price": 699, "originalPrice": 759, "badge": "预售", "stock": "剩余 86 件", "imagePosition": "left", "rating": 4.9 },
{ "id": "SE-BOOK-01", "name": "星海回响 设定集礼盒", "category": "画集 / 亚克力", "price": 189, "originalPrice": 219, "badge": "新品", "stock": "现货", "imagePosition": "center", "rating": 4.8 },
{ "id": "SE-JKT-01", "name": "天文观测部刺绣夹克", "category": "服饰", "price": 329, "originalPrice": 369, "badge": "限定", "stock": "部分尺码紧张", "imagePosition": "right", "rating": 4.7 }
],
"ratingDistribution": [
{ "stars": 5, "percent": 78 },
{ "stars": 4, "percent": 16 },
{ "stars": 3, "percent": 4 },
{ "stars": 2, "percent": 1 },
{ "stars": 1, "percent": 1 }
],
"comments": [
{
"id": 101,
"author": "北纬三十度",
"initial": "北",
"tone": "violet",
"score": 5,
"time": "2 小时前",
"episode": "看到第 8 话",
"content": "第七话停电后那十一秒的银河太震撼了。没有刻意煽情,角色只是安静地站在那里,反而把前面所有铺垫都接住了。美术和配乐都值得反复看。",
"likes": 328,
"spoiler": false,
"replies": [
{ "id": 1001, "author": "玻璃汽水", "initial": "汽", "content": "同感,环境音慢慢消失的处理尤其好。", "time": "1 小时前", "likes": 24 }
]
},
{
"id": 102,
"author": "纸飞机研究社",
"initial": "纸",
"tone": "blue",
"score": 4,
"time": "昨天 22:14",
"episode": "看到第 8 话",
"content": "设定很浪漫,主线推进也稳。希望后四集能多解释一点穹顶系统和遥的过去,现在伏笔已经很多了。",
"likes": 146,
"spoiler": false,
"replies": []
},
{
"id": 103,
"author": "折射率",
"initial": "折",
"tone": "coral",
"score": 5,
"time": "昨天 18:40",
"episode": "看到第 7 话",
"content": "镜头语言非常克制,观测站、潮汐和广播这些意象形成了很完整的呼应。第七话结尾已经加入我的年度画面候选。",
"likes": 97,
"spoiler": false,
"replies": []
},
{
"id": 104,
"author": "午后睡不醒",
"initial": "午",
"tone": "green",
"score": 4,
"time": "08-20",
"episode": "看到第 6 话",
"content": "人物相处很自然,小机器人每次出现都很可爱。节奏偏慢,但正好适合每周追一集慢慢消化。",
"likes": 61,
"spoiler": false,
"replies": []
}
]
}

View File

@@ -0,0 +1,73 @@
{
"listItems": [
{ "id": "DOC-2048", "title": "世界观设定总览", "description": "新港市、穹顶系统与海上风场的核心设定汇总", "category": "世界观", "status": "已发布", "tags": ["核心设定", "公开"], "owner": "林知夏", "initial": "林", "updated": "10 分钟前", "favorite": true },
{ "id": "DOC-2047", "title": "第 09 话分镜评审记录", "description": "彗星抵达之夜 · 第二轮分镜意见与修改清单", "category": "制作资料", "status": "评审中", "tags": ["分镜", "S1E09"], "owner": "周砚", "initial": "周", "updated": "今天 14:32", "favorite": true },
{ "id": "DOC-2046", "title": "角色语言风格指南", "description": "主要角色语气、习惯用词与情绪表达边界", "category": "角色", "status": "已发布", "tags": ["角色设定", "编剧"], "owner": "唐可", "initial": "唐", "updated": "今天 11:08", "favorite": false },
{ "id": "DOC-2045", "title": "观测站场景资产清单", "description": "旧港观测站内外景模型、道具及材质完成度", "category": "制作资料", "status": "草稿", "tags": ["场景", "资产"], "owner": "许原", "initial": "许", "updated": "昨天 18:20", "favorite": false },
{ "id": "DOC-2044", "title": "澪 · 角色完整档案", "description": "角色经历、人物关系、服装变化与关键转折", "category": "角色", "status": "已发布", "tags": ["主角", "重要"], "owner": "林知夏", "initial": "林", "updated": "昨天 16:45", "favorite": true },
{ "id": "DOC-2043", "title": "穹顶维护局组织架构", "description": "维护局各部门职责、权限层级及主要人物", "category": "世界观", "status": "已发布", "tags": ["组织", "关系图"], "owner": "陈默", "initial": "陈", "updated": "08-20", "favorite": false },
{ "id": "DOC-2042", "title": "第一季音乐主题说明", "description": "角色主题、环境动机与配器方向备忘", "category": "音乐", "status": "评审中", "tags": ["原声", "主题动机"], "owner": "白川", "initial": "白", "updated": "08-20", "favorite": false },
{ "id": "DOC-2041", "title": "官方周边视觉规范", "description": "商品标识、色彩、图案及包装应用规则", "category": "品牌", "status": "已发布", "tags": ["周边", "VI"], "owner": "顾言", "initial": "顾", "updated": "08-19", "favorite": false },
{ "id": "DOC-2040", "title": "第 08 话配音修改单", "description": "最终混音前的台词重录与气口调整说明", "category": "制作资料", "status": "已归档", "tags": ["配音", "S1E08"], "owner": "周砚", "initial": "周", "updated": "08-18", "favorite": false },
{ "id": "DOC-2039", "title": "社区剧透管理规则", "description": "评论区剧透标记、折叠与举报处理规范", "category": "运营", "status": "已发布", "tags": ["社区", "规则"], "owner": "叶青", "initial": "叶", "updated": "08-17", "favorite": false }
],
"character": {
"name": "天野澪",
"nameEn": "MIO AMANO",
"code": "CHARACTER / SE-001",
"role": "天文部部长 · 第一主角",
"age": 17,
"birthday": "9 月 17 日",
"height": "161 cm",
"voice": "水濑遥",
"affiliation": "新港第一高校 · 天文观测部",
"quote": "就算看不见,星星也没有消失。",
"bio": "生活在被人造穹顶遮蔽的新港市。外表安静克制,对未知事物却有近乎固执的好奇心。十二年前的一场停电让她第一次看见真正的银河,也促使她加入濒临废部的天文观测部。故事开始时,她在旧观测站接收到一段来源不明的星际讯号。",
"tags": ["第一主角", "天文部", "观测者", "理性型", "隐藏往事", "星之继承者"],
"traits": [
{ "label": "观察力", "value": 92 },
{ "label": "行动力", "value": 68 },
{ "label": "共情力", "value": 81 },
{ "label": "表达力", "value": 55 }
],
"skills": [
{ "name": "星图记忆", "description": "能够快速辨认星图与观测坐标", "level": "S" },
{ "name": "信号解码", "description": "熟悉旧式短波设备与基础编码", "level": "A" },
{ "name": "夜间摄影", "description": "擅长长曝光与天体影像处理", "level": "A" }
],
"relations": [
{ "name": "朝仓遥", "initial": "遥", "relation": "搭档 / 转学生", "tone": "blue" },
{ "name": "佐仓奈奈", "initial": "奈", "relation": "好友 / 副部长", "tone": "coral" },
{ "name": "天野诚一", "initial": "诚", "relation": "父亲 / 失踪", "tone": "gray" }
],
"timeline": [
{ "episode": "EP.01", "title": "接收到十二年前的讯号", "type": "初登场" },
{ "episode": "EP.03", "title": "在暴雨中启动地面信标", "type": "关键行动" },
{ "episode": "EP.07", "title": "第一次向遥说起父亲", "type": "关系转折" },
{ "episode": "EP.08", "title": "决定公开穹顶观测数据", "type": "人物成长" }
]
},
"documents": [
{
"id": "md-001",
"title": "第 09 话创作说明",
"category": "制作笔记",
"updated": "刚刚",
"content": "# 第 09 话:彗星抵达之夜\n\n> 本集的核心不是彗星,而是角色终于决定一起面对真相。\n\n## 本集目标\n\n- 完成澪与遥的关系转折\n- 揭示穹顶开放窗口的真实用途\n- 回收第 01 话的短波讯号伏笔\n\n## 情绪曲线\n\n从**平静等待**逐步走向*不可逆的选择*。前半段保持低饱和与长镜头,彗星出现后切换为高对比画面。\n\n### 关键场景\n\n1. 天台上的最后一次设备校准\n2. 维护局封锁旧港观测站\n3. 全城第一次主动关闭穹顶照明\n\n---\n\n## 制作提醒\n\n请在最终混音中保留 11 秒完全无配乐的城市环境音。\n\n`signal.open(20:00)` 是本集反复出现的视觉符号。"
},
{
"id": "md-002",
"title": "角色台词风格指南",
"category": "角色设定",
"updated": "昨天 16:45",
"content": "# 角色台词风格指南\n\n## 天野澪\n\n语言简洁优先陈述观察结果很少直接表达情绪。\n\n- 避免连续使用感叹句\n- 紧张时会重复确认时间\n- 用「也许」代替没有依据的判断\n\n> 角色不是冷漠,只是不擅长把感受翻译成语言。"
},
{
"id": "md-003",
"title": "世界观名词表",
"category": "世界观",
"updated": "08-20",
"content": "# 世界观名词表\n\n## 人造穹顶\n\n覆盖新港市上空的气候调节设施正式编号为 `NC-DOME-03`。\n\n## 地面信标\n\n旧时代天文观测网络的定位装置目前仅发现三座。\n\n## 潮汐电台\n\n每晚零点在短波频段出现的无人广播。"
}
]
}

39
app/data/image-host.json Normal file
View File

@@ -0,0 +1,39 @@
{
"categories": ["全部", "动漫", "星空", "角色", "周边", "壁纸"],
"images": [
{ "id": "img-01", "title": "星海屋顶的约定", "src": "/anime/star-echoes-hero.png", "category": "壁纸", "ratio": "16 / 10", "position": "center", "width": 2048, "height": 1152, "size": "2.08 MB", "format": "PNG", "uploadedAt": "2026-08-10", "views": 1284, "tags": ["星空", "双人", "城市"] },
{ "id": "img-02", "title": "彗星划过观测台", "src": "/anime/star-echoes-hero.png", "category": "星空", "ratio": "4 / 5", "position": "24% center", "width": 2048, "height": 1152, "size": "2.08 MB", "format": "PNG", "uploadedAt": "2026-08-09", "views": 986, "tags": ["彗星", "银河", "观测台"] },
{ "id": "img-03", "title": "天野澪角色立绘", "src": "/anime/star-echoes-merch.png", "category": "角色", "ratio": "3 / 4", "position": "12% center", "width": 2048, "height": 1024, "size": "2.07 MB", "format": "PNG", "uploadedAt": "2026-08-08", "views": 2150, "tags": ["角色", "蓝发", "立绘"] },
{ "id": "img-04", "title": "星轨设定集封面", "src": "/anime/star-echoes-merch.png", "category": "周边", "ratio": "1 / 1", "position": "50% center", "width": 2048, "height": 1024, "size": "2.07 MB", "format": "PNG", "uploadedAt": "2026-08-08", "views": 733, "tags": ["设定集", "封面", "周边"] },
{ "id": "img-05", "title": "深蓝飞行夹克", "src": "/anime/star-echoes-merch.png", "category": "周边", "ratio": "4 / 5", "position": "88% center", "width": 2048, "height": 1024, "size": "2.07 MB", "format": "PNG", "uploadedAt": "2026-08-07", "views": 621, "tags": ["服饰", "夹克", "星轨"] },
{ "id": "img-06", "title": "城市日落与星河", "src": "/anime/star-echoes-hero.png", "category": "壁纸", "ratio": "3 / 2", "position": "center 76%", "width": 2048, "height": 1152, "size": "2.08 MB", "format": "PNG", "uploadedAt": "2026-08-06", "views": 1672, "tags": ["日落", "城市", "宽屏"] },
{ "id": "img-07", "title": "观测台机器人", "src": "/anime/star-echoes-hero.png", "category": "动漫", "ratio": "3 / 4", "position": "94% center", "width": 2048, "height": 1152, "size": "2.08 MB", "format": "PNG", "uploadedAt": "2026-08-05", "views": 804, "tags": ["机器人", "观测台", "夜景"] },
{ "id": "img-08", "title": "月光下的两人", "src": "/anime/star-echoes-hero.png", "category": "动漫", "ratio": "4 / 5", "position": "68% center", "width": 2048, "height": 1152, "size": "2.08 MB", "format": "PNG", "uploadedAt": "2026-08-04", "views": 1493, "tags": ["双人", "月光", "剧情"] },
{ "id": "img-09", "title": "星海亚克力立牌", "src": "/anime/star-echoes-merch.png", "category": "周边", "ratio": "2 / 3", "position": "62% center", "width": 2048, "height": 1024, "size": "2.07 MB", "format": "PNG", "uploadedAt": "2026-08-03", "views": 445, "tags": ["立牌", "角色", "收藏"] },
{ "id": "img-10", "title": "银河与星座连线", "src": "/anime/star-echoes-hero.png", "category": "星空", "ratio": "5 / 4", "position": "40% 18%", "width": 2048, "height": 1152, "size": "2.08 MB", "format": "PNG", "uploadedAt": "2026-08-02", "views": 1118, "tags": ["银河", "星座", "蓝色"] },
{ "id": "img-11", "title": "观测站远景", "src": "/anime/star-echoes-hero.png", "category": "壁纸", "ratio": "1 / 1", "position": "90% center", "width": 2048, "height": 1152, "size": "2.08 MB", "format": "PNG", "uploadedAt": "2026-08-01", "views": 758, "tags": ["建筑", "远景", "星空"] },
{ "id": "img-12", "title": "星轨纪念明信片", "src": "/anime/star-echoes-merch.png", "category": "周边", "ratio": "16 / 11", "position": "54% 82%", "width": 2048, "height": 1024, "size": "2.07 MB", "format": "PNG", "uploadedAt": "2026-07-30", "views": 390, "tags": ["明信片", "纪念品", "插画"] }
],
"albums": [
{ "id": "album-01", "title": "《星海回响》官方壁纸", "description": "动画第一季公开的横屏、竖屏与角色壁纸合集。", "category": "壁纸", "coverId": "img-01", "imageIds": ["img-01", "img-02", "img-06", "img-08", "img-10", "img-11"], "updatedAt": "2026-08-10", "tags": ["官方", "壁纸", "第一季"] },
{ "id": "album-02", "title": "角色与场景设定", "description": "主要角色、天文台和城市概念设计整理。", "category": "动漫", "coverId": "img-03", "imageIds": ["img-03", "img-07", "img-08", "img-10", "img-11"], "updatedAt": "2026-08-08", "tags": ["设定", "角色", "场景"] },
{ "id": "album-03", "title": "星轨周边产品图", "description": "设定集、服饰、立牌与纪念明信片展示图。", "category": "周边", "coverId": "img-05", "imageIds": ["img-04", "img-05", "img-09", "img-12"], "updatedAt": "2026-08-07", "tags": ["周边", "产品", "收藏"] }
],
"feed": [
{ "kind": "album", "id": "album-01" },
{ "kind": "image", "id": "img-03" },
{ "kind": "image", "id": "img-10" },
{ "kind": "image", "id": "img-02" },
{ "kind": "album", "id": "album-02" },
{ "kind": "image", "id": "img-05" },
{ "kind": "image", "id": "img-06" },
{ "kind": "image", "id": "img-07" },
{ "kind": "album", "id": "album-03" },
{ "kind": "image", "id": "img-08" },
{ "kind": "image", "id": "img-04" },
{ "kind": "image", "id": "img-11" },
{ "kind": "image", "id": "img-09" },
{ "kind": "image", "id": "img-01" },
{ "kind": "image", "id": "img-12" }
]
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

112
app/data/media-player.json Normal file
View File

@@ -0,0 +1,112 @@
{
"videos": [
{
"id": "video-flower",
"title": "晨光中的花",
"subtitle": "HTML5 视频播放器演示片段",
"src": "https://developer.mozilla.org/shared-assets/videos/flower.mp4",
"poster": "/anime/star-echoes-hero.png",
"durationLabel": "00:30",
"quality": "1080P",
"views": "1.2 万次播放"
},
{
"id": "video-morning",
"title": "清晨微距练习",
"subtitle": "自然光与微距镜头示例",
"src": "https://developer.mozilla.org/shared-assets/videos/flower.mp4#t=2",
"poster": "/anime/star-echoes-merch.png",
"durationLabel": "00:28",
"quality": "720P",
"views": "8,620 次播放"
},
{
"id": "video-color",
"title": "夏日色彩片段",
"subtitle": "短视频色彩与节奏演示",
"src": "https://developer.mozilla.org/shared-assets/videos/flower.mp4#t=5",
"poster": "/anime/star-echoes-hero.png",
"durationLabel": "00:25",
"quality": "1080P",
"views": "6,438 次播放"
}
],
"tracks": [
{
"id": "track-01",
"title": "Starlight Drift",
"artist": "SoundHelix · Ambient Session",
"album": "Orbit Night Radio",
"src": "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3",
"cover": "/anime/star-echoes-merch.png",
"position": "12% center",
"durationLabel": "06:13",
"lyrics": [
{ "time": 0, "text": "星光落在安静的窗边", "translation": "Starlight rests beside the quiet window" },
{ "time": 14, "text": "城市还没有醒来", "translation": "The city has not awakened yet" },
{ "time": 30, "text": "我沿着昨夜留下的轨迹", "translation": "I follow the trail left by last night" },
{ "time": 47, "text": "寻找你说过的那片海", "translation": "Searching for the sea you once described" },
{ "time": 65, "text": "风把遥远的回声带来", "translation": "The wind carries a distant echo" },
{ "time": 84, "text": "像一颗缓慢靠近的星", "translation": "Like a star slowly drawing near" },
{ "time": 104, "text": "如果时间此刻停下来", "translation": "If time could stop right here" },
{ "time": 126, "text": "就让我们漂流在光里", "translation": "Let us drift inside the light" },
{ "time": 149, "text": "越过沉睡的天文台", "translation": "Beyond the sleeping observatory" },
{ "time": 173, "text": "穿过没有名字的云海", "translation": "Through the nameless sea of clouds" },
{ "time": 198, "text": "你在银河尽头等待", "translation": "You wait at the end of the galaxy" },
{ "time": 224, "text": "而我循着微光回来", "translation": "And I return following the faint glow" },
{ "time": 252, "text": "星光落在安静的窗边", "translation": "Starlight rests beside the quiet window" },
{ "time": 282, "text": "我们的故事仍在盛开", "translation": "Our story is still in bloom" }
]
},
{
"id": "track-02",
"title": "Moon Observatory",
"artist": "SoundHelix · Electronic Session",
"album": "Orbit Night Radio",
"src": "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-2.mp3",
"cover": "/anime/star-echoes-merch.png",
"position": "50% center",
"durationLabel": "07:05",
"lyrics": [
{ "time": 0, "text": "月光绕过旧观测站", "translation": "Moonlight circles the old observatory" },
{ "time": 16, "text": "银色屋顶写满答案", "translation": "Silver rooftops are filled with answers" },
{ "time": 34, "text": "有人把愿望藏进星盘", "translation": "Someone hid a wish inside the star chart" },
{ "time": 53, "text": "等待下一次夜晚", "translation": "Waiting for the next night" },
{ "time": 73, "text": "让所有钟声变得缓慢", "translation": "Let every bell begin to slow" },
{ "time": 94, "text": "让云层停在山峦", "translation": "Let the clouds rest over the mountains" },
{ "time": 116, "text": "你说宇宙并不孤单", "translation": "You said the universe is not alone" },
{ "time": 139, "text": "每颗星都有同伴", "translation": "Every star has a companion" },
{ "time": 164, "text": "我们在月光里交换晚安", "translation": "We exchange goodnight in the moonlight" },
{ "time": 190, "text": "把明天交给夜航的帆", "translation": "Leave tomorrow to the sails of night" },
{ "time": 218, "text": "当天空再次变蓝", "translation": "When the sky turns blue again" },
{ "time": 248, "text": "我会记得这一晚", "translation": "I will remember this night" },
{ "time": 280, "text": "月光绕过旧观测站", "translation": "Moonlight circles the old observatory" }
]
},
{
"id": "track-03",
"title": "Afterglow City",
"artist": "SoundHelix · Dream Session",
"album": "Orbit Night Radio",
"src": "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-3.mp3",
"cover": "/anime/star-echoes-hero.png",
"position": "center",
"durationLabel": "05:48",
"lyrics": [
{ "time": 0, "text": "日落把街道染成金色", "translation": "Sunset paints the streets in gold" },
{ "time": 15, "text": "晚风翻过城市的歌", "translation": "The evening wind turns the city's song" },
{ "time": 32, "text": "我们站在高楼的边缘", "translation": "We stand at the edge of the rooftop" },
{ "time": 50, "text": "看最后一束光经过", "translation": "Watching the final ray pass by" },
{ "time": 69, "text": "别急着说再见", "translation": "Do not hurry to say goodbye" },
{ "time": 89, "text": "夜色才刚刚出现", "translation": "The night has only just appeared" },
{ "time": 110, "text": "霓虹会替我们点亮", "translation": "Neon lights will shine for us" },
{ "time": 132, "text": "回家的那条地平线", "translation": "The horizon that leads us home" },
{ "time": 156, "text": "当余晖留在你的侧脸", "translation": "When afterglow rests upon your face" },
{ "time": 181, "text": "所有喧闹都听不见", "translation": "All the noise begins to disappear" },
{ "time": 208, "text": "只剩心跳一遍一遍", "translation": "Only heartbeats remain, again and again" },
{ "time": 238, "text": "陪我们走向明天", "translation": "Walking with us into tomorrow" },
{ "time": 270, "text": "日落之后星光重现", "translation": "After sunset, starlight returns" }
]
}
]
}

147
app/data/produce-map.json Normal file
View File

@@ -0,0 +1,147 @@
{
"tabs": [
{
"id": "china", "label": "中国", "country": "中国", "iso": "CHN", "map": "/maps/chn-adm1.geojson", "accent": "#d66b45",
"description": "从东北粮仓到西南高原,展示中国主要特色农产区。",
"regions": [
{ "name": "Shandong Province", "localName": "山东省", "crops": ["苹果", "花生", "大蒜", "冬小麦"], "season": "5月—10月", "summary": "温带季风气候与广阔平原形成果品、油料和粮食复合产区。" },
{ "name": "Hebei Province", "localName": "河北省", "crops": ["小麦", "玉米", "梨", "板栗"], "season": "6月—10月", "summary": "点击可继续下钻到河北省 11 个地级市,查看市级行政区及代表产物。" },
{ "name": "Shanghai Municipality", "localName": "上海市", "crops": ["崇明大米", "水蜜桃", "翠冠梨", "青浦茭白"], "season": "5月—10月", "summary": "长江入海口的冲积平原和都市近郊农业,形成稻米、水果及特色水生蔬菜产区。" },
{ "name": "Chongqing Municipality", "localName": "重庆市", "crops": ["柑橘", "榨菜", "花椒", "茶叶"], "season": "7月—次年3月", "summary": "山地立体气候与长江河谷共同形成柑橘、花椒、榨菜和茶叶特色产区。" },
{ "name": "Yunnan Province", "localName": "云南省", "crops": ["咖啡", "鲜花", "普洱茶", "蓝莓"], "season": "全年分批", "summary": "立体气候明显,不同海拔形成多样化热带与高原特色作物。" },
{ "name": "Heilongjiang Province", "localName": "黑龙江省", "crops": ["大豆", "玉米", "水稻", "马铃薯"], "season": "9月—10月", "summary": "黑土地集中连片,是重要的大豆、玉米与优质粳稻产地。" },
{ "name": "Xinjiang Uyghur Autonomous Region", "localName": "新疆维吾尔自治区", "crops": ["棉花", "葡萄", "哈密瓜", "番茄"], "season": "7月—10月", "summary": "日照时间长、昼夜温差大,适合棉花和高糖度瓜果生长。" }
]
},
{
"id": "japan", "label": "日本", "country": "日本", "iso": "JPN", "map": "/maps/jpn-adm1.geojson", "accent": "#cf5f72",
"description": "按都道府县查看日本稻米、茶叶、果品与南方作物。",
"regions": [
{ "name": "Hokkaido", "localName": "北海道", "crops": ["马铃薯", "甜玉米", "甜菜", "乳制品"], "season": "7月—10月", "summary": "冷凉气候与大规模农场形成薯类、旱作和乳畜产品优势。" },
{ "name": "Aomori", "localName": "青森县", "crops": ["苹果", "大蒜", "牛蒡", "樱桃"], "season": "8月—11月", "summary": "日本代表性苹果产区,凉爽气候有利于果实着色和糖分积累。" },
{ "name": "Shizuoka", "localName": "静冈县", "crops": ["绿茶", "柑橘", "山葵", "草莓"], "season": "4月—12月", "summary": "丘陵茶园与温暖沿海共同塑造茶叶和园艺作物产区。" },
{ "name": "Kagoshima Prefecture", "localName": "鹿儿岛县", "crops": ["甘薯", "黑猪", "茶叶", "甘蔗"], "season": "全年分批", "summary": "温暖湿润,火山土壤适合甘薯、茶叶和亚热带作物。" }
]
},
{
"id": "southeast-asia", "label": "东南亚", "country": "泰国", "iso": "THA", "map": "/maps/tha-adm1.geojson", "accent": "#3c9788",
"description": "以泰国为代表地图,展示东南亚稻米、热带水果与高地作物产区。",
"regions": [
{ "name": "Chiang Mai Province", "localName": "清迈府", "crops": ["龙眼", "咖啡", "草莓", "高山蔬菜"], "season": "11月—3月", "summary": "北部高地昼夜温差明显,形成咖啡、龙眼和冷凉蔬菜产区。" },
{ "name": "Chanthaburi Province", "localName": "尖竹汶府", "crops": ["榴莲", "山竹", "红毛丹", "胡椒"], "season": "4月—7月", "summary": "泰国东部热带水果核心产区,以榴莲和山竹集中上市著名。" },
{ "name": "Nakhon Ratchasima Province", "localName": "呵叻府", "crops": ["木薯", "甘蔗", "水稻", "玉米"], "season": "11月—4月", "summary": "东北部高原农业区,大田经济作物和香米生产规模较大。" },
{ "name": "Surat Thani Province", "localName": "素叻他尼府", "crops": ["椰子", "橡胶", "油棕", "红毛丹"], "season": "全年分批", "summary": "南部湿热气候适合椰子、橡胶、油棕和热带水果。" }
]
},
{
"id": "india", "label": "印度地区", "country": "印度", "iso": "IND", "map": "/maps/ind-adm1.geojson", "accent": "#d2863c",
"description": "按邦和中央直辖区查看印度香料、茶叶、棉花与稻米产区。",
"regions": [
{ "name": "Punjab", "localName": "旁遮普邦", "crops": ["小麦", "水稻", "棉花", "甘蔗"], "season": "4月及10月—11月", "summary": "灌溉体系完善,是印度重要的粮食和棉花生产区。" },
{ "name": "Mahārāshtra", "localName": "马哈拉施特拉邦", "crops": ["棉花", "甘蔗", "葡萄", "芒果"], "season": "1月—5月", "summary": "黑棉土和灌溉区共同支持棉花、甘蔗与园艺作物。" },
{ "name": "Kerala", "localName": "喀拉拉邦", "crops": ["椰子", "黑胡椒", "橡胶", "豆蔻"], "season": "全年分批", "summary": "西高止山和热带海岸形成印度代表性香料与种植园农业区。" },
{ "name": "Assam", "localName": "阿萨姆邦", "crops": ["红茶", "水稻", "黄麻", "柑橘"], "season": "3月—11月", "summary": "布拉马普特拉河谷湿润温暖,是世界重要红茶产区之一。" }
]
},
{
"id": "south-korea", "label": "韩国", "country": "韩国", "iso": "KOR", "map": "/maps/kor-adm1.geojson", "accent": "#5278ba",
"description": "按特别市、广域市和道查看韩国稻米、果品与岛屿特色作物。",
"regions": [
{ "name": "Jeju", "localName": "济州特别自治道", "crops": ["柑橘", "绿茶", "萝卜", "荞麦"], "season": "10月—3月", "summary": "火山土壤和海洋性气候形成韩国代表性柑橘与茶叶产区。" },
{ "name": "Gyeonggi", "localName": "京畿道", "crops": ["大米", "葡萄", "梨", "设施蔬菜"], "season": "8月—11月", "summary": "首都圈近郊农业发达,优质稻米、果园和设施园艺集中。" },
{ "name": "North Gyeongsang", "localName": "庆尚北道", "crops": ["苹果", "葡萄", "桃", "辣椒"], "season": "7月—11月", "summary": "内陆盆地日照充足,是韩国苹果和葡萄的重要产区。" },
{ "name": "South Jeolla", "localName": "全罗南道", "crops": ["水稻", "洋葱", "大蒜", "海藻"], "season": "5月—10月", "summary": "温暖西南沿海兼具粮食、蔬菜与海洋养殖产品。" }
]
},
{
"id": "north-korea", "label": "朝鲜地区", "country": "朝鲜", "iso": "PRK", "map": "/maps/prk-adm1.geojson", "accent": "#a65757",
"description": "按直辖市和道查看朝鲜西部平原、山区与北部高原作物。",
"regions": [
{ "name": "South Hwanghae", "localName": "黄海南道", "crops": ["水稻", "玉米", "大豆", "小麦"], "season": "8月—10月", "summary": "西部平原较为开阔,是重要的粮食生产区域。" },
{ "name": "South Pyongan", "localName": "平安南道", "crops": ["水稻", "玉米", "苹果", "蔬菜"], "season": "8月—10月", "summary": "河谷和平原农业并存,粮食与城市周边蔬菜生产突出。" },
{ "name": "Ryanggang", "localName": "两江道", "crops": ["马铃薯", "大麦", "豆类", "蓝莓"], "season": "7月—9月", "summary": "北部高原气候冷凉,适合薯类、杂粮和耐寒浆果。" },
{ "name": "Kangwon", "localName": "江原道", "crops": ["玉米", "马铃薯", "大豆", "苹果"], "season": "8月—10月", "summary": "山地较多,以旱作粮食、薯类和耐寒果树为主。" }
]
},
{
"id": "middle-east", "label": "中东地区", "country": "沙特阿拉伯", "iso": "SAU", "map": "/maps/sau-adm1.geojson", "accent": "#b58a3f",
"description": "以沙特阿拉伯为示例,展示绿洲农业与沿海渔农产品。",
"regions": [
{ "name": "Eastern Region", "localName": "东部省", "crops": ["椰枣", "番茄", "黄瓜", "水产"], "season": "10月—5月", "summary": "绿洲与海湾沿岸农业并存,椰枣、设施蔬菜和水产突出。" },
{ "name": "Riyadh Region", "localName": "利雅得省", "crops": ["小麦", "椰枣", "苜蓿", "甜瓜"], "season": "冬春季", "summary": "以灌溉农业为主,粮食、饲草和果园集中在可利用水源周边。" },
{ "name": "Al Madinah Region", "localName": "麦地那省", "crops": ["阿吉瓦椰枣", "柑橘", "葡萄", "香草"], "season": "7月—10月", "summary": "历史悠久的绿洲果园,以特色椰枣和耐旱果树闻名。" },
{ "name": "Al-Qassim Region", "localName": "卡西姆省", "crops": ["椰枣", "小麦", "葡萄", "蔬菜"], "season": "8月—10月", "summary": "大型椰枣市场和灌溉农场集中,是中部重要农业区。" }
]
},
{
"id": "africa", "label": "非洲地区", "country": "南非", "iso": "ZAF", "map": "/maps/zaf-adm1.geojson", "accent": "#c47d35",
"description": "以南非为示例,展示葡萄酒、柑橘和热带水果产区。",
"regions": [
{ "name": "Western Cape", "localName": "西开普省", "crops": ["酿酒葡萄", "苹果", "梨", "橄榄"], "season": "12月—4月", "summary": "地中海气候显著,是南非葡萄酒和温带水果核心产区。" },
{ "name": "Limpopo", "localName": "林波波省", "crops": ["芒果", "牛油果", "柑橘", "坚果"], "season": "10月—3月", "summary": "温暖亚热带气候形成芒果、牛油果和柑橘优势带。" },
{ "name": "KwaZulu-Natal", "localName": "夸祖鲁-纳塔尔省", "crops": ["甘蔗", "香蕉", "菠萝", "夏威夷果"], "season": "全年分批", "summary": "湿润沿海地带适合甘蔗与热带、亚热带经济作物。" },
{ "name": "Mpumalanga", "localName": "普马兰加省", "crops": ["柑橘", "香蕉", "荔枝", "甘蔗"], "season": "3月—9月", "summary": "低地温暖、日照充足,是出口柑橘和热带水果产区。" }
]
},
{
"id": "usa", "label": "美国", "country": "美国", "iso": "USA", "map": "/maps/usa-adm1.geojson", "accent": "#4674b8",
"description": "按州查看美国果蔬、谷物和特色经济作物带。",
"regions": [
{ "name": "California", "localName": "加利福尼亚州", "crops": ["杏仁", "葡萄", "草莓", "牛油果"], "season": "全年分批", "summary": "中央谷地和沿海气候带形成高价值果蔬与坚果农业。" },
{ "name": "Iowa", "localName": "艾奥瓦州", "crops": ["玉米", "大豆", "猪肉", "燕麦"], "season": "9月—11月", "summary": "肥沃草原土壤,是美国玉米和大豆带的重要核心州。" },
{ "name": "Florida", "localName": "佛罗里达州", "crops": ["橙子", "葡萄柚", "甘蔗", "番茄"], "season": "10月—6月", "summary": "亚热带气候适合柑橘、甘蔗与冬春季蔬菜生产。" },
{ "name": "Washington", "localName": "华盛顿州", "crops": ["苹果", "樱桃", "啤酒花", "小麦"], "season": "6月—11月", "summary": "山地雨影和灌溉河谷构成世界级苹果、樱桃与啤酒花产区。" }
]
},
{
"id": "australia", "label": "澳大利亚", "country": "澳大利亚", "iso": "AUS", "map": "/maps/aus-adm1.geojson", "accent": "#3c9989",
"description": "展示澳大利亚热带园艺、谷物和葡萄酒产区。",
"regions": [
{ "name": "Queensland", "localName": "昆士兰州", "crops": ["甘蔗", "香蕉", "芒果", "菠萝"], "season": "全年分批", "summary": "热带和亚热带海岸带是甘蔗与热带水果主要产区。" },
{ "name": "Victoria", "localName": "维多利亚州", "crops": ["葡萄", "乳制品", "苹果", "小麦"], "season": "2月—5月", "summary": "温和气候兼具葡萄酒、乳业、果园和谷物生产。" },
{ "name": "Western Australia", "localName": "西澳大利亚州", "crops": ["小麦", "油菜", "葡萄", "牛油果"], "season": "10月—1月", "summary": "西南部地中海气候区集中生产谷物、油籽和葡萄酒。" },
{ "name": "Tasmania", "localName": "塔斯马尼亚州", "crops": ["樱桃", "苹果", "啤酒花", "马铃薯"], "season": "12月—4月", "summary": "冷凉海洋性气候适合高品质温带水果和种薯。" }
]
},
{
"id": "russia", "label": "俄罗斯", "country": "俄罗斯", "iso": "RUS", "map": "/maps/rus-adm1.geojson", "accent": "#667eaa",
"description": "展示俄罗斯南部粮食带与内陆特色农产区。",
"regions": [
{ "name": "Krasnodar Krai", "localName": "克拉斯诺达尔边疆区", "crops": ["小麦", "向日葵", "水稻", "葡萄"], "season": "6月—10月", "summary": "黑海沿岸和肥沃平原构成俄罗斯最重要的农业区域之一。" },
{ "name": "Stavropol Krai", "localName": "斯塔夫罗波尔边疆区", "crops": ["冬小麦", "玉米", "向日葵", "甜菜"], "season": "6月—9月", "summary": "草原地带日照充足,以冬小麦和油料作物为主。" },
{ "name": "Rostov Oblast", "localName": "罗斯托夫州", "crops": ["小麦", "大麦", "向日葵", "蔬菜"], "season": "7月—10月", "summary": "顿河流域是俄罗斯南部粮食与油料作物核心产区。" },
{ "name": "Altai Krai", "localName": "阿尔泰边疆区", "crops": ["荞麦", "小麦", "燕麦", "蜂蜜"], "season": "8月—10月", "summary": "西西伯利亚农牧交错区,以荞麦、谷物和蜂产品著名。" }
]
},
{
"id": "europe", "label": "欧洲", "country": "德国", "iso": "DEU", "map": "/maps/deu-adm1.geojson", "accent": "#6d63b5",
"description": "以德国为示例,展示欧洲谷物、啤酒花与葡萄产区。",
"regions": [
{ "name": "Bayern", "localName": "巴伐利亚州", "crops": ["啤酒花", "大麦", "甜菜", "乳制品"], "season": "7月—10月", "summary": "啤酒花、酿造大麦和乳畜业共同构成典型南德农业景观。" },
{ "name": "Niedersachsen", "localName": "下萨克森州", "crops": ["马铃薯", "甜菜", "芦笋", "苹果"], "season": "4月—10月", "summary": "北德平原农业发达,是马铃薯、甜菜和园艺作物重要产区。" },
{ "name": "Rheinland-Pfalz", "localName": "莱茵兰-普法尔茨州", "crops": ["葡萄", "樱桃", "苹果", "芦笋"], "season": "4月—10月", "summary": "莱茵河与摩泽尔河谷以优质酿酒葡萄和果园闻名。" },
{ "name": "Baden-Württemberg", "localName": "巴登-符腾堡州", "crops": ["葡萄", "苹果", "啤酒花", "玉米"], "season": "8月—10月", "summary": "山谷和湖区形成葡萄、苹果与特色啤酒花产区。" }
]
},
{
"id": "canada", "label": "加拿大", "country": "加拿大", "iso": "CAN", "map": "/maps/can-adm1.geojson", "accent": "#c85855",
"description": "按省查看加拿大草原粮油、果园和枫糖产区。",
"regions": [
{ "name": "Saskatchewan", "localName": "萨斯喀彻温省", "crops": ["油菜籽", "小麦", "扁豆", "豌豆"], "season": "8月—10月", "summary": "加拿大草原农业核心省份,粮食、油籽和豆类规模化生产突出。" },
{ "name": "Ontario", "localName": "安大略省", "crops": ["玉米", "大豆", "苹果", "葡萄"], "season": "8月—11月", "summary": "五大湖调节气候,粮油作物与尼亚加拉果园、葡萄园并存。" },
{ "name": "British Columbia", "localName": "不列颠哥伦比亚省", "crops": ["蓝莓", "樱桃", "葡萄", "苹果"], "season": "6月—10月", "summary": "沿海低地与奥肯那根谷地形成浆果、核果和葡萄酒产区。" },
{ "name": "Quebec", "localName": "魁北克省", "crops": ["枫糖", "蓝莓", "玉米", "蔓越莓"], "season": "3月及夏秋季", "summary": "春季枫糖与夏秋浆果、谷物共同构成鲜明季节农业。" }
]
},
{
"id": "south-america", "label": "南美洲", "country": "巴西", "iso": "BRA", "map": "/maps/bra-adm1.geojson", "accent": "#3c9462",
"description": "以巴西为示例,展示咖啡、大豆、可可与南方温带作物。",
"regions": [
{ "name": "Sao Paulo", "localName": "圣保罗州", "crops": ["甘蔗", "橙子", "咖啡", "花生"], "season": "全年分批", "summary": "产业链完善,是甘蔗、橙汁与咖啡生产加工的重要中心。" },
{ "name": "Minas Gerais", "localName": "米纳斯吉拉斯州", "crops": ["咖啡", "乳制品", "大豆", "玉米"], "season": "5月—9月", "summary": "高地气候适合阿拉比卡咖啡,也是重要的乳畜与粮食产区。" },
{ "name": "Bahia", "localName": "巴伊亚州", "crops": ["可可", "芒果", "木薯", "椰子"], "season": "全年分批", "summary": "热带海岸与内陆灌溉区生产可可、热带水果和木薯。" },
{ "name": "Rio Grande do Sul", "localName": "南里奥格兰德州", "crops": ["大豆", "水稻", "葡萄", "烟草"], "season": "1月—5月", "summary": "南部温带农业区,以大豆、水稻和葡萄酒产业著名。" }
]
}
]
}

View File

@@ -0,0 +1,101 @@
{
"templates": ["项目交付清单", "门店巡检记录", "采购物料明细"],
"forms": [
{
"id": "FORM-202608-018",
"title": "官网改版交付资料",
"code": "DELIVERY-2026-08",
"status": "编辑中",
"updatedAt": "今天 16:42",
"createdBy": "林知夏",
"tags": ["官网改版", "产品中心"],
"items": [
{
"id": "ITEM-001",
"title": "首页视觉与响应式页面",
"category": "页面交付",
"owner": "林知夏",
"status": "已完成",
"quantity": 1,
"unit": "套",
"dueDate": "2026-08-12",
"description": "包含桌面端、平板端和移动端页面,已完成产品与设计验收。",
"images": [
{ "id": "IMG-001", "name": "首页视觉预览.png", "size": "638 KB", "url": "/og.png" }
],
"files": [
{ "id": "FILE-001", "name": "首页验收说明.pdf", "size": "1.2 MB", "type": "PDF", "url": "" },
{ "id": "FILE-002", "name": "切图资源清单.xlsx", "size": "286 KB", "type": "XLSX", "url": "" }
]
},
{
"id": "ITEM-002",
"title": "动漫作品详情页",
"category": "页面交付",
"owner": "周砚",
"status": "待确认",
"quantity": 1,
"unit": "页",
"dueDate": "2026-08-14",
"description": "作品资料、剧集、商品和评论区的完整交互页面。",
"images": [
{ "id": "IMG-002", "name": "星海回响主视觉.jpg", "size": "2.1 MB", "url": "/anime/star-echoes-hero.png" },
{ "id": "IMG-003", "name": "周边商品陈列.jpg", "size": "2.1 MB", "url": "/anime/star-echoes-merch.png" }
],
"files": [
{ "id": "FILE-003", "name": "页面字段说明.md", "size": "18 KB", "type": "MD", "url": "" }
]
},
{
"id": "ITEM-003",
"title": "前端部署与使用说明",
"category": "说明文档",
"owner": "陈默",
"status": "进行中",
"quantity": 2,
"unit": "份",
"dueDate": "2026-08-16",
"description": "整理本地启动、JSON 数据替换和页面配置方式。",
"images": [],
"files": [
{ "id": "FILE-004", "name": "本地运行说明.docx", "size": "94 KB", "type": "DOCX", "url": "" }
]
}
]
},
{
"id": "FORM-202608-012",
"title": "体验店每周巡检记录",
"code": "STORE-W32",
"status": "已提交",
"updatedAt": "昨天 18:20",
"createdBy": "唐可",
"tags": ["巡检", "第 32 周"],
"items": [
{
"id": "ITEM-101",
"title": "入口展示区域",
"category": "空间检查",
"owner": "唐可",
"status": "已完成",
"quantity": 1,
"unit": "处",
"dueDate": "2026-08-08",
"description": "灯箱、海报和入口动线均符合陈列标准。",
"images": [{ "id": "IMG-101", "name": "入口陈列.jpg", "size": "638 KB", "url": "/og.png" }],
"files": [{ "id": "FILE-101", "name": "巡检签字表.pdf", "size": "420 KB", "type": "PDF", "url": "" }]
}
]
},
{
"id": "FORM-202608-006",
"title": "秋季活动物料采购",
"code": "PURCHASE-AUTUMN",
"status": "草稿",
"updatedAt": "08-06 11:30",
"createdBy": "顾言",
"tags": ["采购", "秋季活动"],
"items": []
}
]
}

View File

@@ -0,0 +1,122 @@
{
"title": "时令与事件日历",
"subtitle": "用一张日历查看食材应季期、采购窗口与阶段性安排",
"defaultDate": "2026-08-12",
"categories": [
{ "id": "fruit", "name": "应季水果", "icon": "果", "color": "#e36a48", "soft": "#fff0e9" },
{ "id": "seafood", "name": "应季海鲜", "icon": "鲜", "color": "#287ca8", "soft": "#e8f5fb" },
{ "id": "activity", "name": "事项安排", "icon": "事", "color": "#6659c7", "soft": "#f0edff" }
],
"events": [
{
"id": "fruit-peach",
"title": "水蜜桃赏味期",
"category": "fruit",
"start": "2026-06-15",
"end": "2026-08-25",
"region": "江浙产区",
"bestTime": "7月中旬至8月中旬",
"summary": "果香与甜度较好的集中上市阶段,适合鲜食、甜品与礼盒采购。",
"tips": "表皮完整、香气自然且轻按微弹的成熟度更合适。"
},
{
"id": "fruit-grape",
"title": "阳光玫瑰葡萄",
"category": "fruit",
"start": "2026-08-01",
"end": "2026-09-30",
"region": "云南 / 浙江 / 山东",
"bestTime": "8月下旬至9月",
"summary": "进入集中供应期,可用于记录不同产区的到货与价格变化。",
"tips": "优先选择果粒紧实、果梗青绿、整串着色均匀的果品。"
},
{
"id": "fruit-fig",
"title": "无花果应季期",
"category": "fruit",
"start": "2026-07-10",
"end": "2026-10-10",
"region": "四川 / 山东",
"bestTime": "8月至9月",
"summary": "成熟后不耐久放,适合在日历中安排短周期采购和快速消耗。",
"tips": "果皮无破损、果颈略弯且手感柔软时适合尽快食用。"
},
{
"id": "fruit-pear",
"title": "秋月梨预售窗口",
"category": "fruit",
"start": "2026-08-20",
"end": "2026-09-18",
"region": "山东 / 河北",
"bestTime": "9月上旬",
"summary": "从产区预售到集中到货的阶段性窗口,可作为采购提醒示例。",
"tips": "查看果形、糖度和冷链发货方式后再确定采购批次。"
},
{
"id": "seafood-crab",
"title": "梭子蟹肥美期",
"category": "seafood",
"start": "2026-08-01",
"end": "2026-11-15",
"region": "东海沿岸",
"bestTime": "8月下旬至10月",
"summary": "进入集中上市季,可同步安排采购、菜单上新和库存提醒。",
"tips": "选择活力好、蟹壳坚硬、足部完整且分量压手的个体。"
},
{
"id": "seafood-urchin",
"title": "海胆品鲜季",
"category": "seafood",
"start": "2026-05-01",
"end": "2026-09-05",
"region": "大连 / 福建沿海",
"bestTime": "6月至8月",
"summary": "不同产区供应期可分别建档,本条作为跨月事件展示。",
"tips": "冷藏运输并尽快食用,来源与保存条件应优先确认。"
},
{
"id": "seafood-bass",
"title": "海鲈鱼供应旺季",
"category": "seafood",
"start": "2026-08-08",
"end": "2026-10-28",
"region": "沿海产区",
"bestTime": "8月至10月",
"summary": "适合家庭清蒸或餐饮菜单规划,可记录每周报价和规格。",
"tips": "鲜鱼以眼睛清亮、鱼鳃鲜红、鱼身有弹性为宜。"
},
{
"id": "seafood-shrimp",
"title": "第二季皮皮虾",
"category": "seafood",
"start": "2026-09-01",
"end": "2026-11-10",
"region": "渤海 / 黄海",
"bestTime": "9月至10月",
"summary": "秋季供应时段,用于演示尚未开始但即将在日历中出现的事件。",
"tips": "按活力、完整度和运输时间安排到货后的食用顺序。"
},
{
"id": "activity-buy",
"title": "周末鲜品集中采购",
"category": "activity",
"start": "2026-08-14",
"end": "2026-08-16",
"region": "线下市场",
"bestTime": "08:00—10:30",
"summary": "对比本周水果与海鲜价格,补充下周菜单所需食材。",
"tips": "提前建立采购清单,并为冷藏食材准备保温袋。"
},
{
"id": "activity-menu",
"title": "九月菜单试做",
"category": "activity",
"start": "2026-08-24",
"end": "2026-08-28",
"region": "测试厨房",
"bestTime": "每日 14:00",
"summary": "结合葡萄、梨与海鲜旺季,完成下一阶段菜单的小批量试做。",
"tips": "每次试做记录用量、成本、口感与成品图片。"
}
]
}

41
app/data/star-graph.json Normal file
View File

@@ -0,0 +1,41 @@
{
"title": "星海创作关系网络",
"subtitle": "本地 JSON 演示数据",
"nodeTypes": [
{ "id": "project", "name": "项目", "color": "#8b7cff" },
{ "id": "character", "name": "角色", "color": "#55d7ff" },
{ "id": "world", "name": "世界观", "color": "#45e6a8" },
{ "id": "organization", "name": "组织", "color": "#ffb45c" },
{ "id": "event", "name": "事件", "color": "#ff6f91" }
],
"nodes": [
{ "id": "project-starsea", "label": "星海回响", "type": "project", "x": 0, "y": 0, "color": "#8b7cff", "size": 30, "description": "围绕失落星港展开的原创动画项目。", "tags": ["核心项目", "2026"] },
{ "id": "character-mio", "label": "天野澪", "type": "character", "x": -210, "y": -115, "color": "#55d7ff", "size": 23, "description": "能够读取星尘记忆的见习导航员。", "tags": ["主角", "导航员"] },
{ "id": "character-ren", "label": "陆沉舟", "type": "character", "x": 205, "y": -120, "color": "#60c5ff", "size": 22, "description": "远航舰队的机械师,负责修复古代航道。", "tags": ["伙伴", "机械师"] },
{ "id": "character-aya", "label": "绫音", "type": "character", "x": 250, "y": 105, "color": "#7ce7ff", "size": 20, "description": "来自月背城市的情报交换员。", "tags": ["情报", "月背"] },
{ "id": "world-harbor", "label": "第七码头", "type": "world", "x": -235, "y": 120, "color": "#45e6a8", "size": 24, "description": "漂浮在星云边缘的中立贸易港。", "tags": ["地点", "星港"] },
{ "id": "world-gate", "label": "静默星门", "type": "world", "x": 30, "y": 205, "color": "#3ed8b0", "size": 22, "description": "沉睡百年的跨星系通道。", "tags": ["遗迹", "航道"] },
{ "id": "org-fleet", "label": "白帆舰队", "type": "organization", "x": 410, "y": -20, "color": "#ffb45c", "size": 23, "description": "负责维护外环航线的民间舰队。", "tags": ["组织", "舰队"] },
{ "id": "org-observer", "label": "观星议会", "type": "organization", "x": -415, "y": -15, "color": "#ffc36c", "size": 22, "description": "保存旧时代星图的研究机构。", "tags": ["组织", "研究"] },
{ "id": "event-blackout", "label": "长夜停航", "type": "event", "x": -125, "y": -285, "color": "#ff6f91", "size": 20, "description": "主航道突然熄灭引发的大规模停航事件。", "tags": ["事件", "序章"] },
{ "id": "event-signal", "label": "深空信号", "type": "event", "x": 155, "y": -275, "color": "#ff829e", "size": 20, "description": "来自静默星门另一侧的重复脉冲。", "tags": ["事件", "谜题"] },
{ "id": "world-moon", "label": "月背城", "type": "world", "x": 405, "y": 215, "color": "#66dfb5", "size": 21, "description": "建在永夜陨石坑中的地下都市。", "tags": ["地点", "城市"] },
{ "id": "event-memory", "label": "星尘记忆", "type": "event", "x": -385, "y": 250, "color": "#ff7d9d", "size": 19, "description": "散落在航道中的古代记录碎片。", "tags": ["线索", "记忆"] }
],
"edges": [
{ "id": "edge-1", "source": "project-starsea", "target": "character-mio", "label": "主角", "type": "角色关系" },
{ "id": "edge-2", "source": "project-starsea", "target": "character-ren", "label": "伙伴", "type": "角色关系" },
{ "id": "edge-3", "source": "project-starsea", "target": "world-harbor", "label": "故事起点", "type": "地点关系" },
{ "id": "edge-4", "source": "project-starsea", "target": "world-gate", "label": "核心谜题", "type": "剧情关系" },
{ "id": "edge-5", "source": "character-mio", "target": "event-memory", "label": "能够读取", "type": "能力关系" },
{ "id": "edge-6", "source": "character-ren", "target": "org-fleet", "label": "所属", "type": "组织关系" },
{ "id": "edge-7", "source": "character-aya", "target": "world-moon", "label": "来自", "type": "地点关系" },
{ "id": "edge-8", "source": "character-aya", "target": "org-fleet", "label": "提供情报", "type": "协作关系" },
{ "id": "edge-9", "source": "org-observer", "target": "event-memory", "label": "收集", "type": "研究关系" },
{ "id": "edge-10", "source": "org-observer", "target": "event-blackout", "label": "调查", "type": "事件关系" },
{ "id": "edge-11", "source": "event-blackout", "target": "event-signal", "label": "同时发生", "type": "时间关系" },
{ "id": "edge-12", "source": "event-signal", "target": "world-gate", "label": "信号来源", "type": "线索关系" },
{ "id": "edge-13", "source": "world-harbor", "target": "org-fleet", "label": "补给基地", "type": "组织关系" },
{ "id": "edge-14", "source": "world-gate", "target": "world-moon", "label": "旧航线", "type": "地点关系" }
]
}

195
app/data/web-icons.json Normal file
View File

@@ -0,0 +1,195 @@
{
"categories": [
{ "id": "all", "name": "全部图标" },
{ "id": "navigation", "name": "导航与方向" },
{ "id": "actions", "name": "常用操作" },
{ "id": "status", "name": "状态提示" },
{ "id": "media", "name": "媒体控制" },
{ "id": "files", "name": "文件内容" },
{ "id": "business", "name": "业务界面" },
{ "id": "communication", "name": "沟通联系" },
{ "id": "identity", "name": "性别与人物" },
{ "id": "biology", "name": "生物与自然" },
{ "id": "breeding", "name": "繁殖行为提示" },
{ "id": "pets", "name": "宠物标识" }
],
"icons": [
{ "id": "home", "name": "Home", "cn": "首页", "symbol": "⌂", "category": "navigation", "keywords": ["home", "首页", "主页"] },
{ "id": "menu", "name": "Menu", "cn": "菜单", "symbol": "☰", "category": "navigation", "keywords": ["menu", "菜单", "导航"] },
{ "id": "grid", "name": "Grid", "cn": "网格", "symbol": "▦", "category": "navigation", "keywords": ["grid", "网格", "应用"] },
{ "id": "list", "name": "List", "cn": "列表", "symbol": "☷", "category": "navigation", "keywords": ["list", "列表", "目录"] },
{ "id": "search", "name": "Search", "cn": "搜索", "symbol": "⌕", "category": "navigation", "keywords": ["search", "find", "搜索", "查找"] },
{ "id": "arrow-left", "name": "Arrow left", "cn": "向左", "symbol": "←", "category": "navigation", "keywords": ["left", "back", "左", "返回"] },
{ "id": "arrow-right", "name": "Arrow right", "cn": "向右", "symbol": "→", "category": "navigation", "keywords": ["right", "next", "右", "下一步"] },
{ "id": "arrow-up", "name": "Arrow up", "cn": "向上", "symbol": "↑", "category": "navigation", "keywords": ["up", "上", "顶部"] },
{ "id": "arrow-down", "name": "Arrow down", "cn": "向下", "symbol": "↓", "category": "navigation", "keywords": ["down", "下", "展开"] },
{ "id": "chevron-left", "name": "Chevron left", "cn": "左箭头", "symbol": "", "category": "navigation", "keywords": ["chevron", "previous", "上一页"] },
{ "id": "chevron-right", "name": "Chevron right", "cn": "右箭头", "symbol": "", "category": "navigation", "keywords": ["chevron", "next", "下一页"] },
{ "id": "external", "name": "External link", "cn": "外部链接", "symbol": "↗", "category": "navigation", "keywords": ["external", "open", "外链", "打开"] },
{ "id": "location", "name": "Location", "cn": "定位", "symbol": "⌖", "category": "navigation", "keywords": ["location", "position", "定位", "位置"] },
{ "id": "fullscreen", "name": "Fullscreen", "cn": "全屏", "symbol": "⛶", "category": "navigation", "keywords": ["fullscreen", "expand", "全屏", "放大"] },
{ "id": "add", "name": "Add", "cn": "添加", "symbol": "", "category": "actions", "keywords": ["add", "plus", "添加", "新增"] },
{ "id": "remove", "name": "Remove", "cn": "减少", "symbol": "", "category": "actions", "keywords": ["remove", "minus", "减少", "移除"] },
{ "id": "close", "name": "Close", "cn": "关闭", "symbol": "×", "category": "actions", "keywords": ["close", "cancel", "关闭", "取消"] },
{ "id": "check", "name": "Check", "cn": "确认", "symbol": "✓", "category": "actions", "keywords": ["check", "done", "确认", "完成"] },
{ "id": "edit", "name": "Edit", "cn": "编辑", "symbol": "✎", "category": "actions", "keywords": ["edit", "write", "编辑", "修改"] },
{ "id": "delete", "name": "Delete", "cn": "删除", "symbol": "⌫", "category": "actions", "keywords": ["delete", "trash", "删除", "清除"] },
{ "id": "copy", "name": "Copy", "cn": "复制", "symbol": "▣", "category": "actions", "keywords": ["copy", "duplicate", "复制", "副本"] },
{ "id": "download", "name": "Download", "cn": "下载", "symbol": "⇩", "category": "actions", "keywords": ["download", "save", "下载", "保存"] },
{ "id": "upload", "name": "Upload", "cn": "上传", "symbol": "⇧", "category": "actions", "keywords": ["upload", "上传", "导入"] },
{ "id": "refresh", "name": "Refresh", "cn": "刷新", "symbol": "↻", "category": "actions", "keywords": ["refresh", "reload", "刷新", "重载"] },
{ "id": "undo", "name": "Undo", "cn": "撤销", "symbol": "↶", "category": "actions", "keywords": ["undo", "撤销", "返回"] },
{ "id": "redo", "name": "Redo", "cn": "重做", "symbol": "↷", "category": "actions", "keywords": ["redo", "重做", "恢复"] },
{ "id": "filter", "name": "Filter", "cn": "筛选", "symbol": "▽", "category": "actions", "keywords": ["filter", "筛选", "过滤"] },
{ "id": "settings", "name": "Settings", "cn": "设置", "symbol": "⚙", "category": "actions", "keywords": ["settings", "config", "设置", "配置"] },
{ "id": "link", "name": "Link", "cn": "链接", "symbol": "⌁", "category": "actions", "keywords": ["link", "链接", "关联"] },
{ "id": "bookmark", "name": "Bookmark", "cn": "书签", "symbol": "⌑", "category": "actions", "keywords": ["bookmark", "save", "书签", "收藏"] },
{ "id": "heart", "name": "Heart", "cn": "喜欢", "symbol": "♡", "category": "actions", "keywords": ["heart", "like", "喜欢", "收藏"] },
{ "id": "star", "name": "Star", "cn": "星标", "symbol": "☆", "category": "actions", "keywords": ["star", "favorite", "星标", "收藏"] },
{ "id": "success", "name": "Success", "cn": "成功", "symbol": "◉", "category": "status", "keywords": ["success", "ok", "成功", "在线"] },
{ "id": "info", "name": "Information", "cn": "信息", "symbol": "ⓘ", "category": "status", "keywords": ["info", "help", "信息", "提示"] },
{ "id": "warning", "name": "Warning", "cn": "警告", "symbol": "△", "category": "status", "keywords": ["warning", "alert", "警告", "注意"] },
{ "id": "error", "name": "Error", "cn": "错误", "symbol": "⊗", "category": "status", "keywords": ["error", "failed", "错误", "失败"] },
{ "id": "pending", "name": "Pending", "cn": "等待", "symbol": "◷", "category": "status", "keywords": ["pending", "time", "等待", "处理中"] },
{ "id": "online", "name": "Online", "cn": "在线", "symbol": "●", "category": "status", "keywords": ["online", "active", "在线", "启用"] },
{ "id": "offline", "name": "Offline", "cn": "离线", "symbol": "○", "category": "status", "keywords": ["offline", "inactive", "离线", "停用"] },
{ "id": "locked", "name": "Locked", "cn": "锁定", "symbol": "⊠", "category": "status", "keywords": ["lock", "private", "锁定", "私密"] },
{ "id": "play", "name": "Play", "cn": "播放", "symbol": "▶", "category": "media", "keywords": ["play", "播放", "开始"] },
{ "id": "pause", "name": "Pause", "cn": "暂停", "symbol": "Ⅱ", "category": "media", "keywords": ["pause", "暂停"] },
{ "id": "stop", "name": "Stop", "cn": "停止", "symbol": "■", "category": "media", "keywords": ["stop", "停止", "结束"] },
{ "id": "previous", "name": "Previous", "cn": "上一个", "symbol": "◀", "category": "media", "keywords": ["previous", "back", "上一个"] },
{ "id": "next", "name": "Next", "cn": "下一个", "symbol": "▶", "category": "media", "keywords": ["next", "forward", "下一个"] },
{ "id": "record", "name": "Record", "cn": "录制", "symbol": "◎", "category": "media", "keywords": ["record", "录制", "录像"] },
{ "id": "volume", "name": "Volume", "cn": "音量", "symbol": "◖", "category": "media", "keywords": ["volume", "sound", "音量", "声音"] },
{ "id": "image", "name": "Image", "cn": "图片", "symbol": "▧", "category": "media", "keywords": ["image", "photo", "图片", "照片"] },
{ "id": "file", "name": "File", "cn": "文件", "symbol": "□", "category": "files", "keywords": ["file", "文件", "附件"] },
{ "id": "folder", "name": "Folder", "cn": "文件夹", "symbol": "▱", "category": "files", "keywords": ["folder", "目录", "文件夹"] },
{ "id": "document", "name": "Document", "cn": "文档", "symbol": "▤", "category": "files", "keywords": ["document", "文档", "文章"] },
{ "id": "table", "name": "Table", "cn": "表格", "symbol": "▦", "category": "files", "keywords": ["table", "sheet", "表格", "数据"] },
{ "id": "archive", "name": "Archive", "cn": "归档", "symbol": "▰", "category": "files", "keywords": ["archive", "box", "归档", "压缩包"] },
{ "id": "code", "name": "Code", "cn": "代码", "symbol": "/", "category": "files", "keywords": ["code", "developer", "代码", "开发"] },
{ "id": "user", "name": "User", "cn": "用户", "symbol": "♙", "category": "business", "keywords": ["user", "person", "用户", "人员"] },
{ "id": "team", "name": "Team", "cn": "团队", "symbol": "♙♙", "category": "business", "keywords": ["team", "users", "团队", "成员"] },
{ "id": "calendar", "name": "Calendar", "cn": "日历", "symbol": "▦", "category": "business", "keywords": ["calendar", "date", "日历", "日期"] },
{ "id": "clock", "name": "Clock", "cn": "时间", "symbol": "◷", "category": "business", "keywords": ["clock", "time", "时间", "定时"] },
{ "id": "tag", "name": "Tag", "cn": "标签", "symbol": "◇", "category": "business", "keywords": ["tag", "label", "标签", "分类"] },
{ "id": "cart", "name": "Cart", "cn": "购物车", "symbol": "♧", "category": "business", "keywords": ["cart", "shop", "购物车", "商品"] },
{ "id": "chart", "name": "Chart", "cn": "图表", "symbol": "▥", "category": "business", "keywords": ["chart", "analytics", "图表", "统计"] },
{ "id": "layers", "name": "Layers", "cn": "图层", "symbol": "▱", "category": "business", "keywords": ["layers", "stack", "图层", "层级"] },
{ "id": "briefcase", "name": "Briefcase", "cn": "工作", "symbol": "▣", "category": "business", "keywords": ["briefcase", "work", "工作", "项目"] },
{ "id": "mail", "name": "Mail", "cn": "邮件", "symbol": "✉", "category": "communication", "keywords": ["mail", "email", "邮件", "消息"] },
{ "id": "phone", "name": "Phone", "cn": "电话", "symbol": "☎", "category": "communication", "keywords": ["phone", "call", "电话", "联系"] },
{ "id": "comment", "name": "Comment", "cn": "评论", "symbol": "◰", "category": "communication", "keywords": ["comment", "review", "评论", "回复"] },
{ "id": "chat", "name": "Chat", "cn": "聊天", "symbol": "▱", "category": "communication", "keywords": ["chat", "message", "聊天", "会话"] },
{ "id": "send", "name": "Send", "cn": "发送", "symbol": "➤", "category": "communication", "keywords": ["send", "发送", "提交"] },
{ "id": "at", "name": "At sign", "cn": "提及", "symbol": "", "category": "communication", "keywords": ["at", "mention", "提及", "账号"] },
{ "id": "notification", "name": "Notification", "cn": "通知", "symbol": "♢", "category": "communication", "keywords": ["notification", "bell", "通知", "提醒"] },
{ "id": "male", "name": "Male", "cn": "男性", "symbol": "♂", "category": "identity", "keywords": ["male", "man", "boy", "男性", "男生", "男"] },
{ "id": "female", "name": "Female", "cn": "女性", "symbol": "♀", "category": "identity", "keywords": ["female", "woman", "girl", "女性", "女生", "女"] },
{ "id": "gender-combined", "name": "Gender combined", "cn": "男女组合", "symbol": "⚥", "category": "identity", "keywords": ["gender", "male", "female", "性别", "男女", "组合"] },
{ "id": "female-pair", "name": "Female pair", "cn": "女性组合", "symbol": "⚢", "category": "identity", "keywords": ["female", "pair", "women", "女性", "组合"] },
{ "id": "male-pair", "name": "Male pair", "cn": "男性组合", "symbol": "⚣", "category": "identity", "keywords": ["male", "pair", "men", "男性", "组合"] },
{ "id": "transgender", "name": "Transgender", "cn": "跨性别", "symbol": "⚧", "category": "identity", "keywords": ["transgender", "gender", "跨性别", "性别"] },
{ "id": "gender-neutral", "name": "Gender neutral", "cn": "中性标识", "symbol": "⚲", "category": "identity", "keywords": ["neutral", "gender", "中性", "性别"] },
{ "id": "person-outline", "name": "Person outline", "cn": "人物", "symbol": "♙", "category": "identity", "keywords": ["person", "people", "人物", "用户", "人员"] },
{ "id": "woman-profile", "name": "Woman profile", "cn": "女性人物", "symbol": "◯♀", "category": "identity", "keywords": ["woman", "profile", "女性", "人物", "头像"] },
{ "id": "man-profile", "name": "Man profile", "cn": "男性人物", "symbol": "◯♂", "category": "identity", "keywords": ["man", "profile", "男性", "人物", "头像"] },
{ "id": "couple", "name": "Couple", "cn": "男女人物", "symbol": "♀♂", "category": "identity", "keywords": ["couple", "people", "男女", "人物", "伴侣"] },
{ "id": "family", "name": "Family", "cn": "家庭成员", "symbol": "♀♂♙", "category": "identity", "keywords": ["family", "people", "家庭", "成员", "人物"] },
{ "id": "atom", "name": "Atom", "cn": "原子", "symbol": "⚛", "category": "biology", "keywords": ["atom", "science", "原子", "科学", "生物"] },
{ "id": "biohazard", "name": "Biohazard", "cn": "生物安全", "symbol": "☣", "category": "biology", "keywords": ["biohazard", "safety", "生物", "安全", "危险"] },
{ "id": "medical", "name": "Medical", "cn": "医疗", "symbol": "⚕", "category": "biology", "keywords": ["medical", "health", "医疗", "健康", "生命"] },
{ "id": "laboratory", "name": "Laboratory", "cn": "实验室", "symbol": "⚗", "category": "biology", "keywords": ["laboratory", "chemistry", "实验室", "化学", "研究"] },
{ "id": "cell", "name": "Cell", "cn": "细胞", "symbol": "◉", "category": "biology", "keywords": ["cell", "biology", "细胞", "生物", "生命"] },
{ "id": "molecule", "name": "Molecule", "cn": "分子结构", "symbol": "⬡", "category": "biology", "keywords": ["molecule", "structure", "分子", "结构", "化学"] },
{ "id": "gene", "name": "Gene", "cn": "基因链", "symbol": "⌁⌁", "category": "biology", "keywords": ["gene", "dna", "基因", "遗传", "生物"] },
{ "id": "microbe", "name": "Microbe", "cn": "微生物", "symbol": "✣", "category": "biology", "keywords": ["microbe", "bacteria", "微生物", "细菌"] },
{ "id": "heartbeat", "name": "Heartbeat", "cn": "生命波形", "symbol": "∿", "category": "biology", "keywords": ["heartbeat", "life", "心跳", "生命", "波形"] },
{ "id": "health-cross", "name": "Health cross", "cn": "健康标识", "symbol": "✚", "category": "biology", "keywords": ["health", "cross", "健康", "医疗", "急救"] },
{ "id": "flower", "name": "Flower", "cn": "花朵", "symbol": "✿", "category": "biology", "keywords": ["flower", "nature", "花朵", "植物", "自然"] },
{ "id": "blossom", "name": "Blossom", "cn": "花纹", "symbol": "❀", "category": "biology", "keywords": ["blossom", "pattern", "花纹", "花朵", "图案"] },
{ "id": "leaf", "name": "Leaf", "cn": "叶片", "symbol": "❧", "category": "biology", "keywords": ["leaf", "plant", "叶片", "植物", "绿色"] },
{ "id": "tree", "name": "Tree", "cn": "树木", "symbol": "♣", "category": "biology", "keywords": ["tree", "forest", "树木", "森林", "植物"] },
{ "id": "seed", "name": "Seed", "cn": "种子", "symbol": "◇", "category": "biology", "keywords": ["seed", "grow", "种子", "成长", "植物"] },
{ "id": "sun", "name": "Sun", "cn": "太阳", "symbol": "☼", "category": "biology", "keywords": ["sun", "light", "太阳", "阳光", "自然"] },
{ "id": "moon", "name": "Moon", "cn": "月亮", "symbol": "☾", "category": "biology", "keywords": ["moon", "night", "月亮", "夜晚", "自然"] },
{ "id": "earth", "name": "Earth", "cn": "生态地球", "symbol": "⊕", "category": "biology", "keywords": ["earth", "ecology", "地球", "生态", "环境"] },
{ "id": "water", "name": "Water", "cn": "水波", "symbol": "≋", "category": "biology", "keywords": ["water", "wave", "水", "水波", "自然"] },
{ "id": "butterfly", "name": "Butterfly", "cn": "蝴蝶图案", "symbol": "ƸӜƷ", "category": "biology", "keywords": ["butterfly", "insect", "蝴蝶", "昆虫", "图案"] },
{ "id": "fish", "name": "Fish", "cn": "鱼类图案", "symbol": "><>", "category": "biology", "keywords": ["fish", "animal", "鱼", "动物", "水生"] },
{ "id": "cat", "name": "Cat", "cn": "猫咪图案", "symbol": "=^·^=", "category": "biology", "keywords": ["cat", "animal", "猫", "宠物", "动物"] },
{ "id": "ecology", "name": "Ecology", "cn": "生态循环", "symbol": "♻", "category": "biology", "keywords": ["ecology", "recycle", "生态", "循环", "环保"] },
{ "id": "courtship", "name": "Courtship", "cn": "求偶行为", "symbol": "♂♡♀", "category": "breeding", "keywords": ["courtship", "求偶", "繁殖", "交配", "动物"] },
{ "id": "breeding-pair", "name": "Breeding pair", "cn": "配对繁殖", "symbol": "♂♀", "category": "breeding", "keywords": ["pair", "breeding", "配对", "繁殖", "交配"] },
{ "id": "reverse-pair", "name": "Reverse pair", "cn": "反向配对", "symbol": "♀♂", "category": "breeding", "keywords": ["pair", "direction", "反向", "配对", "姿势提示"] },
{ "id": "pair-bond", "name": "Pair bond", "cn": "配偶关系", "symbol": "♂⌁♀", "category": "breeding", "keywords": ["bond", "pair", "配偶", "关系", "繁殖"] },
{ "id": "mating-symbol", "name": "Mating symbol", "cn": "繁殖行为", "symbol": "⚥", "category": "breeding", "keywords": ["mating", "breeding", "繁殖", "交配", "行为"] },
{ "id": "breeding-season", "name": "Breeding season", "cn": "繁殖期", "symbol": "⚥◷", "category": "breeding", "keywords": ["season", "time", "繁殖期", "发情期", "时间"] },
{ "id": "breeding-location", "name": "Breeding location", "cn": "繁殖区域", "symbol": "⚥⌖", "category": "breeding", "keywords": ["location", "zone", "繁殖区", "配种区", "位置"] },
{ "id": "breeding-ready", "name": "Breeding ready", "cn": "可进行繁殖", "symbol": "⚥✓", "category": "breeding", "keywords": ["ready", "available", "可繁殖", "准备", "配种"] },
{ "id": "breeding-observe", "name": "Observe breeding", "cn": "繁殖观察", "symbol": "⚥◉", "category": "breeding", "keywords": ["observe", "monitor", "繁殖观察", "监测", "记录"] },
{ "id": "do-not-disturb", "name": "Do not disturb", "cn": "繁殖勿扰", "symbol": "⚥⊘", "category": "breeding", "keywords": ["do not disturb", "quiet", "勿扰", "繁殖", "警示"] },
{ "id": "separate-pair", "name": "Separate pair", "cn": "分开饲养", "symbol": "♂│♀", "category": "breeding", "keywords": ["separate", "apart", "分开", "隔离", "饲养"] },
{ "id": "safe-distance", "name": "Safe distance", "cn": "保持距离", "symbol": "♂↔♀", "category": "breeding", "keywords": ["distance", "space", "距离", "观察", "提示"] },
{ "id": "one-male-group", "name": "One male group", "cn": "一雄多雌", "symbol": "♂♀♀", "category": "breeding", "keywords": ["group", "male", "female", "一雄多雌", "配种组合"] },
{ "id": "one-female-group", "name": "One female group", "cn": "多雄一雌", "symbol": "♂♂♀", "category": "breeding", "keywords": ["group", "male", "female", "多雄一雌", "配种组合"] },
{ "id": "genetic-match", "name": "Genetic match", "cn": "遗传匹配", "symbol": "♂⌁♀", "category": "breeding", "keywords": ["genetic", "match", "遗传", "配对", "选育"] },
{ "id": "breeding-health", "name": "Breeding health", "cn": "繁殖健康检查", "symbol": "⚕⚥", "category": "breeding", "keywords": ["health", "check", "健康检查", "繁殖", "兽医"] },
{ "id": "pregnancy", "name": "Pregnancy", "cn": "妊娠期", "symbol": "♀○", "category": "breeding", "keywords": ["pregnancy", "gestation", "妊娠", "孕期", "繁殖"] },
{ "id": "nesting", "name": "Nesting", "cn": "筑巢期", "symbol": "⚥⌂", "category": "breeding", "keywords": ["nest", "nesting", "筑巢", "繁殖", "鸟类"] },
{ "id": "eggs", "name": "Eggs", "cn": "产卵记录", "symbol": "○○○", "category": "breeding", "keywords": ["eggs", "spawn", "产卵", "繁殖", "记录"] },
{ "id": "offspring", "name": "Offspring", "cn": "后代出生", "symbol": "⚥·", "category": "breeding", "keywords": ["offspring", "birth", "后代", "出生", "幼体"] },
{ "id": "breeding-complete", "name": "Breeding complete", "cn": "繁殖完成", "symbol": "⚥✓", "category": "breeding", "keywords": ["complete", "success", "繁殖完成", "成功", "记录"] },
{ "id": "breeding-failed", "name": "Breeding failed", "cn": "繁殖未成功", "symbol": "⚥×", "category": "breeding", "keywords": ["failed", "unsuccessful", "繁殖失败", "未成功", "记录"] },
{ "id": "breeding-rest", "name": "Breeding rest", "cn": "繁殖休息期", "symbol": "⚥Ⅱ", "category": "breeding", "keywords": ["rest", "pause", "休息期", "间隔", "繁殖"] },
{ "id": "breeding-record", "name": "Breeding record", "cn": "繁殖记录", "symbol": "⚥▤", "category": "breeding", "keywords": ["record", "document", "繁殖记录", "配种记录", "档案"] },
{ "id": "pet-dog-face", "name": "Dog face", "cn": "宠物狗", "symbol": "🐶︎", "category": "pets", "keywords": ["dog", "puppy", "狗", "犬", "宠物"] },
{ "id": "pet-dog", "name": "Dog", "cn": "犬类", "symbol": "🐕︎", "category": "pets", "keywords": ["dog", "canine", "狗", "犬类", "宠物"] },
{ "id": "pet-guide-dog", "name": "Guide dog", "cn": "导盲犬", "symbol": "🦮︎", "category": "pets", "keywords": ["guide dog", "service", "导盲犬", "工作犬", "犬"] },
{ "id": "pet-cat-face", "name": "Cat face", "cn": "宠物猫", "symbol": "🐱︎", "category": "pets", "keywords": ["cat", "kitten", "猫", "猫咪", "宠物"] },
{ "id": "pet-cat", "name": "Cat", "cn": "猫科宠物", "symbol": "🐈︎", "category": "pets", "keywords": ["cat", "feline", "猫", "猫科", "宠物"] },
{ "id": "pet-rabbit", "name": "Rabbit", "cn": "兔子", "symbol": "🐇︎", "category": "pets", "keywords": ["rabbit", "bunny", "兔子", "兔", "宠物"] },
{ "id": "pet-hamster", "name": "Hamster", "cn": "仓鼠", "symbol": "🐹︎", "category": "pets", "keywords": ["hamster", "rodent", "仓鼠", "小宠", "宠物"] },
{ "id": "pet-guinea-pig", "name": "Guinea pig", "cn": "豚鼠", "symbol": "(•ᴥ•)", "category": "pets", "keywords": ["guinea pig", "cavy", "豚鼠", "荷兰猪", "小宠"] },
{ "id": "pet-chinchilla", "name": "Chinchilla", "cn": "龙猫", "symbol": "(•ω•)", "category": "pets", "keywords": ["chinchilla", "龙猫", "毛丝鼠", "小宠"] },
{ "id": "pet-mouse", "name": "Mouse", "cn": "宠物鼠", "symbol": "🐁︎", "category": "pets", "keywords": ["mouse", "rodent", "鼠", "宠物鼠", "小宠"] },
{ "id": "pet-rat", "name": "Rat", "cn": "花枝鼠", "symbol": "🐀︎", "category": "pets", "keywords": ["rat", "fancy rat", "花枝鼠", "宠物鼠", "小宠"] },
{ "id": "pet-hedgehog", "name": "Hedgehog", "cn": "刺猬", "symbol": "🦔︎", "category": "pets", "keywords": ["hedgehog", "刺猬", "异宠", "小宠"] },
{ "id": "pet-ferret", "name": "Ferret", "cn": "雪貂", "symbol": "〜•", "category": "pets", "keywords": ["ferret", "weasel", "雪貂", "貂", "异宠"] },
{ "id": "pet-squirrel", "name": "Squirrel", "cn": "松鼠", "symbol": "🐿︎", "category": "pets", "keywords": ["squirrel", "松鼠", "小宠", "动物"] },
{ "id": "pet-parrot", "name": "Parrot", "cn": "鹦鹉", "symbol": "🦜︎", "category": "pets", "keywords": ["parrot", "鹦鹉", "鸟类", "宠物鸟"] },
{ "id": "pet-bird", "name": "Pet bird", "cn": "宠物鸟", "symbol": "🐦︎", "category": "pets", "keywords": ["bird", "pet bird", "鸟", "宠物鸟", "鸟类"] },
{ "id": "pet-dove", "name": "Dove", "cn": "鸽子", "symbol": "🕊︎", "category": "pets", "keywords": ["dove", "pigeon", "鸽子", "信鸽", "鸟类"] },
{ "id": "pet-owl", "name": "Owl", "cn": "猫头鹰", "symbol": "🦉︎", "category": "pets", "keywords": ["owl", "猫头鹰", "鸟类", "异宠"] },
{ "id": "pet-duck", "name": "Duck", "cn": "鸭子", "symbol": "🦆︎", "category": "pets", "keywords": ["duck", "鸭子", "家禽", "宠物"] },
{ "id": "pet-chicken", "name": "Chicken", "cn": "宠物鸡", "symbol": "🐔︎", "category": "pets", "keywords": ["chicken", "hen", "鸡", "家禽", "宠物"] },
{ "id": "pet-fish", "name": "Fish", "cn": "观赏鱼", "symbol": "🐟︎", "category": "pets", "keywords": ["fish", "aquarium", "鱼", "观赏鱼", "水族"] },
{ "id": "pet-tropical-fish", "name": "Tropical fish", "cn": "热带鱼", "symbol": "🐠︎", "category": "pets", "keywords": ["tropical fish", "aquarium", "热带鱼", "水族", "观赏鱼"] },
{ "id": "pet-goldfish", "name": "Goldfish", "cn": "金鱼", "symbol": "><°>", "category": "pets", "keywords": ["goldfish", "fish", "金鱼", "水族", "观赏鱼"] },
{ "id": "pet-turtle", "name": "Turtle", "cn": "宠物龟", "symbol": "🐢︎", "category": "pets", "keywords": ["turtle", "tortoise", "乌龟", "宠物龟", "爬宠"] },
{ "id": "pet-snake", "name": "Snake", "cn": "宠物蛇", "symbol": "🐍︎", "category": "pets", "keywords": ["snake", "reptile", "蛇", "宠物蛇", "爬宠"] },
{ "id": "pet-lizard", "name": "Lizard", "cn": "蜥蜴", "symbol": "🦎︎", "category": "pets", "keywords": ["lizard", "reptile", "蜥蜴", "守宫", "爬宠"] },
{ "id": "pet-frog", "name": "Frog", "cn": "宠物蛙", "symbol": "🐸︎", "category": "pets", "keywords": ["frog", "amphibian", "蛙", "宠物蛙", "两栖"] },
{ "id": "pet-crab", "name": "Crab", "cn": "宠物蟹", "symbol": "🦀︎", "category": "pets", "keywords": ["crab", "aquatic", "螃蟹", "宠物蟹", "水族"] },
{ "id": "pet-shrimp", "name": "Shrimp", "cn": "观赏虾", "symbol": "🦐︎", "category": "pets", "keywords": ["shrimp", "aquarium", "虾", "观赏虾", "水族"] },
{ "id": "pet-snail", "name": "Snail", "cn": "蜗牛", "symbol": "🐌︎", "category": "pets", "keywords": ["snail", "蜗牛", "异宠", "软体动物"] },
{ "id": "pet-spider", "name": "Spider", "cn": "宠物蜘蛛", "symbol": "🕷︎", "category": "pets", "keywords": ["spider", "tarantula", "蜘蛛", "捕鸟蛛", "异宠"] },
{ "id": "pet-scorpion", "name": "Scorpion", "cn": "宠物蝎", "symbol": "🦂︎", "category": "pets", "keywords": ["scorpion", "蝎子", "宠物蝎", "异宠"] },
{ "id": "pet-ant", "name": "Ant", "cn": "蚂蚁", "symbol": "🐜︎", "category": "pets", "keywords": ["ant", "蚂蚁", "蚁巢", "昆虫宠物"] },
{ "id": "pet-beetle", "name": "Beetle", "cn": "甲虫", "symbol": "🪲︎", "category": "pets", "keywords": ["beetle", "甲虫", "独角仙", "昆虫宠物"] },
{ "id": "pet-butterfly", "name": "Butterfly", "cn": "蝴蝶", "symbol": "🦋︎", "category": "pets", "keywords": ["butterfly", "蝴蝶", "昆虫", "自然观察"] },
{ "id": "pet-mini-pig", "name": "Mini pig", "cn": "迷你猪", "symbol": "🐖︎", "category": "pets", "keywords": ["pig", "mini pig", "迷你猪", "宠物猪"] },
{ "id": "pet-horse", "name": "Horse", "cn": "马匹", "symbol": "🐎︎", "category": "pets", "keywords": ["horse", "equine", "马", "马匹", "伴侣动物"] },
{ "id": "pet-goat", "name": "Goat", "cn": "宠物羊", "symbol": "🐐︎", "category": "pets", "keywords": ["goat", "羊", "山羊", "宠物羊"] }
]
}