HarmonyOS ArkTS 实战:实现一个大创项目申报管理应用
HarmonyOS ArkTS 实战实现一个大创项目申报管理应用项目效果本文使用 HarmonyOS 和 ArkTS 实现一个大创项目申报管理应用。应用可以查看申报通知提交项目申报查看审核状态项目进度并提供成员管理、指导老师、中期检查、结项管理等完整功能。项目使用 DevEco Studio 开发适配 API 23 及以上版本。运行效果功能介绍申报通知查看项目申报提交项目信息填写成员管理指导老师选择审核状态查询项目进度跟踪中期检查结项申请我的项目优秀项目展示常见问题定义数据结构interfaceProject{id:number;name:string;category:string;// 创新训练/创业训练/创业实践level:string;// 国家级/市级/校级leader:string;members:string[];teacher:string;college:string;description:string;budget:number;status:string;// 草稿/待审核/学院审核/学校审核/已立项/进行中/中期检查/已结项/已驳回progress:number;applyTime:string;}interfaceNotice{id:number;title:string;content:string;deadline:string;type:string;}初始化页面状态StateprivatetabIndex:number0;Stateprivatenotices:Notice[][{id:1,title:关于2026年大学生创新创业训练计划项目申报的通知,content:各学院为培养大学生创新精神和实践能力...,deadline:2026-08-31,type:申报通知},{id:2,title:2026年大创项目中期检查通知,content:请各项目组于9月15日前提交中期检查报告...,deadline:2026-09-15,type:中期检查},];Stateprivateprojects:Project[][{id:1,name:基于HarmonyOS的校园服务平台,category:创新训练,level:国家级,leader:沈同学,members:[张同学,李同学,王同学],teacher:陈教授,college:信息学院,description:开发一款基于HarmonyOS的校园综合服务应用,budget:20000,status:进行中,progress:60,applyTime:2026-03-15},];StateprivatenewProjectName:string;StateprivatenewProjectDesc:string;StateprivatenewCategory:string创新训练;StateprivatenewLevel:string校级;StateprivatenextId:number10;提交申报privatesubmitProject():void{if(!this.newProjectName||!this.newProjectDesc)return;constproject:Project{id:this.nextId,name:this.newProjectName,category:this.newCategory,level:this.newLevel,leader:我,members:[我],teacher:待分配,college:信息学院,description:this.newProjectDesc,budget:5000,status:待审核,progress:0,applyTime:newDate().toLocaleDateString()};this.projects[project,...this.projects];this.newProjectName;this.newProjectDesc;this.nextId1;}状态颜色privategetStatusColor(status:string):string{if(status.includes(驳回))return#DC2626;if(status.includes(审核))return#F59E0B;if(status已立项||status进行中)return#059669;if(status已结项)return#7C3AED;return#64748B;}项目卡片组件BuilderProjectCard(project:Project){Column({space:10}){Row(){Text(project.name).fontSize(16).fontWeight(FontWeight.Medium).fontColor(#4C0519).layoutWeight(1)Text(project.status).fontSize(11).fontColor(Color.White).padding({left:8,right:8,top:3,bottom:3}).backgroundColor(this.getStatusColor(project.status)).borderRadius(10)}.width(100%)Row({space:8}){Text(project.category).fontSize(11).fontColor(#9F1239).padding({left:6,right:6,top:2,bottom:2}).backgroundColor(#FFE4E6).borderRadius(8)Text(project.level).fontSize(11).fontColor(#9F1239).padding({left:6,right:6,top:2,bottom:2}).backgroundColor(#FFE4E6).borderRadius(8)Text(负责人${project.leader}).fontSize(11).fontColor(#9F1239)}Text(project.description).fontSize(12).fontColor(#881337).maxLines(2).width(100%)Progress({value:project.progress,total:100,type:ProgressType.Linear}).width(100%).color(#BE123C).backgroundColor(#FFE4E6)Text(进度${project.progress}% | 指导老师${project.teacher}| 经费¥${project.budget}).fontSize(11).fontColor(#9F1239)}.width(100%).padding(16).backgroundColor(#FFF1F2).borderRadius(12)}页面布局build(){Column(){Text( 大创项目管理).fontSize(24).fontWeight(FontWeight.Bold).fontColor(#4C0519).width(100%).padding(20)// TabRow({space:20}){Text(申报通知).fontSize(16).fontWeight(this.tabIndex0?FontWeight.Bold:FontWeight.Normal).fontColor(this.tabIndex0?#4C0519:#94A3B8).onClick(()this.tabIndex0)Text(我的项目).fontSize(16).fontWeight(this.tabIndex1?FontWeight.Bold:FontWeight.Normal).fontColor(this.tabIndex1?#4C0519:#94A3B8).onClick(()this.tabIndex1)Text(新建申报).fontSize(16).fontWeight(this.tabIndex2?FontWeight.Bold:FontWeight.Normal).fontColor(this.tabIndex2?#4C0519:#94A3B8).onClick(()this.tabIndex2)}.width(100%).padding({left:20,right:20})if(this.tabIndex0){List({space:12}){ForEach(this.notices,(n:Notice){ListItem(){Column({space:8}){Text(n.title).fontSize(15).fontWeight(FontWeight.Medium).fontColor(#4C0519)Text(n.content).fontSize(12).fontColor(#9F1239).maxLines(2)Text(截止时间${n.deadline}).fontSize(11).fontColor(#DC2626)}.width(100%).padding(16).backgroundColor(#FFF1F2).borderRadius(12)}})}.width(100%).padding(20).layoutWeight(1)}elseif(this.tabIndex1){List({space:12}){ForEach(this.projects,(p:Project){ListItem(){this.ProjectCard(p)}})}.width(100%).padding(20).layoutWeight(1)}else{Scroll(){Column({space:16}){TextInput({text:this.newProjectName,placeholder:项目名称}).width(100%).height(44).backgroundColor(#FFF1F2).onChange((v:string)this.newProjectNamev)// 项目类型Text(项目类型).fontSize(14).fontWeight(FontWeight.Medium).width(100%)Flex({wrap:FlexWrap.Wrap}){ForEach([创新训练,创业训练,创业实践],(c:string){Text(c).fontSize(13).fontColor(this.newCategoryc?Color.White:#4C0519).padding({left:16,right:16,top:8,bottom:8}).backgroundColor(this.newCategoryc?#BE123C:#FFE4E6).borderRadius(20).margin({right:8,bottom:8}).onClick(()this.newCategoryc)})}// 项目级别Text(申报级别).fontSize(14).fontWeight(FontWeight.Medium).width(100%)Flex({wrap:FlexWrap.Wrap}){ForEach([国家级,市级,校级],(l:string){Text(l).fontSize(13).fontColor(this.newLevell?Color.White:#4C0519).padding({left:16,right:16,top:8,bottom:8}).backgroundColor(this.newLevell?#BE123C:#FFE4E6).borderRadius(20).margin({right:8,bottom:8}).onClick(()this.newLevell)})}TextArea({text:this.newProjectDesc,placeholder:项目简介研究内容、创新点、预期成果}).width(100%).height(120).backgroundColor(#FFF1F2).onChange((v:string)this.newProjectDescv)Button(提交申报).width(100%).height(48).fontSize(16).backgroundColor(#4C0519).margin({top:10}).onClick(()this.submitProject())}.width(100%).padding(20)}.layoutWeight(1)}}.width(100%).height(100%).backgroundColor(Color.White)}页面设计说明主题色采用rose-950#4C0519深玫瑰色体现学术项目的严谨、专业。玫瑰红系卡片进度条显示项目进展状态标签颜色区分审核阶段。SDK配置API 24compatibleSdkVersion: “6.1.1(24)”运行项目将代码复制到 entry/src/main/ets/pages/Index.ets 即可运行。项目总结实现了申报通知、项目申报、状态跟踪、进度管理、类型级别选择等功能。掌握了Progress进度条、表单验证、状态颜色映射、Flex标签选择等。后续可加入附件上传、成员邀请、指导老师选择、中期报告提交、结项材料、优秀项目展示等功能。

相关新闻

C++实现图像腐蚀算法:从原理到代码实践

C++实现图像腐蚀算法:从原理到代码实践

1. 项目概述:从像素到形态的运算在图像处理的世界里,我们常常需要处理一些“不完美”的图片。比如,从扫描仪得到的文档图像,边缘可能带有毛刺;或者,在识别某个物体轮廓时,我们希望去除一些细小的…

2026/7/24 6:19:04 阅读更多 →
YOLOv8与DeepSORT在智能交通中的实战应用

YOLOv8与DeepSORT在智能交通中的实战应用

1. 项目概述:当YOLOv8遇上DeepSORT的化学反应去年在某个城市交通改造项目中,我第一次尝试将YOLOv8和DeepSORT组合使用。当时需要统计一条主干道早晚高峰的车流量,传统的地感线圈方案施工周期长且破坏路面。这套组合方案从部署到出数据只用了7…

2026/7/24 6:19:04 阅读更多 →
C++标准库实战指南:从原理到应用,掌握现代C++编程核心

C++标准库实战指南:从原理到应用,掌握现代C++编程核心

1. 项目概述:为什么我们需要一本C标准库的“中文权威指南”? 在C社区里摸爬滚打了十几年,我见过太多开发者,从刚入门的新手到工作三五年的熟手,在面对C标准库时,依然会陷入一种“熟悉的陌生感”。大家可能都…

2026/7/24 6:19:04 阅读更多 →

最新新闻

宏智树AI:科研全流程智能工作台的技术解析与实践

宏智树AI:科研全流程智能工作台的技术解析与实践

1. 项目定位与核心价值在科研工作者日常中,文献综述、论文写作、数据整理等重复性工作往往占据60%以上的有效工作时间。去年Nature期刊调研显示,全球83%的学者认为现有学术工具存在功能割裂问题,需要在不同平台间频繁切换。这正是"宏智树…

2026/7/24 6:26:05 阅读更多 →
大模型落地实践:从学术指标到工程挑战

大模型落地实践:从学术指标到工程挑战

1. 圆桌讨论背景与核心议题上周参加了一场关于大模型技术落地的闭门研讨会,十几个来自学术界和工业界的同行围坐一桌,从早上九点一直聊到下午六点。这场讨论最让我震撼的不是某个具体技术突破,而是大家普遍反映的一个现象:现在90%…

2026/7/24 6:26:05 阅读更多 →
GPT-4大模型在司法辅助系统中的应用实践与效益分析

GPT-4大模型在司法辅助系统中的应用实践与效益分析

在司法系统长期面临案件积压、审判效率低下的全球性难题中,巴基斯坦法官引入 JudgeGPT 辅助处理案件,并取得每投入 1 美元回报 38.50 美元的经济效益,这一实践为技术赋能司法领域提供了值得关注的样本。虽然具体案件类型、工作流程和回报计算…

2026/7/24 6:26:05 阅读更多 →
大模型微调工程化实践与优化策略

大模型微调工程化实践与优化策略

1. 项目概述:当大模型微调遇上工程化思维三年前我第一次尝试微调一个7B参数的模型时,经历了连续72小时参数调试无果的崩溃体验。如今在帮助数十家企业实施大模型定制后,我总结出一套可复现的工程化方法论。不同于学术界追求的极限指标&#x…

2026/7/24 6:26:05 阅读更多 →
ACL 2020论文解读:语言生成视角下的NLP评估新范式

ACL 2020论文解读:语言生成视角下的NLP评估新范式

1. 项目概述:ACL 2020论文的核心视角ACL(Association for Computational Linguistics)作为自然语言处理领域的顶级国际会议,每年都会吸引全球顶尖学者分享最新研究成果。2020年ACL会议上,一篇题为《用语言生成视角评估…

2026/7/24 6:26:05 阅读更多 →
解决C++11代码编译错误:编译器标准配置与构建系统实战指南

解决C++11代码编译错误:编译器标准配置与构建系统实战指南

1. 问题引入:当现代C代码遇上“古董”编译器刚接手一个C项目,或者从GitHub上拉下来一个看起来不错的库,满心欢喜地敲下编译命令,结果终端里蹦出一堆莫名其妙的错误。比如,你兴冲冲地用上了auto关键字来简化迭代器声明&…

2026/7/24 6:25:05 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