山海万灵 HarmonyOS 文化知识实战(04):探索证据板的页面状态组织
当图鉴从“看一张卡片”升级到“沿线索探索”时页面不能只放一段说明文字。读者需要知道内容来自哪里、哪些事实已定位、哪些属于本馆导览以及当前神兽和哪些节点相连。山海万灵把这些信息组织为证据板详情页与数字馆长都读取同一个神兽、来源与关系上下文。证据板围绕当前目标组装页面先确定selectedBeastId再解析神兽、来源、知识卡和关联关系。来源信息不是页面临时字符串而是数据模型中的SourceInfo关系也不是图片上的装饰线而是带类型、目标和说明的记录。interface EvidenceBoardState { beast: BeastItem source: SourceInfo learningCards: BeastLearningCard[] relations: CuratorRelationItem[] resultState: CuratorResultState } type CuratorResultState IDLE | LOADING | AI | FALLBACK | FAILED同一个目标在详情页里显示出处与知识卡在馆长页里显示当前讲解和下一步入口。两处都不自行拼接历史事实从而避免一页写“东海路线”、另一页把它当作原典地理。来源、核验与导览分层呈现应龙详情页把原典条目、数字文本核验、异文说明和人工校注状态放进来源面板馆长模块在此基础上生成导览文字。前者回答“内容从哪里来”后者回答“这条线索怎样继续看”。private sourceLabel(source: SourceInfo): string { return source.name · source.verificationLabel } private relationText(item: CuratorRelationItem): string { return item.label item.detail } private canRenderGuide(state: CuratorResultState): boolean { return state AI || state FALLBACK }面板输入输出给用户的内容出处SourceInfo条目、定位、数字核验与复核状态知识与故事学习卡集合已登记的最小事实和导览说明图谱关系关系集合与当前神兽相关的区域、展厅或叙事线索馆长结果CuratorResultState加载、讲解、降级或失败反馈选择主题后再请求结果馆长页让用户选择神兽、故事、地图或展厅主题再发出请求。请求期间按钮进入同步状态结果回到同一个状态对象失败时保留当前神兽和出处板不把已读内容清空。async function requestGuide(topic: CuratorGuideTopic): Promisevoid { this.resultState LOADING try { this.selectedGuide await this.viewModel.explainBeast(this.selectedBeastId, topic) this.resultState this.selectedGuide.fallback ? FALLBACK : AI } catch (_) { this.resultState FAILED } }用单一状态源约束卡片的更新顺序页面的关键不是把信息卡片排在同一屏而是让每次主题切换都遵循同一条状态链先锁定目标神兽再切换结果状态最后提交导览、出处与关系集合。这样卡片拿到的是同一轮请求的结果旧请求晚到时不会覆盖新目标。对于“应龙”这样的多关系对象读者也不会看到已经切到其他神兽、但关系区仍残留应龙路线的错位内容。private beginGuideRequest(beastId: string, topic: CuratorGuideTopic): number { this.curatorRequestSequence 1 this.curatorTargetBeastId beastId this.curatorResultState LOADING this.recommendations [] this.learningCards [] return this.curatorRequestSequence } private shouldApplyGuide(sequence: number, beastId: string): boolean { return sequence this.curatorRequestSequence beastId this.curatorTargetBeastId } private restoreGuideActions(): void { this.curatorResultState IDLE this.notice 可重新选择主题后继续导览。 }这组字段把“谁是当前对象”“本轮是否仍有效”“结果处于哪个阶段”拆开保存。curatorRequestSequence只负责淘汰过期请求curatorTargetBeastId决定页面展示对象curatorResultState决定结果卡的视觉分支。三者不相互代替状态切换才不会把网络时序错误伪装成内容错误。事件必须更新的状态页面可见结果不能发生的副作用选择新的神兽目标 ID、请求序号基础档案与出处先对齐新对象继续显示旧对象的关系列表提交主题结果状态为LOADING结果卡显示进行中证据板仍可阅读清空已确认的出处字段返回导览结果导览、学习卡、关系集合同一对象的讲解和关系同时更新让过期请求覆盖新选择返回降级结果结果状态为FALLBACK标明本地可用的导览内容把降级内容标为 AI 返回请求失败结果状态为FAILED给出可恢复提示与再次选择入口以空白卡片隐藏失败原因结果卡与关系区的组合边界结果卡负责说明“本轮导览给了什么”关系区负责说明“这些内容怎样连接到区域、展厅和叙事线索”。两个组件通过同一份馆长页面数据组合而不是在各自内部再次查询。这样在窄屏时可以纵向排布在宽屏时可以并列显示数据边界不会随布局变化而漂移。ShanhaiCuratorResultCard({ resultState: this.resultState, guide: this.selectedGuide, selectedBeast: this.selectedBeast, onRetry: () this.requestGuide(this.selectedTopic) }) ShanhaiCuratorSourceRelations({ source: this.selectedBeast.sourceInfo, learningCards: this.learningCards, relations: this.recommendations, onOpenRelation: (target) this.openRouteTarget(target) })组合时应保持三个边界。第一结果卡不拼接出处文本它只消费已准备好的导览结果和状态。第二关系区不决定请求成功与否它只展示当前对象可用的来源、学习卡和连接线索。第三页面容器集中处理重试、切换对象和进入下一站子组件通过回调表达用户动作。这样的拆分让状态分支集中在页面层组件可以围绕各自的阅读任务演进。从回读结果验收证据板验收不以“看见一个按钮”作为结论而是检查一次完整动作之后的内容是否互相一致。选择应龙主题并进入馆长模块后导览段落、出处条目、核验状态和“与应龙相关”的关系区应同时归属于应龙切换到另一个主题后旧关系和旧讲解不能继续停留在新对象的结果区。加载、降级和失败分支则分别保留可读的基础档案避免读者在等待或恢复时失去已确认的来源线索。function assertEvidenceBoard(result: EvidenceBoardState): boolean { const sameBeast result.beast.id result.source.beastId const hasGuide result.resultState AI || result.resultState FALLBACK || result.resultState LOADING const relationTargetsValid result.relations .every((item) item.fromBeastId result.beast.id) const fallbackReadable result.resultState ! FALLBACK || result.guide.content.length 0 return sameBeast hasGuide relationTargetsValid fallbackReadable } function canOpenNextStop(target: CuratorRouteTarget): boolean { return target.kind REGION || target.kind HALL || target.kind BEAST }运行时选择“神兽”并打开模块后界面会展示应龙的导览段落、出处条目和“与应龙相关”的关系区。该结构把选择、来源与结果放入明确状态而不是让多个卡片各自保存一份文本。更多 ArkUI 状态模型可参考 HarmonyOS 官方说明。状态切换的失败出口讲解请求进入加载状态后证据板仍保留当前神兽与出处结果可用时更新导览卡失败时显示可恢复反馈。页面不以空白替代失败也不把上一次神兽的关系结果混入新的选择。

相关新闻

收藏!小白程序员必看:FDE如何让AI从Demo落地到生产环境?

收藏!小白程序员必看:FDE如何让AI从Demo落地到生产环境?

本文对比了Prompt与FDE在AI应用中的差异:Prompt解决单次对话,而FDE负责AI落地。FDE(前沿部署工程师)作为AI企业与客户间的桥梁,需懂技术、业务及流程,将AI整合进企业真实环境。FDE不同于驻场外包或售前&…

2026/8/4 3:39:21 阅读更多 →
配电网储能协同优化模型与Matlab实现

配电网储能协同优化模型与Matlab实现

1. 项目背景与核心价值在能源结构转型的大背景下,配电网正面临两大关键挑战:如何高效整合波动性强的可再生能源,以及如何通过储能系统提升电网运行灵活性。这个研究项目直击行业痛点,通过建立联合储能与配电网的协同优化模型&…

2026/8/4 3:39:21 阅读更多 →
手机散热器横评:半导体、磁吸、液冷如何选?实测原神/星穹铁道降温效果

手机散热器横评:半导体、磁吸、液冷如何选?实测原神/星穹铁道降温效果

手机游戏重度玩家、专业主播、电竞选手,乃至日常刷视频的普通用户,都绕不开一个共同的“痛点”——手机发热。一旦温度飙升,处理器降频、游戏掉帧、屏幕变暗、充电暂停,体验直线下滑。今天我们不谈理论,直接上手&#…

