# TrainingCloud **Repository Path**: NingZY08/training-cloud ## Basic Information - **Project Name**: TrainingCloud - **Description**: 本项目是一个基于 ArkTS 的 HarmonyOS 数据可视化应用,实现了学员出勤趋势监控和成绩分布统计功能。 包含交互式折线图、饼图可视化展示,并支持动态数据刷新。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-23 - **Last Updated**: 2025-07-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HarmonyOS 实训数据可视化平台 ## 项目简介 本项目是一个基于 ArkTS 的 HarmonyOS 数据可视化应用,实现了学员出勤趋势监控和成绩分布统计功能。 包含交互式折线图、饼图可视化展示,并支持动态数据刷新。 ## 核心功能 - **数据可视化** - 实时折线图展示学员出勤趋势 - 饼图展示成绩分布(优秀/良好/不及格) - **动态交互** - 点击"刷新数据"按钮生成随机出勤数据 - 支持任务数据同步更新 - **响应式设计** - 自适应 HarmonyOS 设备屏幕 - 模块化布局结构 ## 技术栈 - **开发语言**:ArkTS (基于 TypeScript 扩展的声明式开发语言) - **UI 框架**:ArkUI (声明式 UI 框架) - **图表库**:@mcui/mccharts (HarmonyOS 专用图表组件) - **状态管理**:@State 装饰器实现响应式数据绑定 ## 安装指南 1. 安装 [DevEco Studio](https://developer.harmonyos.com/cn/develop/deveco-studio) 2. 配置 HarmonyOS SDK 环境 3. 克隆项目: bash git clone https://gitee.com/NingZY08/training-cloud.git 4. 打开项目并运行到模拟器/真机 ## 使用说明 1. **数据刷新** 点击折线图下方的"刷新数据"按钮,自动生成新的随机出勤数据并实时更新图表 2. **任务管理** - 点击"同步任务数据"按钮 - 通过 `DataBus` 模块接收任务数据更新 3. **图表交互** - 折线图支持点击数据点查看详情 - 饼图显示精确百分比标签 ## 目录结构 entry/ ├── src/ │ └── main/ │ └──└── ets/ │ ├──└──└── pages/ # 页面文件 │ │ └──└──└── Index.ets # 主页面 │ ├──└──└──└──components/ # 自定义组件 │ │ └──└──└──└── TaskCard.ets │ ├──└──└──└── TaskCard.ets │ └──└──└──└── bus/ # 数据总线 │ └──└──└──└──└── DataBus.ets ## 核心代码示例 // 随机数据生成 (Index.ets) private generateRandomLineData() { const newData = new Array(7).fill(0).map(() => Math.floor (Math.random() * 150) + 50); this.lineDate = newData; // 创建新配置对象保持原有图表设置 this.defOptionLine = new Options({ title: { ...this.defOptionLine.title }, xAxis: { ...this.defOptionLine.xAxis }, yAxis: { ...this.defOptionLine.yAxis }, series: [{ name: '周出勤人数', data: [...newData] }] }); } ## 贡献指南 1. Fork 本仓库 2. 创建新分支 `git checkout -b feature` 3. 提交代码 `git commit -am 'Add new feature'` 4. 推送分支 `git push origin feature` 5. 发起 Pull Request ## 已知问题 - ArkTS 类型推断限制: 使用数组方法时需要显式声明泛型类型 - 对象展开运算符支持: 需使用 `Object.assign()` 替代对象展开语法 - 折线和饼图的数据由于深层次的嵌套,无法使用对象展开语法进行数据绑定。 由于属性不可访问,无法使用对象展开语法进行数据绑定。 ## 许可证 本项目采用 MIT 许可证。详情见 [LICENSE](LICENSE) 文件。