18079408532 il y a 1 an
Parent
commit
527f89ed55

+ 18 - 0
Lifepartner/src/app/service/chat.service.ts

@@ -0,0 +1,18 @@
+import { Injectable } from '@angular/core';
+
+@Injectable({
+  providedIn: 'root',
+})
+export class ChatService {
+  private chatHistory: string[] = [];
+
+  constructor() {}
+
+  getChatHistory(): string[] {
+    return this.chatHistory;
+  }
+
+  sendMessage(message: string) {
+    this.chatHistory.push(message);
+  }
+}

+ 18 - 0
Lifepartner/src/app/service/reminder.service.ts

@@ -0,0 +1,18 @@
+import { Injectable } from '@angular/core';
+
+@Injectable({
+  providedIn: 'root',
+})
+export class ReminderService {
+  private reminders: string[] = [];
+
+  constructor() {}
+
+  getReminders(): string[] {
+    return this.reminders;
+  }
+
+  addReminder(reminder: string) {
+    this.reminders.push(reminder);
+  }
+}

+ 73 - 8
Lifepartner/src/app/tab1/tab1.page.html

@@ -1,17 +1,82 @@
 <ion-header [translucent]="true">
   <ion-toolbar>
     <ion-title>
-      Tab 1
+     生活智伴
     </ion-title>
   </ion-toolbar>
-</ion-header>
-
-<ion-content [fullscreen]="true">
-  <ion-header collapse="condense">
+  <ion-header>
     <ion-toolbar>
-      <ion-title size="large">Tab 1</ion-title>
+      <ion-buttons slot="start">
+        <ion-icon name="logo-ionic"></ion-icon> <!-- Logo -->
+      </ion-buttons>
+      <ion-title>生活智伴</ion-title>
+      <ion-buttons slot="end">
+        <ion-searchbar placeholder="搜索日程、建议等"></ion-searchbar>
+        <ion-button [routerLink]="['/profile']">
+          <ion-icon name="person"></ion-icon> <!-- 个人中心图标 -->
+        </ion-button>
+      </ion-buttons>
     </ion-toolbar>
   </ion-header>
 
-  <app-explore-container name="Tab 1 page"></app-explore-container>
-</ion-content>
+  <ion-content>
+    <div class="today-overview">
+      <div class="date">
+        <h2>2024年11月30日</h2>
+      </div>
+      <div class="weather">
+        <ion-icon name="sunny"></ion-icon> <!-- 天气图标 -->
+        <span>20°C,晴</span>
+      </div>
+      <div class="todo-list">
+        <h3>今日待办事项</h3>
+        <ul>
+          <li>1. 会议</li>
+          <li>2. 买菜</li>
+          <li>3. 健身</li>
+        </ul>
+      </div>
+    </div>
+    <ion-card>
+      <ion-card-header>
+        <ion-card-title>个性化推荐</ion-card-title>
+      </ion-card-header>
+      <ion-card-content>
+        <h4>穿搭建议:</h4>
+        <p>今天适合穿轻便外套和牛仔裤</p>
+        <h4>饮食建议:</h4>
+        <p>午餐推荐:沙拉和鸡胸肉</p>
+        <h4>出行建议:</h4>
+        <p>如果出门,建议骑自行车,避开高峰时段</p>
+      </ion-card-content>
+    </ion-card>
+    <ion-list>
+      <ion-item>
+        <ion-label>提醒事项</ion-label>
+        <ion-button slot="end" (click)="addReminder()">
+          <ion-icon name="add-circle"></ion-icon> <!-- 添加提醒按钮 -->
+        </ion-button>
+      </ion-item>
+      <ion-item *ngFor="let reminder of reminders">
+        <ion-label>{{ reminder }}</ion-label>
+      </ion-item>
+    </ion-list>
+    <ion-card>
+      <ion-card-header>
+        <ion-card-title>生活助手</ion-card-title>
+      </ion-card-header>
+      <ion-card-content>
+        <div class="chat-box">
+          <div class="chat-message" *ngFor="let message of chatMessages">
+            <p>{{ message }}</p>
+          </div>
+        </div>
+        <ion-item>
+          <ion-input placeholder="请问我可以帮您什么?" [(ngModel)]="userInput"></ion-input>
+          <ion-button (click)="sendMessage()">
+            <ion-icon name="send"></ion-icon>
+          </ion-button>
+        </ion-item>
+      </ion-card-content>
+    </ion-card>
+  </ion-content>

