cainiao-hue 4 months ago
parent
commit
097787742e

+ 0 - 0
soul-app/src/app/edit-detail/edit-detail.component.scss


+ 36 - 0
soul-app/src/app/tab1/README.md

@@ -0,0 +1,36 @@
+首页结构
+1. 顶部搜索栏
+2. 心理咨询模块
+区域: 主要功能区
+智能匹配功能
+组件: 用户描述输入框和匹配按钮
+元素:
+用户描述输入框: 提示用户输入心理状态或问题
+示例: “我最近感到很焦虑”
+匹配按钮:
+文本: “开始心理咨询”
+点击后进入聊天界面
+聊天机器人推荐
+组件: 聊天机器人卡片(包含机器人名称、简介、专业领域)
+元素:
+机器人名称: “情感陪聊助手”
+简介: “专注于情绪管理与心理疏导”
+开始聊天按钮: 点击后进入实时聊天界面
+3. 热门话题模块
+区域: 热门话题推荐区
+话题列表
+组件: 话题卡片(包含话题标题、简短描述)
+元素:
+话题标题: “如何应对压力”
+简短描述: “分享应对生活压力的方法与技巧”
+查看详情按钮: 点击后进入话题讨论页面
+4. 用户评价模块
+区域: 用户反馈区
+评价列表
+组件: 用户评价卡片(包含用户头像、昵称、评价内容、评分)
+元素:
+用户头像: 显示用户头像
+昵称: “小明”
+评价内容: “这款应用真的帮助我缓解了焦虑,感谢陪聊助手!”
+评分: 星级评分(1-5星)
+查看更多评价链接: 点击后进入用户评价页面

+ 4 - 3
soul-app/src/app/tab1/tab1.page.html

@@ -7,6 +7,7 @@
   </ion-toolbar>
 </ion-header>
 <ion-content [fullscreen]="true">
+
   <section>
   <ion-card>
     <ion-card-header>
@@ -28,6 +29,7 @@
     </ion-card-content>
   </ion-card>
 </section>
+
 <section>
   <ion-card>
     <ion-card-header>
@@ -40,13 +42,13 @@
             <h2>{{ topic.title }}</h2>
             <p>{{ topic.description }}</p>
           </ion-label>
-          <ion-button (click)="viewDetails()">查看详情</ion-button>
-          <!--<ion-button slot="end" [routerLink]="['/topic', topic.id]" (click)="viewDetails()">查看详情</ion-button>-->
+          <ion-button (click)="viewDetails(topic.id)">查看详情</ion-button>
         </ion-item>
       </ion-list>
     </ion-card-content>
   </ion-card>
 </section>
+
 <section>
   <ion-card>
     <ion-card-header>
@@ -67,5 +69,4 @@
     </ion-card-content>
   </ion-card>
 </section>
-
 </ion-content>

+ 6 - 17
soul-app/src/app/tab1/tab1.page.scss

@@ -10,16 +10,16 @@ ion-content {
     box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* 阴影效果 */
   }
   
-  /* 设置标题的样式 */
-  ion-card-title {
-    font-size: 1.5rem; /* 标题字体大小 */
-    font-weight: bold; /* 加粗 */
-  }
-  
   /* 设置列表项的样式 */
   ion-item {
     margin: 5px 0; /* 列表项之间的间距 */
   }
