HarmonyOS 应用 · 班级任务进度页深度解析:Progress 线性条与达标变色
HarmonyOS 应用 · 班级任务进度页深度解析Progress 线性条与达标变色项目编号48-class-task 技术栈HarmonyOS ArkTS · ArkUI 声明式 UI · Stage 模型 本篇页面进度页Func2Tab.ets99 行 系列导航一首页 · 二任务 ·三进度· 四我的一、MemberProgress interface 与 percent 方法interface MemberProgress { id: number; emoji: string; name: string; done: number; total: number; }五个字段id是 key 锚点emoji是头像name是姓名done是已完成数total是总任务数。与首页Task.done的布尔位不同进度页用done/total数值对——量化每个成员的完成进度。private members: MemberProgress[] [ { id: 1, emoji: , name: 李班长, done: 8, total: 8 }, { id: 2, emoji: , name: 王学委, done: 5, total: 6 }, { id: 3, emoji: ‍, name: 陈生委, done: 3, total: 5 }, { id: 4, emoji: , name: 刘宣委, done: 4, total: 4 }, { id: 5, emoji: , name: 张文委, done: 2, total: 5 } ]; private percent(m: MemberProgress): number { return Math.round(m.done * 100 / m.total); }五位成员李班长 8/8100%、王学委 5/683%、陈生委 3/560%、刘宣委 4/4100%、张文委 2/540%。percent(m)用Math.round四舍五入——5/6 83.33% → 83%。二、页面骨架OverallCard MemberListbuild() { Column() { this.Header() Scroll() { Column({ space: 14 }) { this.OverallCard() this.SectionTitle(成员完成情况) this.MemberList() } .width(100%) .padding({ left: D.pad, right: D.pad, top: 14, bottom: D.pad this.safeBottom 20 }) } .layoutWeight(1).scrollBar(BarState.Off).align(Alignment.Top) } .width(100%).height(100%).backgroundColor(C.bg) }Header 在 Scroll 外固定Scroll 内三块OverallCard三色概览 SectionTitle分区标题 MemberList成员进度列表。三、OverallCard三色统计概览Builder OverallCard() { Row() { Column({ space: 4 }) { Text(28).fontSize(22).fontWeight(FontWeight.Bold).fontColor(C.primary) Text(总任务).fontSize(11).fontColor(C.textDim) }.layoutWeight(1) Column({ space: 4 }) { Text(22).fontSize(22).fontWeight(FontWeight.Bold).fontColor(C.ok) Text(已完成).fontSize(11).fontColor(C.textDim) }.layoutWeight(1) Column({ space: 4 }) { Text(79%).fontSize(22).fontWeight(FontWeight.Bold).fontColor(C.accent) Text(完成率).fontSize(11).fontColor(C.textDim) }.layoutWeight(1) } .width(100%).padding({ top: 16, bottom: 16 }).backgroundColor(C.card).borderRadius(D.rLg).border({ width: 1, color: C.stroke }) }三色统计——总任务紫C.primary、已完成绿C.ok、完成率浅紫C.accent。28 86545各成员 total 之和22 85342各成员 done 之和79% round(22/28*100)。四、MemberListProgress 线性条 达标变色Builder MemberList() { Column({ space: 12 }) { ForEach(this.members, (m: MemberProgress) { Row({ space: 12 }) { Row() { Text(m.emoji).fontSize(22) } .width(44).height(44).backgroundColor(C.primarySoft).borderRadius(22).justifyContent(FlexAlign.Center) Column({ space: 6 }) { Row() { Text(m.name).fontSize(14).fontWeight(FontWeight.Medium).fontColor(C.text).layoutWeight(1) Text(m.done / m.total).fontSize(12).fontColor(C.textDim) }.width(100%) Progress({ value: m.done, total: m.total }).color(this.percent(m) 100 ? C.ok : C.primary).width(100%) }.alignItems(HorizontalAlign.Start).layoutWeight(1) } .width(100%).padding(14).backgroundColor(C.card).borderRadius(D.rMd).border({ width: 1, color: C.stroke }) }, (m: MemberProgress) m.id.toString()) }.width(100%) }Progress线性条——与首页的ProgressType.Ring不同进度页用默认线性条Progress({ value: m.done, total: m.total }) .color(this.percent(m) 100 ? C.ok : C.primary) .width(100%)达标变色——percent(m) 100时进度条变绿C.ok否则紫色C.primary李班长 8/8 → 100% → 绿色进度条王学委 5/6 → 83% → 紫色进度条刘宣委 4/4 → 100% → 绿色进度条100% 达标的成员进度条变绿——完成的视觉确认与首页done true的 ✅ 同语义。卡片布局44×44 浅紫圆头像 右侧双行姓名 done/total Progress 条。Progress宽度100%撑满右侧区域。五、跨页数据自洽进度页与首页的联动28 总任务↔ 首页 4 条 其他未展示任务——进度页统计全量22 已完成↔ 首页 doneCount1 条已完成 其他——进度页是全班级视角79% 完成率 round(22/28*100) ↔ 我的页83% 完成率5/683%个人视角王学委 5/6↔ 我的页完成 5 项任务——当前登录用户是王学委李班长 8/8 达标↔ 进度条变绿——100% 完成的视觉确认六、可演进方向方向现状改法收益数据来源静态 5 人从任务记录动态聚合进度随任务更新排序方式数组顺序按完成率倒序排序高完成率在前进度点击无 onClick点击进入成员任务明细下钻查看达标激励仅变色100% 时显示勋章/徽章达标成就感时间维度无按周/月切换统计周期时间趋势分析进度页是班级任务的分析视角——OverallCard 三色概览 MemberList 的Progress线性条 达标变色。从percent(m) 100的条件变色到Math.round的百分比计算每一层都有明确的职责边界。系列导航一首页 · 二任务 ·三进度· 四我的

