Feat: 数据库模拟数据

This commit is contained in:
2025-12-23 17:23:45 +08:00
parent 912e9edfdb
commit b289211123
+75 -12
View File
@@ -1,5 +1,68 @@
// 健康数据结构体
class HealthData {
caloriesCurrent: number = 0;
caloriesTarget: number = 0;
stepsCurrent: number = 0;
stepsTarget: number = 0;
intensityCurrent: number = 0;
intensityTarget: number = 0;
activityCount: number = 0;
sleepDuration: string = '';
sleepQuality: string = '';
heartRate: number = 0;
bloodOxygen: number = 0;
weight: number = 0;
}
// 数据库配置接口
interface DBConfig {
url: string;
user: string;
password: string;
database: string;
}
// 数据库配置(需替换为实际信息)
const DB_CONFIG: DBConfig = {
url: 'YOUR_DATABASE_URL',
user: 'YOUR_USERNAME',
password: 'YOUR_PASSWORD',
database: 'YOUR_DB_NAME'
};
@Component @Component
export struct Module1 { export struct Module1 {
@State healthData: HealthData = new HealthData();
aboutToAppear() {
this.loadHealthData();
}
// 模拟数据加载方法(需替换为实际数据库连接)
loadHealthData() {
// TODO: 实现真实数据库连接
// 示例模拟数据
this.healthData = {
caloriesCurrent: 117,
caloriesTarget: 500,
stepsCurrent: 1889,
stepsTarget: 8000,
intensityCurrent: 13,
intensityTarget: 30,
activityCount: 4,
sleepDuration: '8时27分',
sleepQuality: '良好',
heartRate: 96,
bloodOxygen: 97,
weight: 58.50
};
// 真实数据加载示例伪代码:
// fetchDataFromDB().then(data => {
// this.healthData = data;
// });
}
build() { build() {
Column() { Column() {
Row() { Row() {
@@ -11,14 +74,14 @@ export struct Module1 {
.textOverflow({ overflow: TextOverflow.Ellipsis }) .textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(1) .maxLines(1)
.fontColor('#2E86C1') .fontColor('#2E86C1')
Text('117') Text(this.healthData.caloriesCurrent.toString())
.maxFontSize(20) .maxFontSize(20)
.margin(2) .margin(2)
.minFontSize(8) .minFontSize(8)
.textOverflow({ overflow: TextOverflow.Ellipsis }) .textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(1) .maxLines(1)
.fontColor('#3498DB') .fontColor('#3498DB')
Text('/500千卡') Text(`/${this.healthData.caloriesTarget}千卡`)
.maxFontSize(12) .maxFontSize(12)
.fontColor('#888888') .fontColor('#888888')
.margin(2) .margin(2)
@@ -39,14 +102,14 @@ export struct Module1 {
.textOverflow({ overflow: TextOverflow.Ellipsis }) .textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(1) .maxLines(1)
.fontColor('#28B463') .fontColor('#28B463')
Text('1889') Text(this.healthData.stepsCurrent.toString())
.maxFontSize(20) .maxFontSize(20)
.margin(2) .margin(2)
.minFontSize(8) .minFontSize(8)
.textOverflow({ overflow: TextOverflow.Ellipsis }) .textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(1) .maxLines(1)
.fontColor('#2ECC71') .fontColor('#2ECC71')
Text('/8000步') Text(`/${this.healthData.stepsTarget}步`)
.maxFontSize(12) .maxFontSize(12)
.fontColor('#888888') .fontColor('#888888')
.margin(2) .margin(2)
@@ -67,14 +130,14 @@ export struct Module1 {
.textOverflow({ overflow: TextOverflow.Ellipsis }) .textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(1) .maxLines(1)
.fontColor('#7D3C98') .fontColor('#7D3C98')
Text('13') Text(this.healthData.intensityCurrent.toString())
.maxFontSize(20) .maxFontSize(20)
.margin(2) .margin(2)
.minFontSize(8) .minFontSize(8)
.textOverflow({ overflow: TextOverflow.Ellipsis }) .textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(1) .maxLines(1)
.fontColor('#9B59B6') .fontColor('#9B59B6')
Text('/30分钟') Text(`/${this.healthData.intensityTarget}分钟`)
.maxFontSize(12) .maxFontSize(12)
.fontColor('#888888') .fontColor('#888888')
.margin(2) .margin(2)
@@ -93,7 +156,7 @@ export struct Module1 {
Row() { Row() {
Column() { Column() {
Text('活动次数 4 次') Text(`活动次数 ${this.healthData.activityCount} 次`)
.maxFontSize(14) .maxFontSize(14)
.margin(2) .margin(2)
.minFontSize(8) .minFontSize(8)
@@ -113,14 +176,14 @@ export struct Module1 {
.textOverflow({ overflow: TextOverflow.Ellipsis }) .textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(1) .maxLines(1)
.fontColor('#D35400') .fontColor('#D35400')
Text('8时27分') Text(this.healthData.sleepDuration)
.maxFontSize(20) .maxFontSize(20)
.margin(2) .margin(2)
.minFontSize(8) .minFontSize(8)
.textOverflow({ overflow: TextOverflow.Ellipsis }) .textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(1) .maxLines(1)
.fontColor('#E67E22') .fontColor('#E67E22')
Text('12月23日 睡眠质量良好') Text(`12月23日 睡眠质量${this.healthData.sleepQuality}`)
.maxFontSize(12) .maxFontSize(12)
.fontColor('#888888') .fontColor('#888888')
.margin(2) .margin(2)
@@ -154,7 +217,7 @@ export struct Module1 {
.textOverflow({ overflow: TextOverflow.Ellipsis }) .textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(1) .maxLines(1)
.fontColor('#C0392B') .fontColor('#C0392B')
Text('96次/分') Text(`${this.healthData.heartRate}次/分`)
.maxFontSize(20) .maxFontSize(20)
.margin(2) .margin(2)
.minFontSize(8) .minFontSize(8)
@@ -188,7 +251,7 @@ export struct Module1 {
.textOverflow({ overflow: TextOverflow.Ellipsis }) .textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(1) .maxLines(1)
.fontColor('#16A085') .fontColor('#16A085')
Text('97%') Text(`${this.healthData.bloodOxygen}%`)
.maxFontSize(20) .maxFontSize(20)
.margin(2) .margin(2)
.minFontSize(8) .minFontSize(8)
@@ -222,7 +285,7 @@ export struct Module1 {
.textOverflow({ overflow: TextOverflow.Ellipsis }) .textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(1) .maxLines(1)
.fontColor('#8E44AD') .fontColor('#8E44AD')
Text('58.50KG') Text(`${this.healthData.weight.toFixed(2)}KG`)
.maxFontSize(20) .maxFontSize(20)
.margin(2) .margin(2)
.minFontSize(8) .minFontSize(8)