2026/8/4 3:38:21 阅读更多 →

最新新闻

ACS NANO CrSBr 反铁磁自旋滤波隧道结

ACS NANO CrSBr 反铁磁自旋滤波隧道结

ACS NANO CrSBr 反铁磁自旋滤波隧道结Electrical Control and High-Bias Enhancement of Magnetoresistance in CrSBr Spin-Filter TFETs导读 导读:基于范德华反铁磁体 CrSBr 的垂直自旋滤波隧道场效应晶体管(Spin-TFET),实现了栅…

2026/8/4 4:20:43 阅读更多 →
扫地机器人自动回充技术全解析:激光雷达与视觉导航的实战对比

扫地机器人自动回充技术全解析:激光雷达与视觉导航的实战对比

1. 项目概述:扫地机“回家”背后的技术江湖扫地机器人能自己“回家”充电,这大概是它最让人省心的功能之一。从早期的“找不着北”到现在的精准回充,背后是一套复杂且不断演进的技术体系。我拆解和测试过市面上主流的几十款机型,发…

2026/8/4 4:20:43 阅读更多 →
数字信号最佳接收三步法:从原理到实践,掌握通信系统性能分析核心

数字信号最佳接收三步法:从原理到实践,掌握通信系统性能分析核心

这次我们来看一个通信原理中的核心概念:数字信号的最佳接收。对于通信、电子信息、自动化等相关专业的学生和工程师来说,理解最佳接收是掌握现代数字通信系统性能分析的关键。它直接关系到系统设计的核心指标——误码率。很多教材和课程会从复杂的数学推…

2026/8/4 4:20:43 阅读更多 →
SpringBoot+Vue校园疫情防控系统开发实战

SpringBoot+Vue校园疫情防控系统开发实战

1. 项目概述:校园疫情防控系统的技术架构与核心价值校园疫情防控系统是一套基于SpringBootVueMySQL技术栈的完整解决方案,专为教育机构常态化防疫管理设计。这个开源项目最吸引人的特点是"开箱即用"——开发者下载源码后无需复杂配置即可本地运…

2026/8/4 4:20:43 阅读更多 →
BLE Mesh技术解析:从广播信道到洪泛通信的物联网组网实践

BLE Mesh技术解析:从广播信道到洪泛通信的物联网组网实践

1. 从“点对点”到“多对多”:BLE Mesh的设计动机如果你玩过传统的蓝牙设备,比如连接一个耳机或者一个手环,你肯定熟悉那个“配对-连接-通信”的流程。这种经典蓝牙(Bluetooth Classic)或者BLE(Bluetooth L…

2026/8/4 4:20:43 阅读更多 →
直方图均衡化原理与Python实现:从基础到CLAHE实战

直方图均衡化原理与Python实现:从基础到CLAHE实战

1. 项目概述:直方图均衡化是什么,以及为什么你需要它 如果你处理过图像,尤其是那些在光线不佳条件下拍摄的照片,你肯定遇到过“对比度不足”的问题。整张照片看起来灰蒙蒙的,亮的地方不够亮,暗的地方不够暗…

2026/8/4 4:19:43 阅读更多 →

日新闻

AI Agent白手起家26: 使用标准事件驱动大模型实践

AI Agent白手起家26: 使用标准事件驱动大模型实践

纲要 练习目标:掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件 invokestreambatchastream_eventswith_structured_output 环境准备实战代码:多种事件调用对比 同步调用与流式输出批量处理异步事件流监听结构化输出 运行说明与预期结果总结与扩…

2026/8/4 0:00:40 阅读更多 →
dealsea是什么?跨境卖家必知的美国deal站入门指南

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/4 0:01:40 阅读更多 →
清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

通讯作者:邓兵、刘建国通讯单位:清华大学DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清洁能源技术与电子器件不可或缺的核心原料,然而传统提取方式依赖能耗高、排放大的采矿与强…

2026/8/4 0:01:40 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/3 4:58:13 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/3 1:53:31 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/3 4:36:35 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/3 13:07:03 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/3 5:19:38 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/3 8:27:36 阅读更多 →