相关新闻

生产级Agent后端六大核心实践:SSE、Redis状态中枢与Trace贯通

生产级Agent后端六大核心实践:SSE、Redis状态中枢与Trace贯通

1. 这不是Bug,是生产级Agent系统必经的“成人礼”“Agent上线第二天就给用户退了两次款”——这句话刚在内部群弹出来时,我正盯着监控面板上那条突兀的红色告警曲线。没有惊慌,反而下意识点了杯咖啡。干了十年后端,见过太多团队把…

2026/10/4 15:00:45 阅读更多 →
Fantasy Map Generator v1.5.0 纹章更新(Emblems Update)技术解析:自动纹章生成、Armoria 集成与语音朗读

Fantasy Map Generator v1.5.0 纹章更新(Emblems Update)技术解析:自动纹章生成、Armoria 集成与语音朗读

前端图形学3D渲染 【免费下载链接】Fantasy-Map-Generator Web application generating interactive and highly customizable maps 项目地址: https://gitcode.com/gh_mirrors/fa/Fantasy-Map-Generator 点击查看 免费下载 本文基于开源仓库 Fantasy-Map-Generato…

2026/10/4 15:00:45 阅读更多 →
插件加载失败怎么办?从工作原理到排查方法一次讲透

插件加载失败怎么办?从工作原理到排查方法一次讲透

说实话,我第一次看到"failed to load plugins web boot: 2 entries did not activate"这行报错的时候,也愣了几秒。plugins这个词几乎是软件开发里出现频率最高的词汇之一,但真要解释清楚"插件到底在干什么、为什么总会弹出这…

2026/10/4 15:00:45 阅读更多 →

最新新闻

YOLO+CLIP打造监控视频自然语言检索系统:架构与实战

YOLO+CLIP打造监控视频自然语言检索系统:架构与实战

简介:基于CLIP与YOLO的智能视频监控与自然语言搜索系统源码包,面向具备Python基础的安防监控、视频分析或AI应用开发者,解决实时物体检测与自然语言查询结合的实际需求。包内含9个文件,主体为Python源码,另有环境依赖清…

2026/10/4 15:45:15 阅读更多 →
MIPS押注物理AI:RISC-V架构如何满足实时安全可配置需求

MIPS押注物理AI:RISC-V架构如何满足实时安全可配置需求

1. 从“唯算力论”到“物理AI”:MIPS这次押注到底在赌什么过去几年,芯片圈子里最不缺的就是算力数字的军备竞赛。手机SoC天梯图一更新,评论区立刻分成两派吵得不可开交;服务器端更是把TOPS、TFLOPS当成唯一信仰,仿佛只…

2026/10/4 15:45:15 阅读更多 →
openrig配置层实战:统一管理Claude Code与Codex的YAML编排与npm分发

openrig配置层实战:统一管理Claude Code与Codex的YAML编排与npm分发

1. 从 openrig 说起:一个被低估的 AI 编码工具配置层第一次看到openrig这个词,我下意识把它拆成了 "open" 和 "rig" 两半。rig 在英文里是"装配、搭台子"的意思,在工程圈里常指把一堆零散部件组装成一套能跑的…

2026/10/4 15:45:15 阅读更多 →
110kV电网继电保护配置与整定计算:距离保护、电流保护及灵敏度校验全解析

110kV电网继电保护配置与整定计算:距离保护、电流保护及灵敏度校验全解析

简介:面向电力工程专业学生的110kV电网继电保护课程设计资料,以南京工程学院课程设计为背景,完整覆盖继电保护配置、线路保护整定计算两大核心环节。内容从最大/最小运行方式与接地运行方式分析入手,依次阐述发电机-变压器组保护的…

2026/10/4 15:45:15 阅读更多 →
DeepSeek跨境数据合规智能评估:多法系法律文本解析与差距量化方案

DeepSeek跨境数据合规智能评估:多法系法律文本解析与差距量化方案

简介:这份396页的深度技术方案围绕跨境数据合规场景,系统解决多法系法律文本比对与合规差距识别的核心难题,适合数据合规从业者、法律科技工程师及NLP算法研究者。全文共49个章节,完整覆盖从多法系语料库构建、法律文本预处理、多…

2026/10/4 15:45:15 阅读更多 →
.Net调用SAP RFC接口全流程:环境搭建、代理类生成与错误排查

.Net调用SAP RFC接口全流程:环境搭建、代理类生成与错误排查

简介:一份记录 .NET 框架调用 SAP RFC 接口读取数据完整过程的实战文档,面向需打通 SAP 与 .NET 系统的软件开发人员,特别适合负责企业级 ERP 集成、正在踩坑排错的工程师参考。文档系统梳理了从环境准备到编码实现的全链路:先讲清…

2026/10/4 15:44:15 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →