HarmonyOS ArkTS 实战:实现一个校园洗衣房预约与支付应用

HarmonyOS ArkTS 实战:实现一个校园洗衣房预约与支付应用

项目效果

本文使用 HarmonyOS 和 ArkTS 实现一个校园洗衣房预约与支付应用。

应用可以查看洗衣机状态,预约洗衣时间,在线支付,洗衣完成提醒,并提供洗衣记录、烘干预约、故障报修等功能。

项目使用 DevEco Studio 开发,适配 API 23 及以上版本。

运行效果

功能介绍

  • 洗衣机状态查看
  • 洗衣预约
  • 在线支付
  • 完成提醒
  • 烘干预约
  • 洗衣记录
  • 故障报修
  • 剩余时间
  • 洗衣液购买
  • 洗衣统计

定义数据结构

interfaceWasher{id:number;number:string;location:string;status:string;mode:string;remainTime:number;price:number;}interfaceLaundryOrder{id:number;washerId:number;washerNumber:string;mode:string;startTime:string;endTime:string;price:number;status:string;}

初始化页面状态

@StateprivatenextOrderId:number=20;@Stateprivatebalance:number=50;

初始数据包含洗衣机状态和洗衣订单。

预约洗衣

privatestartLaundry(washerId:number,washerNumber:string,mode:string,price:number):void{constduration=mode==='快洗'?30:mode==='标准洗'?45:60;constorder:LaundryOrder={id:this.nextOrderId,washerId,washerNumber,mode,startTime:newDate().toLocaleString(),endTime:newDate(Date.now()+duration*60*1000).toLocaleString(),price,status:'洗衣中'};this.orders=[order,...this.orders];this.balance-=price;this.nextOrderId++;}

完成洗衣

privatefinishLaundry(orderId:number):void{this.orders=this.orders.map(o=>o.id===orderId?{...o,status:'已完成'}:o);}

主题色:深天蓝#0284C7,体现干净、清洁、水的感觉。

统计数据

  • 可用洗衣机
  • 使用中
  • 本月洗衣次数
  • 消费金额

页面设计说明

顶部洗衣房洗衣机网格状态(绿色空闲/蓝色使用中/灰色故障),预约模式选择,支付按钮,洗衣中倒计时,我的订单。洗衣机状态一目了然,倒计时大字显示,完成有推送提醒。

SDK配置

API 24。

运行项目

entry/src/main/ets/pages/Index.ets

项目总结

实现了洗衣机状态查看、预约洗衣、支付、完成提醒、订单记录等功能。掌握了网格状态展示、倒计时、状态颜色区分、订单管理等。后续可加入烘干预约、洗衣液配送、排队提醒、多人拼单、洗衣消毒等功能。