+ 60 - 5
Lifepartner/src/app/tab1/tab1.page.ts

@@ -1,14 +1,69 @@
 import { Component } from '@angular/core';
-import { IonHeader, IonToolbar, IonTitle, IonContent } from '@ionic/angular/standalone';
-import { ExploreContainerComponent } from '../explore-container/explore-container.component';
+import { ChatService } from '../service/chat.service'; // 从上一级目录进入 services 文件夹
+import { ReminderService } from '../service/reminder.service'; // 从上一级目录进入 services 文件夹
+import { FmodeAiService } from '../service/fmode-ai.service'; // 导入飞码 AI 服务
+import { IonicModule } from '@ionic/angular'; // 导入Ionic模块
+import { CommonModule } from '@angular/common'; // 导入CommonModule以使用ngFor等指令
+import { RouterModule } from '@angular/router'; // 导入RouterModule以使用routerLink
+import { FormsModule } from '@angular/forms'; // 导入FormsModule以使用ngModel
 
 @Component({
   selector: 'app-tab1',
   templateUrl: 'tab1.page.html',
   styleUrls: ['tab1.page.scss'],
   standalone: true,
-  imports: [IonHeader, IonToolbar, IonTitle, IonContent, ExploreContainerComponent],
+  imports: [
+    IonicModule,
+    CommonModule,
+    RouterModule,
+    FormsModule
+  ],
 })
 export class Tab1Page {
-  constructor() {}
-}
+  reminderInput: string = ''; // 用户输入的提醒事项
+  chatInput: string = ''; // 用户输入的聊天消息
+  reminders: string[] = []; // 提醒事项列表
+  chatMessages: string[] = []; // 聊天记录
+
+  constructor(
+    private reminderService: ReminderService,
+    private chatService: ChatService,
+    private fmodeAiService: FmodeAiService // 注入飞码 AI 服务
+  ) {
+    this.loadReminders(); // 加载提醒事项
+    this.loadChatHistory(); // 加载聊天记录
+  }
+
+  loadReminders() {
+    this.reminders = this.reminderService.getReminders(); // 从服务加载提醒事项
+  }
+
+  addReminder() {
+    if (this.reminderInput.trim()) {
+      this.reminders.push(this.reminderInput); // 将用户输入添加到提醒事项列表
+      this.reminderService.addReminder(this.reminderInput); // 更新服务中的提醒
+      this.reminderInput = ''; // 清空输入框
+    }
+  }
+
+  sendMessage() {
+    if (this.chatInput.trim()) {
+      this.chatMessages.push(this.chatInput); // 将用户输入添加到聊天记录
+      this.chatService.sendMessage(this.chatInput); // 更新聊天服务
+      const prompt = this.chatInput; // 使用用户输入作为提示词
+      this.chatInput = ''; // 清空输入框
+
+      // 调用飞码 AI 服务生成文本
+      this.fmodeAiService.generateText(prompt).subscribe(response => {
+        const aiMessage = response.data; // 根据 API 返回格式调整
+        this.chatMessages.push(aiMessage); // 将 AI 生成的消息添加到聊天记录
+      }, error => {
+        console.error('Error generating text:', error); // 错误处理
+      });
+    }
+  }
+
+  loadChatHistory() {
+    this.chatMessages = this.chatService.getChatHistory(); // 从服务加载聊天记录
+  }
+}

+ 6 - 6
Lifepartner/src/app/tabs/tabs.page.html

@@ -1,18 +1,18 @@
 <ion-tabs>
   <ion-tab-bar slot="bottom">
     <ion-tab-button tab="tab1" href="/tabs/tab1">
