【OpenHarmony/HarmonyOs 】数学公式速查系统:年级筛选、关键词搜索与元服务入口设计

发布时间:2026/7/6 5:16:50
【OpenHarmony/HarmonyOs 】数学公式速查系统:年级筛选、关键词搜索与元服务入口设计 【OpenHarmony/HarmonyOs 】数学公式速查系统年级筛选、关键词搜索与元服务入口设计项目类型OpenHarmony / HarmonyOS ArkTS 数学学习应用项目名称数学视界对应主题元服务能力集成、全场景智慧生活、全新视觉与交互体验关键词ArkTS、公式大全、搜索筛选、收藏、元服务、端侧知识库 一、为什么公式库值得单独写一篇数学学习 App 里公式库不是简单的“文本列表”。如果只把公式一条条堆在页面上用户查找时会很痛苦如果把公式按年级、知识类别、关键词、标签组织起来它就会变成一个可复用的本地知识库。数学视界项目里的FormulaPage.ets已经具备这些特征按年级筛选小学、初中、高中、大学按知识分类数与运算、图形与几何、单位换算等关键词搜索支持公式名、公式内容、说明、示例、标签公式展开展示公式、解释、例题、标签一键收藏把常用公式加入个人知识库深色模式公式卡片和标签颜色适配。所以这篇文章可以贴合“元服务能力集成”主题未来可以把“公式速查”拆成轻量入口让用户不用打开完整 App也能快速查一个公式。二、页面状态设计公式库先要能筛选公式页的状态设计如下StateselectedGrade: string 全部年级StateselectedCategory: string 全部知识Stategrades: string[] [全部年级,小学,初中,高中,大学]Statecategories: string[] []StateexpandedId: string StatesearchKeyword: string StatecurrentItems: FormulaItem[] []StatecurrentCatColor: string #5B9FFFStatecurrentCatBgColor: string #EBF5FF这些状态可以分为三类 筛选状态selectedGrade、selectedCategory、searchKeyword 内容状态currentItems 视觉状态currentCatColor、currentCatBgColor 交互状态expandedId控制当前展开的公式卡片。这比直接在页面里写死ForEach(allFormulaData)更灵活。用户每次修改年级、分类、搜索词时只需要刷新currentItems。三、公式数据结构从公式到知识卡片项目中的公式数据不是纯字符串而是结构化对象{name:正方形面积, formula:S a × a a²,desc:正方形面积等于边长乘以边长, example:边长5cm, 面积25cm², tags: [面积,正方形] }一个公式卡片包含name公式名称formula公式表达式desc公式说明example使用示例tags标签。这样的设计非常适合后续扩展搜索时可以匹配多个字段收藏时可以带上标签元服务可以只展示公式名和公式近场分享时可以把公式卡片结构化传递。四、年级与分类联动避免用户看到无关内容当用户选择不同年级时公式分类也会随之变化privategetCategoriesForGrade(grade:string):string[] {if(grade 全部年级) {constcats newSetstring()this.allFormulaData.forEach(g{ g.categories.forEach(ccats.add(c.category)) })return[全部知识, ...Array.from(cats)] }for(leti 0; i this.allFormulaData.length; i) {if(this.allFormulaData[i].grade grade) {return[全部知识, ...this.allFormulaData[i].categories.map((c: FormulaCategory) c.category) ] } }return[全部知识] }这个逻辑的意义是用户选“小学”时不应该看到“导数”“极限”这类高中或大学内容用户选“高中”时也不应该被小学基础公式干扰。学习工具的体验很大程度上来自“信息不要过载”。筛选越贴合学习阶段用户越容易找到需要的内容。五、关键词搜索不只搜标题公式页的搜索逻辑比较完整privatefilterItems(gradeData: FormulaGrade |null, cat:string, kw:string): FormulaItem[]{constresults: FormulaItem[] []constgradesToSearch: FormulaGrade[] gradeData ? [gradeData] :this.allFormulaDataconstcatsToSearch cat 全部知识?null:catfor(letg 0; g gradesToSearch.length; g){for(letc 0; c gradesToSearch[g].categories.length; c) {constcatData gradesToSearch[g].categories[c]if(catsToSearch catData.category ! catsToSearch)continuefor(leti 0; i catData.items.length; i){constitem catData.items[i]if(kw.trim() ) { results.push(item) }else{constlower kw.toLowerCase()if( item.name.toLowerCase().indexOf(lower) 0|| item.formula.toLowerCase().indexOf(lower) 0|| item.desc.toLowerCase().indexOf(lower) 0|| item.example.toLowerCase().indexOf(lower) 0|| item.tags.some((t:string) t.toLowerCase().indexOf(lower) 0) ) { results.push(item) } } } } }returnresults }这段代码让搜索更像一个“本地知识检索”搜“面积”能找到正方形、长方形、三角形面积搜“圆”能找到圆周长、圆面积搜“a²”可以从公式表达式中匹配搜标签也能返回相关公式。这就是端侧能力的一个典型场景不需要联网也能完成高频知识查询。六、刷新结果筛选状态统一收口公式页通过refreshFilteredItems()统一刷新结果privaterefreshFilteredItems(): void {constgradeData this.getGradeData(this.selectedGrade)constcats this.getCategoriesForGrade(this.selectedGrade)this.categories catsif(!cats.includes(this.selectedCategory)) {this.selectedCategory 全部知识}this.currentItems this.filterItems( gradeData,this.selectedCategory,this.searchKeyword ) }这个函数承担了三个责任根据年级更新分类修正已经失效的分类选择根据搜索词生成当前公式列表。页面交互只要调用这个函数就能保持结果一致。七、一键收藏把公式转成个人知识资产公式页可以把公式加入收藏confirmAddFavorite(): void {if(this.favoriteTitle.trim() )returnconstcat this.findCategory(this.selectedGrade,this.selectedCategory) AppState.addFavorite({ id:, type:formula, title:this.favoriteTitle.trim(), content:this.favoriteContent.trim(), category:公式, icon: cat?.icon ??, bgColor: colors[colorIdx] 20, accentColor: colors[colorIdx], note:this.favoriteNote.trim(), tags: [this.selectedGrade,this.selectedCategory], createdAt: Date.now(), updatedAt: Date.now(), }) }这里把公式从“公共知识库”转成了“个人知识库”。收藏后它就可以进入我的收藏学习复习元服务公式速查近场分享备份恢复。这也是全场景智慧学习的基础内容必须先结构化才能在不同入口之间流转。八、元服务入口怎么设计如果把公式速查做成元服务我建议拆成三个轻量入口元服务入口展示内容适合场景常用公式最近收藏/最近查看公式考前快速复习搜公式输入关键词返回公式卡片解题中临时查询今日公式每天推荐一个公式碎片化学习数据来源可以直接复用FormulaItem和FavoriteIteminterfaceFormulaQuickCard{ title:stringformula:stringdesc:stringtags:string[] }完整 App 负责维护公式库元服务负责把最常用的查询入口变短。九、和隐私主题的关系公式速查完全可以本地完成不需要相机权限相册权限AI 识图网络请求用户账号。这类能力看似朴素但非常适合教育类应用。学生查公式时不应该因为一个简单查询就上传题目截图或学习内容。十、总结数学视界的公式页可以写成一篇独立的 CSDN 文章因为它不是普通列表而是一个结构化本地知识库。核心实现包括 用allFormulaData管理完整公式库 用年级和分类进行精准筛选 用多字段搜索提升查找效率 用AppState.addFavorite()转成个人知识资产 可扩展为元服务“公式速查”入口 全程本地检索避免 AI 识图和网络上传。对于 OpenHarmony / HarmonyOS 学习类应用来说公式速查是一个很适合元服务化的能力任务明确、打开即用、数据轻量、隐私友好。✨