+  ion-button {
+    font-size: 15px; /* 增大字体大小 */
+    margin-top: 8px; /* 上间距,仅在需要时添加 */
+    text-transform: none; /* 按钮文字不变形 */
+    height: 35px;
+}
   
   /* 设置搜索框的样式 */
   ion-searchbar {
@@ -28,17 +28,6 @@ ion-content {
     font-size: 16px; /* 字体大小 */
   }
   
-  /* 设置滑块的样式 */
-  ion-slides {
-    margin: 10px 0; /* 滑块与其他内容之间的间距 */
-  }
-  
-  /* 设置滑块中的图片样式 */
-  ion-slide img {
-    width: 100%; /* 图片宽度100% */
-    border-radius: 10px; /* 图片圆角 */
-  }
-  
   /* 设置用户评价星星的样式 */
   ion-icon[name="star"] {
     color: gold; /* 星星颜色 */

+ 30 - 9
soul-app/src/app/tab1/tab1.page.ts

@@ -1,10 +1,11 @@
 import { Component,CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
 import { IonHeader, IonToolbar, IonTitle, IonContent, IonAvatar, IonButton, IonButtons, IonCard, IonCardContent, IonCardHeader, IonLabel, IonList,
-   IonItem,IonIcon,IonCardTitle,IonInput,IonSearchbar} from '@ionic/angular/standalone';
+   IonItem,IonIcon,IonInput,IonSearchbar} from '@ionic/angular/standalone';
 import { ExploreContainerComponent } from '../explore-container/explore-container.component';
 import { CommonModule } from '@angular/common';
-import { EditDetailComponent } from '../edit-detail/edit-detail.component';
+import {  TopicDetailComponent } from '../topic-detail/topic-detail.component';
 import { Router } from '@angular/router';
+import { TopicDetail2Component } from '../topic-detail2/topic-detail2.component';
 @Component({
   selector: 'app-tab1',
   templateUrl: 'tab1.page.html',
@@ -12,9 +13,9 @@ import { Router } from '@angular/router';
   standalone: true,
   imports: [IonHeader,IonToolbar,IonTitle,IonContent,ExploreContainerComponent,
     IonButtons,IonButton,IonIcon,
-    IonCard,IonCardContent,IonCardHeader,IonCardTitle,
+    IonCard,IonCardContent,IonCardHeader,
     IonLabel,IonList,IonItem,IonAvatar,IonInput,IonSearchbar,
-    CommonModule,EditDetailComponent
+    CommonModule,TopicDetailComponent,TopicDetail2Component
   ],
   schemas: [CUSTOM_ELEMENTS_SCHEMA],
 })
@@ -45,17 +46,20 @@ export class Tab1Page {
     {
       id: 1,
       title: '如何管理焦虑情绪',
-      description: '了解焦虑的来源及应对策略。'
+      description: '了解焦虑的来源及应对策略',
+      detailRoute: 'topic-detail',
     },
     {
       id: 2,
       title: '克服抑郁的有效方法',
-      description: '探索抑郁症的应对技巧。'
+      description: '探索抑郁症的应对技巧',
+      detailRoute: 'topic-detail2'
     },
     {
       id: 3,
       title: '提升自信心的技巧',
-      description: '学习如何建立自信。'
+      description: '学习如何建立自信',
+      detailRoute: 'topic-detail2'
     }
   ];
   reviews = [
@@ -75,11 +79,28 @@ export class Tab1Page {
       rating: 4
     }
   ];
+
   constructor(private router: Router) {
     // 其他构造函数代码
   }
-  viewDetails(){//查看详情
-    this.router.navigate(['/tabs/detail'])
+  viewDetails(topicId: number): void {
+    let route: string;
+    switch (topicId) {
+      case 1:
+        route = 'topic-detail';
+        break;
+      case 2:
+        route = 'topic-detail2';
+        break;
+      case 3:
+        // 如果有第三个详情页面
+        route = 'another-detail';
+        break;
+      default:
+        route = 'topic-detail'; // 默认路由
+    }
+    // 导航到指定的路由,并可以传递参数(如果需要)
+    this.router.navigate([`tabs/${route}`, { id: topicId }]);
   }
   bookConsultation(consultant: any) {
     // 预约咨询逻辑

+ 7 - 2
soul-app/src/app/tabs/tabs.routes.ts

@@ -22,9 +22,14 @@ export const routes: Routes = [
           import('../tab3/tab3.page').then((m) => m.Tab3Page),
       },
       {
-        path: 'detail',
+        path: 'topic-detail',
         loadComponent: () =>
-          import('../edit-detail/edit-detail.component').then((m) => m.EditDetailComponent),
+          import('../topic-detail/topic-detail.component').then((m) => m.TopicDetailComponent),
+      },
+      {
+        path: 'topic-detail2',
+        loadComponent: () =>
+          import('../topic-detail2/topic-detail2.component').then((m) => m.TopicDetail2Component),
       },
       {
         path: '',

+ 0 - 0
soul-app/src/app/edit-detail/README.md → soul-app/src/app/topic-detail/README.md


+ 2 - 2
soul-app/src/app/edit-detail/edit-detail.component.html → soul-app/src/app/topic-detail/topic-detail.component.html

@@ -1,6 +1,6 @@
 <ion-header>
   <ion-toolbar>
-    <ion-title>有效管理焦虑情绪的指南</ion-title>
+    <ion-title>管理焦虑情绪的指南</ion-title>
   </ion-toolbar>
 </ion-header>
 
@@ -69,4 +69,4 @@
       </ion-item>
     </ion-list>
   </section>
-</ion-content>
+</ion-content>

+ 28 - 0
soul-app/src/app/topic-detail/topic-detail.component.scss

@@ -0,0 +1,28 @@
+/* 设置页面背景色 */
+ion-content {
+    --background: #ffffff; /* 白色背景 */
+}
+ion-title {
+    font-size: 24px; /* 增大字体大小 */
+    font-weight: bold; /* 加粗 */
+}
+/* 设置卡片的样式 */
+ion-list {
+    margin: 10px; /* 卡片之间的间距 */
+    border-radius: 10px; /* 圆角效果 */
+    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* 阴影效果 */
+  }
+
+/* 设置列表项的样式 */
+ion-item {
+    margin: 5px 0; /* 列表项之间的间距 */
+  }
+
+/* 设置按钮的样式(如果按钮不在顶部方框内) */
+ion-button {
+    font-size: 15px; /* 增大字体大小 */
+    padding: 8px 16px; /* 内边距 */
+    margin-top: 8px; /* 上间距,仅在需要时添加 */
+    text-transform: none; /* 按钮文字不变形 */
+    height: 50px;
+}

+ 1 - 1
soul-app/src/app/edit-detail/edit-detail.component.spec.ts → soul-app/src/app/topic-detail/topic-detail.component.spec.ts

@@ -1,6 +1,6 @@
 import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
 
-import { EditDetailComponent } from './edit-detail.component';
+import { EditDetailComponent } from './topic-detail.component';
 
 describe('EditDetailComponent', () => {
   let component: EditDetailComponent;

+ 12 - 12
soul-app/src/app/edit-detail/edit-detail.component.ts → soul-app/src/app/topic-detail/topic-detail.component.ts

@@ -5,33 +5,33 @@ import { IonHeader,IonButton, IonContent, IonIcon, IonItem, IonLabel, IonList,
 import { ExploreContainerComponent } from '../explore-container/explore-container.component';
 
 @Component({
-  selector: 'app-edit-detail',
-  templateUrl: './edit-detail.component.html',
-  styleUrls: ['./edit-detail.component.scss'],
+  selector: 'app-topic-detail',
+  templateUrl: './topic-detail.component.html',
+  styleUrls: ['./topic-detail.component.scss'],
   standalone: true,
   imports: [IonHeader,IonToolbar,IonTitle,IonContent,ExploreContainerComponent,
     IonList,IonListHeader,IonItem,IonInput,IonSearchbar,
     IonLabel,IonIcon,IonButton,CommonModule
   ]
 })
-export class EditDetailComponent  implements OnInit {
+export class TopicDetailComponent  implements OnInit {
   tips = [
     {
       title: '深呼吸',
-      description: '通过深呼吸来放松身心,缓解焦虑',
-      details: '深呼吸可以帮助你放慢心率,增加氧气摄入,改善心理状态',
+      description: '通过深呼吸来放松身心,缓解焦虑',
+      details: '深呼吸可以帮助你放慢心率,增加氧气摄入,改善心理状态',
       expanded: false,
     },
     {
       title: '运动',
-      description: '规律的运动有助于释放压力和焦虑',
-      details: '运动可以释放内啡肽,提升你的情绪',
+      description: '规律的运动有助于释放压力和焦虑',
+      details: '运动可以释放内啡肽,提升你的情绪',
       expanded: false,
     },
     {
       title: '正念冥想',
-      description: '通过正念练习来关注当下,减少焦虑',
-      details: '正念冥想可以帮助你更好地管理情绪,提升专注力',
+      description: '通过正念练习来关注当下,减少焦虑',
+      details: '正念冥想可以帮助你更好地管理情绪,提升专注力',
       expanded: false,
     },
   ];
@@ -39,13 +39,13 @@ export class EditDetailComponent  implements OnInit {
   tools = [
     {
       name: '焦虑管理APP',
-      description: '帮助你记录情绪,提供放松练习',
+      description: '帮助你记录情绪,提供放松练习',
       link: 'https://www.18183.com/down/2968763.html',
       buttonText: '下载APP',
     },
     {
       name: '在线冥想课程',
-      description: '提供多种冥想练习,帮助你减轻焦虑',
+      description: '提供多种冥想练习,帮助你减轻焦虑',
       link: 'https://www.bilibili.com/video/BV1gdUpYyEiw/',
       buttonText: '查看视频',
     },

+ 30 - 0
soul-app/src/app/topic-detail2/README.md

@@ -0,0 +1,30 @@
+ng g component topic-detail2 --standalone
+页面结构
+1.克服抑郁的方法区 
+组件: 方法列表 
+元素: 列表项(每个方法可以展开) 
+示例内容: 
+方法一: 寻求专业帮助 
+描述: “咨询心理医生或心理治疗师,获得专业的支持和指导。” 
+方法二: 建立健康的生活方式
+描述: “保持规律的作息、均衡的饮食和适量的运动。” 
+方法三: 与他人交流 
+描述: “与朋友和家人分享你的感受,建立支持网络。”
+2.自助工具区 
+组件: 自助工具推荐 
+元素: 工具名称 工具描述 使用链接或下载按钮 
+示例内容: 工具一: 抑郁管理APP 
+描述: “帮助你记录情绪变化,提供自助练习。” 
+按钮: “下载APP” 
+工具二: 在线支持小组 
+描述: “与其他抑郁症患者交流,分享经验。” 
+按钮: “加入小组”
+3.资源区 
+组件: 文章和视频推荐 
+元素: 文章标题 视频缩略图 资源链接 
+示例内容: 文章: “克服抑郁的十大技巧” 链接: “阅读更多” 视频: “如何面对抑郁” 链接: “观看视频”
+4.社区支持区 
+组件: 社区讨论 
+元素: 讨论主题 参与链接 
+示例内容: 主题: “分享你的抑郁克服故事” 链接: “参与讨论” 
+请您作为一名专业的Ionic前端工程师,帮我运用ionic v7 或v8及以上的angular版本standalone模式编写,选择合适的ionic组件来重构以上产品页面的各个区域和内容,如果涉及到图形效果请用ion-icon。并给出整个页面的topic-detail2.component.html代码还有topic-detail2.component.ts代码

+ 72 - 0
soul-app/src/app/topic-detail2/topic-detail2.component.html

@@ -0,0 +1,72 @@
+<ion-header>
+  <ion-toolbar>
+    <ion-title>克服抑郁的有效方法</ion-title>
+  </ion-toolbar>
+</ion-header>
+
+<ion-content>
+  <!-- 克服抑郁的方法区 -->
+  <section>
+    <ion-list>
+      <ion-list-header>
+        <ion-label>克服抑郁的方法</ion-label>
+      </ion-list-header>
+      <ion-item *ngFor="let method of methods">
+        <ion-label>
+          <h2>{{ method.title }}</h2>
+          <p>{{ method.description }}</p>
+        </ion-label>
+        <ion-icon name="chevron-down" slot="end" (click)="method.expanded = !method.expanded"></ion-icon>
+        <ion-item *ngIf="method.expanded">
+          <ion-label>{{ method.details }}</ion-label>
+        </ion-item>
+      </ion-item>
+    </ion-list>
+  </section>
+
+  <!-- 自助工具区 -->
+  <section>
+    <ion-list>
+      <ion-list-header>
+        <ion-label>自助工具推荐</ion-label>
+      </ion-list-header>
+      <ion-item *ngFor="let tool of tools">
+        <ion-label>
+          <h2>{{ tool.name }}</h2>
+          <p>{{ tool.description }}</p>
+        </ion-label>
+        <ion-button slot="end" [href]="tool.link">{{ tool.buttonText }}</ion-button>
+      </ion-item>
+    </ion-list>
+  </section>
+
+  <!-- 资源区 -->
+  <section>
+    <ion-list>
+      <ion-list-header>
+        <ion-label>相关文章和视频</ion-label>
+      </ion-list-header>
+      <ion-item *ngFor="let resource of resources">
+        <ion-label>
+          <h2>{{ resource.title }}</h2>
+        </ion-label>
+        <ion-button slot="end" [href]="resource.link">{{ resource.buttonText }}</ion-button>
+      </ion-item>
+    </ion-list>
+  </section>
+
+  <!-- 社区支持区 -->
+  <section>
+    <ion-list>
+      <ion-list-header>
+        <ion-label>社区讨论</ion-label>
+      </ion-list-header>
+      <ion-item *ngFor="let discussion of discussions">
+        <ion-label>
+          <h2>{{ discussion.title }}</h2>
+        </ion-label>
+        <ion-button slot="end" [href]="discussion.link">参与讨论</ion-button>
+      </ion-item>
+    </ion-list>
+  </section>
+</ion-content>

+ 28 - 0
soul-app/src/app/topic-detail2/topic-detail2.component.scss

@@ -0,0 +1,28 @@
+/* 设置页面背景色 */
+ion-content {
+    --background: #ffffff; /* 白色背景 */
+}
+
+/* 设置卡片的样式 */
+ion-list {
+    margin: 10px; /* 卡片之间的间距 */
+    border-radius: 10px; /* 圆角效果 */
+    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* 阴影效果 */
+  }
+
+/* 设置列表项的样式 */
+ion-item {
+    margin: 5px 0; /* 列表项之间的间距 */
+  }
+
+/* 设置按钮的样式(如果按钮不在顶部方框内) */
+ion-button {
+    font-size: 15px; /* 增大字体大小 */
+    margin-top: 8px; /* 上间距,仅在需要时添加 */
+    text-transform: none; /* 按钮文字不变形 */
+    height: 35px;
+}
+ion-title {
+  font-size: 24px; /* 增大字体大小 */
+  font-weight: bold; /* 加粗 */
+}

+ 22 - 0
soul-app/src/app/topic-detail2/topic-detail2.component.spec.ts

@@ -0,0 +1,22 @@
+import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
+
+import { TopicDetail2Component } from './topic-detail2.component';
+
+describe('TopicDetail2Component', () => {
+  let component: TopicDetail2Component;
+  let fixture: ComponentFixture<TopicDetail2Component>;
+
+  beforeEach(waitForAsync(() => {
+    TestBed.configureTestingModule({
+      imports: [TopicDetail2Component],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(TopicDetail2Component);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  }));
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 77 - 0
soul-app/src/app/topic-detail2/topic-detail2.component.ts

@@ -0,0 +1,77 @@
+import { CommonModule } from '@angular/common';
+import { Component, OnInit } from '@angular/core';
+import { IonButton, IonContent, IonHeader, IonIcon, IonInput, IonItem, IonLabel,
+   IonList, IonListHeader, IonSearchbar, IonTitle, IonToolbar } from '@ionic/angular/standalone';
+import { ExploreContainerComponent } from '../explore-container/explore-container.component';
+
+@Component({
+  selector: 'app-topic-detail2',
+  templateUrl: './topic-detail2.component.html',
+  styleUrls: ['./topic-detail2.component.scss'],
+  standalone: true,
+  imports:[IonHeader,IonToolbar,IonTitle,IonContent,ExploreContainerComponent,
+    IonList,IonListHeader,IonLabel,IonItem,IonIcon,
+  IonButton,IonInput,IonSearchbar,
+  CommonModule]
+})
+export class TopicDetail2Component  implements OnInit {
+  methods = [
+    {
+      title: '寻求专业帮助',
+      description: '咨询心理医生或心理治疗师,获得专业的支持和指导',
+      details: '专业的心理咨询可以帮助你更好地理解自己的情绪,并提供有效的应对策略',
+      expanded: false,
+    },
+    {
+      title: '建立健康的生活方式',
+      description: '保持规律的作息、均衡的饮食和适量的运动',
+      details: '健康的生活方式可以显著改善你的心理状态,增强抵抗抑郁的能力',
+      expanded: false,
+    },
+    {
+      title: '与他人交流',
+      description: '与朋友和家人分享你的感受,建立支持网络',
+      details: '交流可以减轻孤独感,增强社会支持,帮助你更好地应对抑郁',
+      expanded: false,
+    },
+  ];
+
+  tools = [
+    {
+      name: '抑郁管理APP',
+      description: '帮助你记录情绪变化,提供自助练习',
+      link: 'https://bbs.51766.com/soft/712244.html',
+      buttonText: '下载APP',
+    },
+    {
+      name: '在线支持小组',
+      description: '与其他抑郁症患者交流,分享经验',
+      link: 'https://www.douban.com/group/739850/',
+      buttonText: '加入小组',
+    },
+  ];
+
+  resources = [
+    {
+      title: '克服抑郁的十大技巧',
+      link: 'https://m.baidu.com/bh/m/detail/ar_6218671750317725196',
+      buttonText: '阅读更多',
+    },
+    {
+      title: '如何面对抑郁',
+      link: 'https://m.baidu.com/bh/m/detail/ar_12253741886669041142',
+      buttonText: '查看更多',
+    },
+  ];
+
+  discussions = [
+    {
+      title: '分享你的抑郁克服故事',
+      link: 'https://example.com/community',
+    },
+  ];
+  constructor() { }
+
+  ngOnInit() {}
+
+}