-      <ion-icon aria-hidden="true" name="triangle"></ion-icon>
-      <ion-label>Tab 1</ion-label>
+      <ion-icon aria-hidden="true" name="home"></ion-icon>
+      <ion-label>首页</ion-label>
     </ion-tab-button>
 
     <ion-tab-button tab="tab2" href="/tabs/tab2">
-      <ion-icon aria-hidden="true" name="ellipse"></ion-icon>
-      <ion-label>Tab 2</ion-label>
+      <ion-icon aria-hidden="true" name="fitness"></ion-icon>
+      <ion-label>生活</ion-label>
     </ion-tab-button>
 
     <ion-tab-button tab="tab3" href="/tabs/tab3">
-      <ion-icon aria-hidden="true" name="square"></ion-icon>
-      <ion-label>Tab 3</ion-label>
+      <ion-icon aria-hidden="true" name="people"></ion-icon>
+      <ion-label>智伴</ion-label>
     </ion-tab-button>
   </ion-tab-bar>
 </ion-tabs>

+ 2 - 2
Lifepartner/src/app/tabs/tabs.page.ts

@@ -1,7 +1,7 @@
 import { Component, EnvironmentInjector, inject } from '@angular/core';
 import { IonTabs, IonTabBar, IonTabButton, IonIcon, IonLabel } from '@ionic/angular/standalone';
 import { addIcons } from 'ionicons';
-import { triangle, ellipse, square } from 'ionicons/icons';
+import {   home, fitness , people } from 'ionicons/icons';
 
 @Component({
   selector: 'app-tabs',
@@ -14,6 +14,6 @@ export class TabsPage {
   public environmentInjector = inject(EnvironmentInjector);
 
   constructor() {
-    addIcons({ triangle, ellipse, square });
+    addIcons({home,fitness,people});
   }
 }

+ 1 - 0
Lifepartner/tsconfig.app.json

@@ -11,5 +11,6 @@
   ],
   "include": [
     "src/**/*.d.ts"
+
   ]
 }

+ 0 - 143
lifepartner-prod/README.md

@@ -1,143 +0,0 @@
-# 《好梦》项目策划书
-
--姓名 聂翼伏
--学号 202226701006
--班级 22大数据班
--手机 17779133711
-
-一句话描述:
-《好梦》是一款专注于睡眠质量反馈的应用,面向关注自身睡眠健康的用户,通过分析手机或智能穿戴设备在睡眠期间收集的数据(如间隔录音、心率等),帮助用户了解自身睡眠状况,并提供新一天的状态评估和改善建议。
-
-# 一、项目设想
-	1.  一句话描述项目设想:
-《好梦》是一款专注于睡眠质量反馈的应用,面向关注自身睡眠健康的用户,通过分析手机或智能穿戴设备在睡眠期间收集的数据(如间隔录音、心率等),帮助用户了解自身睡眠状况,并提供新一天的状态评估和改善建议。
-
-	2.	项目的业务流程
-		数据采集:通过手机或智能穿戴设备,实时收集用户在睡眠期间的心率、呼吸频率、体动、环境噪音等数据。
-		数据分析:利用先进的算法,对采集的数据进行处理,生成详细的睡眠报告,包括睡眠时长、深浅睡眠比例、夜间觉醒次数等指标。
-		反馈与建议:根据分析结果,向用户提供个性化的睡眠质量反馈,并提出改善建议,如调整作息时间、优化睡眠环境等。
-		状态评估:结合睡眠数据,评估用户新一天的精神状态,提醒用户注意事项,帮助其更好地规划日常活动。
-		长期监测与调整:持续监测用户的睡眠模式,提供趋势分析,帮助用户长期改善睡眠质量。
-
-	3.	项目的商业模式
-	•	基础功能免费:提供基本的睡眠监测和报告功能,吸引用户使用。
-	•	高级订阅服务:提供深度数据分析、个性化建议、专家咨询等增值服务,用户可按月或按年订阅。
-	•	硬件销售:与智能穿戴设备厂商合作,销售与应用配套的硬件设备,获取销售分成。
-	•	数据服务:在确保用户隐私的前提下,向科研机构、医疗机构提供匿名的睡眠数据,获取数据服务收入。
-
-	4.	相对可行的策略
-	•	初期策略:
-	•	    市场调研:深入了解目标用户的需求和痛点,优化产品功能。
-	•	    产品开发:快速迭代,推出MVP(最小可行产品),验证市场反应。
-	•	    用户获取:通过社交媒体、健康社区等渠道进行推广,吸引早期用户。
-	•	中期策略:
-	•	    功能完善:根据用户反馈,持续优化产品功能,提升用户体验。
-	•	    合作拓展:与医疗机构、睡眠研究中心合作,提升产品专业性和可信度。
-	•	    品牌建设:通过内容营销、用户案例分享等方式,建立品牌形象,增强用户信任。
-	•	长期策略:
-	•	    技术创新:引入人工智能和大数据分析技术,提升数据分析的准确性和深度。
-	•	    国际拓展:在国内市场稳定后,逐步拓展至国际市场,满足全球用户需求。
-	•	    生态构建:打造睡眠健康生态圈,整合相关产品和服务,提供一站式解决方案。
-
-# 二、项目背景
-	1.	政策背景
-        近年来,国家高度重视国民健康,出台多项政策鼓励健康产业的发展。 例如,《“健康中国2030”规划纲要》提出,要提高全民健康水平,强调睡眠健康作为重要组成部分。 此外,国家鼓励发展数字健康服务,为“好梦”项目提供了良好的政策环境。
-![alt text](image/image.png)
-        
-	2.	行业背景
-        随着生活节奏加快和工作压力增加,睡眠问题日益突出。 根据中国睡眠研究会的数据,超过60%的中国人存在不同程度的睡眠问题。 市场上已有多款睡眠监测应用,但大多功能单一,缺乏个性化反馈,用户满意度较低。
-![alt text](image/image-1.png)
-	3.	市场痛点
-	•	数据准确性不足:现有应用多依赖手机传感器,数据采集精度有限,影响分析结果的准确性。
-	•	反馈不够个性化:大多数应用提供的反馈泛泛而谈,缺乏针对性,用户难以从中获益。
-	•	缺乏长期监测:许多应用仅提供单次睡眠报告,无法帮助用户了解长期睡眠趋势,难以指导持续改善。
-![alt text](image/image-2.png)
-
-# 三、产品定位
-	1.  用户分析
-
-	•	目标用户:
-	•	大学生:学习压力大,作息不规律,关注自身健康。
-	•	上班族:工作压力大,睡眠质量差,寻求改善方法。
-	•	中老年人:关注健康,渴望了解自身睡眠状况。
-
-	2.	主要功能
-
-	- 记录梦境:随时打开记录自己的梦境,形成梦境卡片。
-	- 梦境分析:运用AIGC文本生成,根据用户所描述的梦境以及自身的情感体验,来解梦,同时给出建议,引导其积极情绪。
-	- 梦境描绘:运用AIGC图片生成,根据用户描述的梦境场景、元素、风格,生成梦境的印象图片
-
-	•	睡眠监测:通过设备采集数据,实时监测用户睡眠状况。
-	•	智能分析:利用AGI技术,处理多种类型的数据,如音频、心率、运动等。通过融合这些数据,AGI可以更准确
-        地识别用户的睡眠阶段、检测异常事件(如睡眠呼吸暂停)等,从而提供更全面的睡眠分析,也可以根据用户的历史睡眠数据和当前状态,提供个性化的睡眠改善建议,如调整作息时间、优化睡眠环境等,帮助用户提升睡眠质量。
-        智能睡眠分析系统时序图:
-
-```plantuml
-    @startuml
-    actor 用户 as user
-    entity "智能睡眠分析系统" as system
-
-    user -> system: 请求睡眠报告
-    activate system
-    system -> system: 处理睡眠数据
-    system -> user: 显示睡眠质量报告
-    deactivate system
-    @enduml
-```
-
-	•	报告生成:生成详细的睡眠报告,包括睡眠得分、睡眠阶段、建议等。
-	•	个性化建议:根据分析结果,提供针对性的睡眠改善建议。
-	•	趋势分析:长期跟踪用户睡眠数据,分析趋势,提供深度洞察。
-
-    
-# 四、可行性测试
-    1.	数据采集的可行性
-
-	•	设备普及:智能手机和穿戴设备的普及,为数据采集提供了硬件基础。
-	•	技术成熟:现有技术能够准确采集心率、体动等睡眠相关数据。
-
-	2.	数据分析的可行性
-
-	•	AGI技术发展:人工智能技术的发展,使得对睡眠数据的深度分析成为可能。
-	•	算法优化:通过不断优化算法,提高分析的准确性和可靠性。
-
-# 五、产品结构
-    1、竞品分析
-	a.Pillow
-	•	核心功能:
-	•	自动或手动睡眠跟踪。
-	•	睡眠阶段分析(浅睡、深睡、REM)。
-	•	智能闹钟,在最佳睡眠阶段唤醒用户。
-	•	记录和分析打鼾、睡眠谈话等声音。
-	•	与 Apple Health 数据同步。
-	•	优点:
-	•	界面友好,易于使用。
-	•	提供详细的睡眠分析报告。
-	•	支持多种睡眠模式(午睡、整夜睡眠)。
-	•	缺点:
-	•	部分高级功能需付费解锁。
-	•	对于不使用 Apple Watch 的用户,功能可能受限。
-![alt text](image/image-3.png)
-
-	b.	AutoSleep
-	•	核心功能:
-	•	自动睡眠检测,无需手动启动。
-	•	提供睡眠质量评分。
-	•	心率监测与分析。
-	•	与 Apple Health 深度集成。
-	•	优点:
-	•	自动化程度高,用户干预少。
-	•	提供多维度的睡眠数据分析。
-	•	定期更新,持续改进功能。
-	•	缺点:
-	•	界面相对复杂,新用户可能需要时间适应。
-	•	部分功能需要付费解锁。
-![alt text](image/image-4.png)
-
-    2、产品结构图
-![alt text](image/image-5.png)
-
-    3、产品信息图
-![alt text](image/image-6.png)
-
-

BIN
lifepartner-prod/image/image-1.png


BIN
lifepartner-prod/image/image-2.png


BIN
lifepartner-prod/image/image-3.png


BIN
lifepartner-prod/image/image-4.png


BIN
lifepartner-prod/image/image-5.png


BIN
lifepartner-prod/image/image-6.png


BIN
lifepartner-prod/image/image.png


+ 0 - 39
lifepartner-prod/image/产品信息图.md

@@ -1,39 +0,0 @@
-# 好梦应用产品信息图
-
-## 用户信息
-- **姓名**
-- **年龄**
-- **性别**
-- **睡眠目标**
-
-## 睡眠数据
-- **睡眠时长**
-- **睡眠阶段**
-  - 浅睡
-  - 深睡
-  - REM
-- **入睡时间**
-- **醒来时间**
-- **中途醒来次数**
-- **睡眠效率**
-
-## 心率数据
-- **平均心率**
-- **最低心率**
-- **最高心率**
-- **心率变异性**
-
-## 声音数据
-- **打鼾时长**
-- **睡眠谈话片段**
-- **环境噪音水平**
-
-## 建议与提醒
-- **个性化睡眠建议**
-  - 根据历史数据优化睡眠习惯
-  - 改善睡眠环境(如降噪、调节光线)
-- **睡前准备提醒**
-  - 提醒用户调整作息、放松心情
-- **起床后建议**
-  - 提供当天精神状态评估
-  - 推荐适合的晨间活动

+ 0 - 71
lifepartner-prod/image/产品结构图.md

