HarmonyOS ArkTS 实战:实现一个校园停车位预约与车辆出入记录应用
HarmonyOS ArkTS 实战实现一个校园停车位预约与车辆出入记录应用项目效果本文使用 HarmonyOS 和 ArkTS 实现一个校园停车位预约与车辆出入记录应用。应用可以登记校园停车位记录车位编号、停车区域、车辆类型和车牌信息并提供车位预约、车辆入场、车辆离场、状态筛选和数据统计等功能。项目使用 DevEco Studio 开发适配 API 23 及以上版本。功能介绍本项目实现了以下功能登记新的校园停车位设置车位编号和停车区域选择电动车或小汽车类型填写预约车辆号牌预约空闲车位确认车辆入场登记车辆离场按空闲、已预约和使用中筛选车位统计全部车位、空闲车位和使用中车位删除不再使用的车位记录定义数据结构首先定义停车位记录的数据结构interfaceParkingRecord{id:number;space:string;area:string;plate:string;vehicleType:string;status:string;}字段说明如下id车位记录的唯一编号space车位编号area停车区域plate预约车辆号牌vehicleType车辆类型status车位当前状态初始化页面状态使用State保存输入内容、车辆类型和筛选条件StateprivatespaceText:string;StateprivateareaText:string;StateprivateplateText:string;StateprivatevehicleType:string电动车;StateprivatefilterType:string全部;StateprivatenextId:number6;准备初始车位数据Stateprivaterecords:ParkingRecord[][{id:1,space:A-018,area:图书馆地下停车场,plate:等待预约,vehicleType:小汽车,status:空闲},{id:2,space:B-032,area:东区宿舍车棚,plate:粤B·E2861,vehicleType:电动车,status:已预约},{id:3,space:C-006,area:体育馆北侧停车区,plate:粤A·Q7529,vehicleType:小汽车,status:使用中}];添加停车位用户填写车位编号和停车区域后可以添加新的停车位privateaddRecord():void{constspace:stringthis.spaceText.trim();constarea:stringthis.areaText.trim();if(space.length0||area.length0){return;}constrecord:ParkingRecord{id:this.nextId,space,area,plate:等待预约,vehicleType:this.vehicleType,status:空闲};this.records[record,...this.records];this.nextId1;this.spaceText;this.areaText;}新添加的停车位默认处于空闲状态。实现车位预约和车辆入场车位状态按下面的顺序流转空闲 - 已预约 - 使用中 - 车辆离场 - 空闲预约车位和确认入场使用同一个方法privateadvanceStatus(id:number):void{constplate:stringthis.plateText.trim()||校园车辆;this.recordsthis.records.map((item:ParkingRecord){if(item.idid){letstatus:string空闲;letnextPlate:string等待预约;if(item.status空闲){status已预约;nextPlateplate;}elseif(item.status已预约){status使用中;nextPlateitem.plate;}return{id:item.id,space:item.space,area:item.area,plate:nextPlate,vehicleType:item.vehicleType,status};}returnitem;});this.plateText;}当车位为空闲状态时点击按钮会预约车位当车位已预约时点击按钮会确认车辆入场。实现车辆离场车辆离场后车位重新恢复为空闲状态privateleaveParking(id:number):void{this.recordsthis.records.map((item:ParkingRecord){if(item.idid){return{id:item.id,space:item.space,area:item.area,plate:等待预约,vehicleType:item.vehicleType,status:空闲};}returnitem;});}离场后车牌信息会重置为“等待预约”。筛选车位状态页面支持按车位状态筛选privategetFilteredRecords():ParkingRecord[]{if(this.filterType空闲车位){returnthis.records.filter((item:ParkingRecord)item.status空闲);}if(this.filterType已预约){returnthis.records.filter((item:ParkingRecord)item.status已预约);}if(this.filterType使用中){returnthis.records.filter((item:ParkingRecord)item.status使用中);}returnthis.records;}筛选按钮可以封装为一个自定义组件BuilderFilterButton(text:string){Button(text).height(34).layoutWeight(1).fontSize(12).fontColor(this.filterTypetext?Color.White:#344054).backgroundColor(this.filterTypetext?#0F766E:#E8EEF7).borderRadius(8).onClick((){this.filterTypetext;});}统计车位数据使用filter统计指定状态的车位数量privategetCount(status:string):number{returnthis.records.filter((item:ParkingRecord)item.statusstatus).length;}顶部统计区域展示以下数据this.StatCard(全部车位,${this.records.length},#0F766E,#F0FDFA);this.StatCard(空闲可用,${this.getCount(空闲)},#059669,#ECFDF3);this.StatCard(正在使用,${this.getCount(使用中)},#D97706,#FFF7E8);设置状态颜色不同车位状态使用不同颜色privategetStatusColor(status:string):ResourceColor{if(status空闲){return#059669;}if(status已预约){return#2563EB;}return#D97706;}颜色对应关系如下绿色空闲可用蓝色已经预约橙色车辆正在使用紫色小汽车车位青色电动车车位删除车位记录不再需要的停车位记录可以删除privatedeleteRecord(id:number):void{this.recordsthis.records.filter((item:ParkingRecord)item.id!id);}删除后列表和顶部统计数据都会自动更新。使用列表展示车位使用List和ForEach渲染筛选后的车位List({space:10}){ForEach(this.getFilteredRecords(),(item:ParkingRecord){ListItem(){this.ParkingCard(item)}},(item:ParkingRecord)item.id.toString());}.width(100%).layoutWeight(1).scrollBar(BarState.Off);每个车位使用独立卡片展示卡片中包含车位编号、停车区域、车辆类型、车辆号牌、状态和操作按钮。页面设计说明应用使用青绿色作为主题色突出校园停车和出行管理场景。页面主要分为以下区域顶部标题和空闲车位数量车位状态统计区域停车位登记区域车位状态筛选区域停车位列表区域页面采用浅灰色背景和白色卡片不同状态采用不同颜色便于快速查看可用车位。SDK 配置本项目使用 HarmonyOS API 24满足 API 23 及以上要求{ name: default, compatibleSdkVersion: 6.1.1(24), runtimeOS: HarmonyOS, targetSdkVersion: 6.1.1(24), compileSdkVersion: 6.1.1(24) }entry 模块中的运行系统也要保持一致{ apiType: stageMode, targets: [ { name: default, runtimeOS: HarmonyOS } ] }运行项目使用 DevEco Studio 打开项目然后找到entry/src/main/ets/pages/Index.ets等待项目同步完成点击右侧的Preview按钮即可查看应用效果。项目总结本文使用 HarmonyOS 和 ArkTS 实现了一个校园停车位预约与车辆出入记录应用。项目实现了车位登记、车辆类型选择、车位预约、确认入场、车辆离场、状态筛选、数据统计和删除等功能。通过这个项目可以掌握ArkTS 接口定义State状态管理TextInput输入组件List和ForEach列表渲染map和filter数组操作状态流转设计自定义Builder组件HarmonyOS 页面布局后续还可以加入车位地图、扫码入场、预约超时提醒、停车时长计算、费用结算和本地数据持久化等功能。

相关新闻

汇川H3U PLC硬件架构与FPGA应用解析

汇川H3U PLC硬件架构与FPGA应用解析

1. 汇川H3U系列PLC硬件架构解析 作为国产PLC的典型代表,汇川H3U系列采用三层板堆叠设计,这种结构在工业控制领域具有显著优势。主控板搭载国产FPGA芯片,通过高速总线与IO接口板通信,电源板则采用宽电压输入设计(AC85-2…

2026/7/21 7:49:05阅读更多 →
多平台学生图书管理系统:Django与Spring Boot全栈开发实战

多平台学生图书管理系统:Django与Spring Boot全栈开发实战

这次我们来看一个多平台学生图书管理系统项目,它提供了从后端到前端的完整源码和数据库,覆盖了Python Django、Java Spring Boot、微信小程序、安卓APP等多个主流技术栈。对于正在寻找毕业设计、课程实践或者想学习全栈开发的同学来说,这是一…

2026/7/21 7:49:05阅读更多 →
高可用群集系统搭建与优化实战指南

高可用群集系统搭建与优化实战指南

1. 群集系统概述与核心价值 在分布式计算领域,群集(Cluster)是由多台独立服务器通过网络连接组成的统一系统。这种架构通过资源整合和任务分配,能够提供远超单台服务器的处理能力和可靠性保障。我最早接触群集技术是在2012年负责一…

2026/7/21 7:49:05阅读更多 →
ArduPilot无人机控制参数智能优化:从手动调参到自动优化的完整实践指南

ArduPilot无人机控制参数智能优化:从手动调参到自动优化的完整实践指南

ArduPilot无人机控制参数智能优化:从手动调参到自动优化的完整实践指南 【免费下载链接】ardupilot ArduPlane, ArduCopter, ArduRover, ArduSub source 项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot ArduPilot作为开源无人机控制平台的领军…

2026/7/21 16:55:56阅读更多 →
如何通过rafx与distill资产管道集成优化游戏资源加载流程

如何通过rafx与distill资产管道集成优化游戏资源加载流程

如何通过rafx与distill资产管道集成优化游戏资源加载流程 【免费下载链接】rafx Multi-backend renderer with asset pipeline. The objective of this repo is to build a scalable, flexible, data driven renderer. 项目地址: https://gitcode.com/gh_mirrors/ra/rafx …

2026/7/21 16:55:56阅读更多 →
hcia第三次作业

hcia第三次作业

一、实验拓扑 二、实验需求 1、R1-R3为区域0,R3-R4为区域1;其中R3在环回地址在区域0; 2、R1、R2各有一个环回口; 3、R1-R3中,R3为DR设备,没有BDR; 4、R4环回地址固定4.4.4.4/24 ,其他网段使用…

2026/7/21 16:55:56阅读更多 →
Neovim-GTK终极指南:用Rust打造的高性能GTK GUI编辑器

Neovim-GTK终极指南:用Rust打造的高性能GTK GUI编辑器

Neovim-GTK终极指南:用Rust打造的高性能GTK GUI编辑器 【免费下载链接】neovim-gtk gtk ui for neovim 项目地址: https://gitcode.com/gh_mirrors/ne/neovim-gtk 想要在Linux桌面环境中享受Neovim的强大功能,同时拥有现代化的图形界面体验吗&…

2026/7/21 16:55:56阅读更多 →
终极指南:SketchUp STL插件实现3D打印无缝衔接的5个高效技巧

终极指南:SketchUp STL插件实现3D打印无缝衔接的5个高效技巧

终极指南:SketchUp STL插件实现3D打印无缝衔接的5个高效技巧 【免费下载链接】sketchup-stl A SketchUp Ruby Extension that adds STL (STereoLithography) file format import and export. 项目地址: https://gitcode.com/gh_mirrors/sk/sketchup-stl Sket…

2026/7/21 16:55:56阅读更多 →
Dex Retargeting安装与配置教程:从零开始搭建机器人手部遥操作系统

Dex Retargeting安装与配置教程:从零开始搭建机器人手部遥操作系统

Dex Retargeting安装与配置教程:从零开始搭建机器人手部遥操作系统 【免费下载链接】dex-retargeting Various retargeting optimizers to translate human hand motion to robot hand motion. 项目地址: https://gitcode.com/gh_mirrors/de/dex-retargeting …

2026/7/21 16:53:56阅读更多 →
Go语言静态资源打包方案对比与实践指南

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

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

2026/7/21 0:51:49阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

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

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

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

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

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

2026/7/21 0:51:49阅读更多 →
Windows+macOS 通用 OpenClaw 部署流程,内置依赖一键启动智能桌面助手

Windows+macOS 通用 OpenClaw 部署流程,内置依赖一键启动智能桌面助手

📌教程适配:OpenClaw v2.7.9 | 兼容 Windows10/11、macOS 双系统 📖前言 当下各类本地 AI 工具层出不穷,多数产品仅能完成文字问答交互,很难直接操控电脑执行实际操作。OpenClaw,业内常称小龙虾 AI&#…

2026/7/21 0:01:46阅读更多 →
Codex 接入后 Bug 反增?复盘从个人演示到团队协作的“流程陷阱”

Codex 接入后 Bug 反增?复盘从个人演示到团队协作的“流程陷阱”

聊《一次Codex项目复盘,问题最后出在流程而不是模型》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要先把这篇文章的目标说清楚:看完之后,你应该能判断这件事值不值得做&…

2026/7/21 0:01:46阅读更多 →
手把手搓一个五子棋游戏,零代码也能当“游戏开发者”

手把手搓一个五子棋游戏,零代码也能当“游戏开发者”

大家好,还是我。前几期带大家做了心情日记本和可视化大屏,后台有朋友留言:“能不能教点好玩的?我想做游戏,但一行代码都不会。”行,这期就安排。今天的目标:从零做一个五子棋游戏。 带AI对战、三…

2026/7/21 0:03:46阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/20 22:51:39阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/20 18:51:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/20 18:51:18阅读更多 →