@@ -1,71 +0,0 @@
-# 好梦应用产品结构图
-
-## 首页
-- **今日睡眠概览**
-  - 昨晚睡眠得分
-  - 睡眠时长
-  - 打鼾提醒
-  - 环境噪音反馈
-- **快捷入口**
-  - 历史趋势
-  - 个性化建议
-
-## 数据中心
-- **2C 用户**
-  - **睡眠数据**
-    - 浅睡时长
-    - 深睡时长
-    - REM 时长
-    - 入睡时间、醒来时间
-    - 中途醒来次数
-    - 睡眠效率
-  - **心率数据**
-    - 平均心率
-    - 最低心率
-    - 最高心率
-    - 心率变异性
-  - **声音数据**
-    - 打鼾时长
-    - 睡眠谈话片段
-    - 环境噪音水平
-- **2B 企业/机构**
-  - **数据接口**
-    - 开放API
-    - 批量导出功能
-  - **数据分析后台**
-    - 趋势分析
-    - 企业睡眠健康报告
-
-## 建议与反馈
-- **个性化建议**
-  - 最佳入睡时间
-  - 改善睡眠环境
-- **睡前准备提醒**
-  - 降低光线
-  - 降噪设备推荐
-- **起床后建议**
-  - 精神状态评估
-  - 早间活力建议
-
-## 企业合作模块
-- **企业健康管理**
-  - 团队睡眠数据统计
-  - 健康改善方案定制
-- **医疗合作服务**
-  - 睡眠报告整合
-  - 专家咨询入口
-
-## 设备管理
-- **数据同步**
-  - 智能手环/手机联动
-  - 健康App同步
-- **用户信息管理**
-  - 姓名
-  - 年龄
-  - 性别
-  - 睡眠目标
-- **数据隐私管理**
-  - 数据加密
-  - 云端备份与恢复
-- **设备绑定**
-  - 添加/解绑智能设备

+ 0 - 52
tab1.page.html

@@ -1,52 +0,0 @@
-<ion-header>
-  <ion-toolbar>
-    <ion-buttons slot="start">
-      <ion-button>
-        <ion-icon name="logo-android"></ion-icon>
-      </ion-button>
-    </ion-buttons>
-    <ion-title>生活智伴</ion-title>
-    <ion-buttons slot="end">
-      <ion-button (click)="openSettings()">
-        <ion-icon name="settings"></ion-icon>
-      </ion-button>
-      <ion-button (click)="openProfile()">
-        <ion-icon name="person-circle"></ion-icon>
-      </ion-button>
-    </ion-buttons>
-  </ion-toolbar>
-</ion-header>
-
-<ion-content>
-  <!-- 注册与登录 -->
-  <div class="login-register">
-    <ion-button expand="full" (click)="goToRegister()">注册</ion-button>
-    <ion-button expand="full" (click)="goToLogin()">登录</ion-button>
-  </div>
-
-  <!-- 今日天气 -->
-  <div class="weather">
-    <h3>今日天气</h3>
-    <p>{{ weather?.temperature }}°C</p>
-    <p>{{ weather?.condition }}</p>
-    <ion-icon [name]="weather?.icon"></ion-icon>
-  </div>
-
-  <!-- 待办事项 -->
-  <div class="todo-list">
-    <h3>待办事项</h3>
-    <ion-list>
-      <ion-item *ngFor="let todo of todos">
-        <ion-label>{{ todo.text }}</ion-label>
-        <ion-checkbox [(ngModel)]="todo.completed"></ion-checkbox>
-      </ion-item>
-    </ion-list>
-  </div>
-
-  <!-- 实时通勤交通状况 -->
-  <div class="traffic-status">
-    <h3>实时交通状况</h3>
-    <p>{{ traffic?.status }}</p>
-    <ion-button expand="full" (click)="viewTrafficDetails()">查看详情</ion-button>
-  </div>
-</ion-content>

BIN
tab1.page.scss


+ 0 - 18
tab1.page.spec.ts

@@ -1,18 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { Tab1Page } from './tab1.page';
-
-describe('Tab1Page', () => {
-  let component: Tab1Page;
-  let fixture: ComponentFixture<Tab1Page>;
-
-  beforeEach(async () => {
-    fixture = TestBed.createComponent(Tab1Page);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});