Procházet zdrojové kódy

Merge branch 'master' of http://git.fmode.cn:3000/0225273/APPmy

0225273 před 4 měsíci
rodič
revize
83e6905edf
32 změnil soubory, kde provedl 609 přidání a 238 odebrání
  1. 0 0
      Assets/avatar.jpg
  2. 4 1
      src/app/app-routing.module.ts
  3. 17 0
      src/app/comment-reply/comment-reply-routing.module.ts
  4. 20 0
      src/app/comment-reply/comment-reply.module.ts
  5. 13 0
      src/app/comment-reply/comment-reply.page.html
  6. 0 0
      src/app/comment-reply/comment-reply.page.scss
  7. 17 0
      src/app/comment-reply/comment-reply.page.spec.ts
  8. 15 0
      src/app/comment-reply/comment-reply.page.ts
  9. 17 0
      src/app/follow/follow-routing.module.ts
  10. 20 0
      src/app/follow/follow.module.ts
  11. 13 0
      src/app/follow/follow.page.html
  12. 0 0
      src/app/follow/follow.page.scss
  13. 17 0
      src/app/follow/follow.page.spec.ts
  14. 15 0
      src/app/follow/follow.page.ts
  15. 17 0
      src/app/like-favorite/like-favorite-routing.module.ts
  16. 20 0
      src/app/like-favorite/like-favorite.module.ts
  17. 13 0
      src/app/like-favorite/like-favorite.page.html
  18. 0 0
      src/app/like-favorite/like-favorite.page.scss
  19. 17 0
      src/app/like-favorite/like-favorite.page.spec.ts
  20. 15 0
      src/app/like-favorite/like-favorite.page.ts
  21. 17 0
      src/app/system-message/system-message-routing.module.ts
  22. 20 0
      src/app/system-message/system-message.module.ts
  23. 13 0
      src/app/system-message/system-message.page.html
  24. 0 0
      src/app/system-message/system-message.page.scss
  25. 17 0
      src/app/system-message/system-message.page.spec.ts
  26. 15 0
      src/app/system-message/system-message.page.ts
  27. 153 175
      src/app/tab2/tab2.page.html
  28. 1 1
      src/app/tab2/tab2.page.scss
  29. 112 46
      src/app/tab2/tab2.page.ts
  30. 6 7
      src/app/tab3/tab3.page.html
  31. 0 6
      src/app/tab3/tab3.page.scss
  32. 5 2
      src/app/tab3/tab3.page.ts

+ 0 - 0
asset/img/大师.jpeg → Assets/avatar.jpg


+ 4 - 1
src/app/app-routing.module.ts

@@ -10,7 +10,10 @@ const routes: Routes = [
     path: 'tab4',
     loadChildren: () => import('./tab4/tab4.module').then( m => m.Tab4PageModule)
   },
-  
+  { path: 'comment-reply', loadChildren: () => import('./comment-reply/comment-reply.module').then(m => m.CommentReplyPageModule) },
+  { path: 'like-favorite', loadChildren: () => import('./like-favorite/like-favorite.module').then(m => m.LikeFavoritePageModule) },
+  { path: 'follow', loadChildren: () => import('./follow/follow.module').then(m => m.FollowPageModule) },
+  { path: 'system-message', loadChildren: () => import('./system-message/system-message.module').then(m => m.SystemMessagePageModule) },
 ];
 @NgModule({
   imports: [

+ 17 - 0
src/app/comment-reply/comment-reply-routing.module.ts

@@ -0,0 +1,17 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+
+import { CommentReplyPage } from './comment-reply.page';
+
+const routes: Routes = [
+  {
+    path: '',
+    component: CommentReplyPage
+  }
+];
+
+@NgModule({
+  imports: [RouterModule.forChild(routes)],
+  exports: [RouterModule],
+})
+export class CommentReplyPageRoutingModule {}

+ 20 - 0
src/app/comment-reply/comment-reply.module.ts

@@ -0,0 +1,20 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { FormsModule } from '@angular/forms';
+
+import { IonicModule } from '@ionic/angular';
+
+import { CommentReplyPageRoutingModule } from './comment-reply-routing.module';
+
+import { CommentReplyPage } from './comment-reply.page';
+
+@NgModule({
+  imports: [
+    CommonModule,
+    FormsModule,
+    IonicModule,
+    CommentReplyPageRoutingModule
+  ],
+  declarations: [CommentReplyPage]
+})
+export class CommentReplyPageModule {}

+ 13 - 0
src/app/comment-reply/comment-reply.page.html

@@ -0,0 +1,13 @@
+<ion-header [translucent]="true">
+  <ion-toolbar>
+    <ion-title>comment-reply</ion-title>
+  </ion-toolbar>
+</ion-header>
+
+<ion-content [fullscreen]="true">
+  <ion-header collapse="condense">
+    <ion-toolbar>
+      <ion-title size="large">comment-reply</ion-title>
+    </ion-toolbar>
+  </ion-header>
+</ion-content>

+ 0 - 0
src/app/comment-reply/comment-reply.page.scss


+ 17 - 0
src/app/comment-reply/comment-reply.page.spec.ts

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

+ 15 - 0
src/app/comment-reply/comment-reply.page.ts

@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+  selector: 'app-comment-reply',
+  templateUrl: './comment-reply.page.html',
+  styleUrls: ['./comment-reply.page.scss'],
+})
+export class CommentReplyPage implements OnInit {
+
+  constructor() { }
+
+  ngOnInit() {
+  }
+
+}

+ 17 - 0
src/app/follow/follow-routing.module.ts

@@ -0,0 +1,17 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+
+import { FollowPage } from './follow.page';
+
+const routes: Routes = [
+  {
+    path: '',
+    component: FollowPage
+  }
+];
+
+@NgModule({
+  imports: [RouterModule.forChild(routes)],
+  exports: [RouterModule],
+})
+export class FollowPageRoutingModule {}

+ 20 - 0
src/app/follow/follow.module.ts

@@ -0,0 +1,20 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { FormsModule } from '@angular/forms';
+
+import { IonicModule } from '@ionic/angular';
+
+import { FollowPageRoutingModule } from './follow-routing.module';
+
+import { FollowPage } from './follow.page';
+
+@NgModule({
+  imports: [
+    CommonModule,
+    FormsModule,
+    IonicModule,
+    FollowPageRoutingModule
+  ],
+  declarations: [FollowPage]
+})
+export class FollowPageModule {}

+ 13 - 0
src/app/follow/follow.page.html

@@ -0,0 +1,13 @@
+<ion-header [translucent]="true">
+  <ion-toolbar>
+    <ion-title>follow</ion-title>
+  </ion-toolbar>
+</ion-header>
+
+<ion-content [fullscreen]="true">
+  <ion-header collapse="condense">
+    <ion-toolbar>
+      <ion-title size="large">follow</ion-title>
+    </ion-toolbar>
+  </ion-header>
+</ion-content>

+ 0 - 0
src/app/follow/follow.page.scss


+ 17 - 0
src/app/follow/follow.page.spec.ts

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

+ 15 - 0
src/app/follow/follow.page.ts

@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+  selector: 'app-follow',
+  templateUrl: './follow.page.html',
+  styleUrls: ['./follow.page.scss'],
+})
+export class FollowPage implements OnInit {
+
+  constructor() { }
+
+  ngOnInit() {
+  }
+
+}

+ 17 - 0
src/app/like-favorite/like-favorite-routing.module.ts

@@ -0,0 +1,17 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+
+import { LikeFavoritePage } from './like-favorite.page';
+
+const routes: Routes = [
+  {
+    path: '',
+    component: LikeFavoritePage
+  }
+];
+
+@NgModule({
+  imports: [RouterModule.forChild(routes)],
+  exports: [RouterModule],
+})
+export class LikeFavoritePageRoutingModule {}

+ 20 - 0
src/app/like-favorite/like-favorite.module.ts

@@ -0,0 +1,20 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { FormsModule } from '@angular/forms';
+
+import { IonicModule } from '@ionic/angular';
+
+import { LikeFavoritePageRoutingModule } from './like-favorite-routing.module';
+
+import { LikeFavoritePage } from './like-favorite.page';
+
+@NgModule({
+  imports: [
+    CommonModule,
+    FormsModule,
+    IonicModule,
+    LikeFavoritePageRoutingModule
+  ],
+  declarations: [LikeFavoritePage]
+})
+export class LikeFavoritePageModule {}

+ 13 - 0
src/app/like-favorite/like-favorite.page.html

@@ -0,0 +1,13 @@
+<ion-header [translucent]="true">
+  <ion-toolbar>
+    <ion-title>like-favorite</ion-title>
+  </ion-toolbar>
+</ion-header>
+
+<ion-content [fullscreen]="true">
+  <ion-header collapse="condense">
+    <ion-toolbar>
+      <ion-title size="large">like-favorite</ion-title>
+    </ion-toolbar>
+  </ion-header>
+</ion-content>

+ 0 - 0
src/app/like-favorite/like-favorite.page.scss


+ 17 - 0
src/app/like-favorite/like-favorite.page.spec.ts

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

+ 15 - 0
src/app/like-favorite/like-favorite.page.ts

@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+  selector: 'app-like-favorite',
+  templateUrl: './like-favorite.page.html',
+  styleUrls: ['./like-favorite.page.scss'],
+})
+export class LikeFavoritePage implements OnInit {
+
+  constructor() { }
+
+  ngOnInit() {
+  }
+
+}

+ 17 - 0
src/app/system-message/system-message-routing.module.ts

@@ -0,0 +1,17 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+
+import { SystemMessagePage } from './system-message.page';
+
+const routes: Routes = [
+  {
+    path: '',
+    component: SystemMessagePage
+  }
+];
+
+@NgModule({
+  imports: [RouterModule.forChild(routes)],
+  exports: [RouterModule],
+})
+export class SystemMessagePageRoutingModule {}

+ 20 - 0
src/app/system-message/system-message.module.ts

@@ -0,0 +1,20 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { FormsModule } from '@angular/forms';
+
+import { IonicModule } from '@ionic/angular';
+
+import { SystemMessagePageRoutingModule } from './system-message-routing.module';
+
+import { SystemMessagePage } from './system-message.page';
+
+@NgModule({
+  imports: [
+    CommonModule,
+    FormsModule,
+    IonicModule,
+    SystemMessagePageRoutingModule
+  ],
+  declarations: [SystemMessagePage]
+})
+export class SystemMessagePageModule {}

+ 13 - 0
src/app/system-message/system-message.page.html

@@ -0,0 +1,13 @@
+<ion-header [translucent]="true">
+  <ion-toolbar>
+    <ion-title>system-message</ion-title>
+  </ion-toolbar>
+</ion-header>
+
+<ion-content [fullscreen]="true">
+  <ion-header collapse="condense">
+    <ion-toolbar>
+      <ion-title size="large">system-message</ion-title>
+    </ion-toolbar>
+  </ion-header>
+</ion-content>

+ 0 - 0
src/app/system-message/system-message.page.scss


+ 17 - 0
src/app/system-message/system-message.page.spec.ts

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

+ 15 - 0
src/app/system-message/system-message.page.ts

@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+  selector: 'app-system-message',
+  templateUrl: './system-message.page.html',
+  styleUrls: ['./system-message.page.scss'],
+})
+export class SystemMessagePage implements OnInit {
+
+  constructor() { }
+
+  ngOnInit() {
+  }
+
+}

+ 153 - 175
src/app/tab2/tab2.page.html

@@ -76,188 +76,166 @@
         </ion-card-content>
       </ion-card>
     </div>
-    <div *ngIf="selectedSegment === 'company'">
-      <!-- 公司详情页内容 -->
-    </div>
 
     <!-- 设计机构详情页 -->
     <div *ngIf="selectedSegment === 'design'">
-      <!-- 机构详情页内容 -->
-      <div *ngIf="selectedSegment === 'design'">
-        <!-- 设计机构详情页 -->
-        <ion-card>
-          <ion-card-header>
-            机构名称: {{ agency.name }}
-          </ion-card-header>
-          <ion-card-content>
-            <ion-item>
-              <ion-label>星级评分:</ion-label>
-              <ion-text>{{ agency.starRating }}</ion-text>
-            </ion-item>
-            <ion-item>
-              <ion-label>评价数量:</ion-label>
-              <ion-text>{{ agency.reviewCount }}</ion-text>
-            </ion-item>
-            <ion-item>
-              <ion-label>机构简介:</ion-label>
-              <ion-text>{{ agency.description }}</ion-text>
-            </ion-item>
-            <!-- 机构介绍 -->
-            <ion-card>
-              <ion-card-header>
-                机构介绍
-              </ion-card-header>
-              <ion-card-content>
-                <ion-list>
-                  <ion-item>
-                    <ion-label>服务:</ion-label>
-                    <ion-text>{{ agency.services }}</ion-text>
-                  </ion-item>
-                  <ion-item>
-                    <ion-label>优势:</ion-label>
-                    <ion-text>{{ agency.advantages }}</ion-text>
-                  </ion-item>
-                  <ion-item>
-                    <ion-label>案例:</ion-label>
-                    <ion-text>{{ agency.cases }}</ion-text>
-                  </ion-item>
-                </ion-list>
-              </ion-card-content>
-            </ion-card>
-            <!-- 设计师团队 -->
-            <ion-card>
-              <ion-card-header>
-                设计师团队
-              </ion-card-header>
-              <ion-card-content>
-                <!-- 展示机构的设计师团队 -->
-              </ion-card-content>
-            </ion-card>
-            <!-- 案例展示 -->
-            <ion-card>
-              <ion-card-header>
-                案例展示
-              </ion-card-header>
-              <ion-card-content>
-                <!-- 展示机构完成的装修案例 -->
-              </ion-card-content>
-            </ion-card>
-            <!-- 设计理念 -->
-            <ion-card>
-              <ion-card-header>
-                设计理念
-              </ion-card-header>
-              <ion-card-content>
-                <!-- 展示机构的设计理念和风格 -->
-              </ion-card-content>
-            </ion-card>
-            <!-- 服务流程 -->
-            <ion-card>
-              <ion-card-header>
-                服务流程
-              </ion-card-header>
-              <ion-card-content>
-                <!-- 展示机构的装修流程和服务标准 -->
-              </ion-card-content>
-            </ion-card>
-            <!-- 用户评价 -->
-            <ion-card>
-              <ion-card-header>
-                用户评价
-              </ion-card-header>
-              <ion-card-content>
-                <!-- 展示用户对机构的评价 -->
-              </ion-card-content>
-            </ion-card>
-            <!-- 底部按钮 -->
-            <ion-button expand="full">电话</ion-button>
-            <ion-button expand="full">预约</ion-button>
-            <ion-button expand="full">咨询</ion-button>
-            <ion-button expand="full">查看案例</ion-button>
-          </ion-card-content>
-        </ion-card>
-      </div>
+    <div *ngFor="let designCompany of designCompanies">
+      <ion-card class="company-card">
+        <ion-card-header>
+          <ion-card-title>{{ designCompany.name }}</ion-card-title>
+          <ion-card-subtitle>星级评分: {{ designCompany.starRating }} | 评价数量: {{ designCompany.reviewCount }}</ion-card-subtitle>
+        </ion-card-header>
+        <ion-card-content>
+          <ion-item lines="none">
+            <ion-label>机构简介:</ion-label>
+            <ion-text>{{ designCompany.description }}</ion-text>
+          </ion-item>
+  
+          <!-- 机构介绍 -->
+          <ion-card class="info-card">
+            <ion-card-header>
+              机构介绍
+            </ion-card-header>
+            <ion-card-content>
+              <ion-item>
+                <ion-label>服务:</ion-label>
+                <ion-text>{{ designCompany.services }}</ion-text>
+              </ion-item>
+              <ion-item>
+                <ion-label>优势:</ion-label>
+                <ion-text>{{ designCompany.advantages }}</ion-text>
+              </ion-item>
+              <ion-item>
+                <ion-label>案例:</ion-label>
+                <ion-text>{{ designCompany.cases }}</ion-text>
+              </ion-item>
+            </ion-card-content>
+          </ion-card>
+  
+          <!-- 设计师团队 -->
+          <ion-card class="team-card">
+            <ion-card-header>
+              设计师团队
+            </ion-card-header>
+            <ion-card-content>
+              <ion-item *ngFor="let designer of designCompany.designers" lines="none">
+                <ion-avatar slot="start">
+                  <img [src]="designer.avatar" alt="设计师头像">
+                </ion-avatar>
+                <ion-label>{{ designer.name }}</ion-label>
+                <ion-text>{{ designer.style }}</ion-text>
+                <ion-text>{{ designer.serviceArea }}</ion-text>
+                <ion-text>{{ designer.price }}</ion-text>
+              </ion-item>
+            </ion-card-content>
+          </ion-card>
+  
+          <!-- 案例展示 -->
+          <ion-card class="case-card">
+            <ion-card-header>
+              案例展示
+            </ion-card-header>
+            <ion-card-content>
+              <ion-item *ngFor="let case of designCompany.cases" lines="none">
+                <img [src]="case.image" alt="案例图片">
+                <ion-label>{{ case.description }}</ion-label>
+                <ion-text>{{ case.style }}</ion-text>
+              </ion-item>
+            </ion-card-content>
+          </ion-card>
+  
+          <!-- 设计理念 -->
+          <ion-card class="concept-card">
+            <ion-card-header>
+              设计理念
+            </ion-card-header>
+            <ion-card-content>
+              <ion-text>{{ designCompany.designConcept }}</ion-text>
+            </ion-card-content>
+          </ion-card>
+  
+          <!-- 服务流程 -->
+          <ion-card class="process-card">
+            <ion-card-header>
+              服务流程
+            </ion-card-header>
+            <ion-card-content>
+              <ion-text>{{ designCompany.serviceProcess }}</ion-text>
+            </ion-card-content>
+          </ion-card>
+  
+          <!-- 用户评价 -->
+          <ion-card class="review-card">
+            <ion-card-header>
+              用户评价
+            </ion-card-header>
+            <ion-card-content>
+              <ion-item *ngFor="let review of designCompany.userReviews" lines="none">
+                <img [src]="review.image" alt="用户评价图片">
+                <ion-label>{{ review.text }}</ion-label>
+                <ion-text>星级评分: {{ review.starRating }}</ion-text>
+              </ion-item>
+            </ion-card-content>
+          </ion-card>
+  
+          <!-- 底部按钮 -->
+          <ion-button expand="full" color="primary">电话</ion-button>
+          <ion-button expand="full" color="primary">预约</ion-button>
+          <ion-button expand="full" color="primary">咨询</ion-button>
+          <ion-button expand="full" color="primary">查看案例</ion-button>
+  
+        </ion-card-content>
+      </ion-card>
     </div>
+  </div>
 
     <!-- 设计师详情页 -->
     <div *ngIf="selectedSegment === 'designer'">
-      <!-- 设计师详情页内容 -->
-      <div *ngIf="selectedSegment === 'designer'">
-        <!-- 设计师详情页 -->
-        <ion-card>
-          <ion-card-header>
-            设计师信息
-          </ion-card-header>
-          <ion-card-content>
-            <ion-item>
-              <ion-avatar slot="start">
-                <ion-img src="{{ designer.avatar }}"></ion-img>
-              </ion-avatar>
-              <ion-label>
-                <h2>{{ designer.name }}</h2>
-                <p>{{ designer.specialty }}</p>
-              </ion-label>
-            </ion-item>
-            <ion-item>
-              <ion-label>擅长风格:</ion-label>
-              <ion-text>{{ designer.style }}</ion-text>
-            </ion-item>
-            <ion-item>
-              <ion-label>服务地区:</ion-label>
-              <ion-text>{{ designer.serviceArea }}</ion-text>
-            </ion-item>
-            <ion-item>
-              <ion-label>价格:</ion-label>
-              <ion-text>{{ designer.price }}</ion-text>
-            </ion-item>
-            <ion-item>
-              <ion-label>用户评价:</ion-label>
-              <ion-text>{{ designer.rating }}</ion-text>
-            </ion-item>
-            <!-- 设计师作品展示 -->
-            <ion-card>
-              <ion-card-header>
-                设计师作品
-              </ion-card-header>
-              <ion-card-content>
-                <ion-grid>
-                  <ion-row>
-                    <ion-col size="6" *ngFor="let work of designer.works">
-                      <ion-img src="{{ work.image }}"></ion-img>
-                      <p>{{ work.description }}</p>
-                    </ion-col>
-                  </ion-row>
-                </ion-grid>
-              </ion-card-content>
-            </ion-card>
-            <!-- 用户评价 -->
-            <ion-card>
-              <ion-card-header>
-                用户评价
-              </ion-card-header>
-              <ion-card-content>
-                <ion-list>
-                  <ion-item *ngFor="let review of designer.reviews">
-                    <ion-avatar slot="start">
-                      <ion-img src="{{ review.avatar }}"></ion-img>
-                    </ion-avatar>
-                    <ion-label>
-                      <h2>{{ review.username }}</h2>
-                      <p>{{ review.comment }}</p>
-                    </ion-label>
-                    <ion-icon slot="end" name="star" [color]="review.rating >= 4 ? 'warning' : 'medium'"></ion-icon>
-                  </ion-item>
-                </ion-list>
-              </ion-card-content>
-            </ion-card>
-            <!-- 底部按钮 -->
-            <ion-button expand="full">咨询</ion-button>
-            <ion-button expand="full">电话</ion-button>
-            <ion-button expand="full">在线预约</ion-button>
-            <ion-button expand="full">查看案例</ion-button>
-          </ion-card-content>
-        </ion-card>
-      </div>
+      <!-- 设计师详情页 -->
+      <ion-card *ngFor="let designer of designers">
+        <!-- 头部 -->
+        <ion-card-header>
+          <ion-avatar>
+            <img src="{{ designer.avatar }}" alt="Designer Avatar">
+          </ion-avatar>
+          <ion-card-title>{{ designer.username }}</ion-card-title>
+          <ion-button fill="outline" slot="end">关注</ion-button>
+        </ion-card-header>
+        <ion-card-content>
+          <p>{{ designer.bio }}</p>
+        </ion-card-content>
+    
+        <!-- 内容 -->
+        <ion-card-content>
+          <ion-img [src]="designer.portfolioImage" alt="Designer Portfolio"></ion-img>
+          <ion-item>
+            <ion-label>作品数量:</ion-label>
+            <ion-text>{{ designer.portfolioCount }}</ion-text>
+          </ion-item>
+          <ion-item>
+            <ion-label>擅长风格:</ion-label>
+            <ion-text>{{ designer.style }}</ion-text>
+          </ion-item>
+          <ion-item>
+            <ion-label>服务地区:</ion-label>
+            <ion-text>{{ designer.serviceArea }}</ion-text>
+          </ion-item>
+          <ion-item>
+            <ion-label>价格:</ion-label>
+            <ion-text>{{ designer.price }}</ion-text>
+          </ion-item>
+          <ion-item>
+            <ion-label>用户评价:</ion-label>
+            <ion-text>{{ designer.rating }}</ion-text>
+          </ion-item>
+        </ion-card-content>
+    
+        <!-- 底部 -->
+          <ion-button expand="full" fill="outline">咨询</ion-button>
+          <ion-button expand="full" fill="outline">电话</ion-button>
+          <ion-button expand="full" fill="outline">在线预约</ion-button>
+          <ion-button expand="full" fill="outline">查看案例</ion-button>
+      </ion-card>
     </div>
   </div>
 </ion-content>

+ 1 - 1
src/app/tab2/tab2.page.scss

@@ -1,3 +1,3 @@
 .details-container {
-    padding: 10px;
+    padding: 20px;
   }

+ 112 - 46
src/app/tab2/tab2.page.ts

@@ -7,7 +7,6 @@ import { Component } from '@angular/core';
   
 })
 export class Tab2Page {
-  selectedSegment: string = 'company';
   companies = [
     {
       name: '装修公司A',
@@ -38,51 +37,118 @@ export class Tab2Page {
     }
     // 添加更多装修公司信息
   ];
-  agency = {
-    name: '机构名称',
-    starRating: 4.4,
-    reviewCount: 95,
-    description: '机构简介',
-    services: '机构提供的服务',
-    advantages: '机构的优势',
-    cases: '机构的案例',
-    designers: [
-      { name: '设计师1', avatar: 'assets/designer1.jpg', specialty: '擅长风格1' },
-      { name: '设计师2', avatar: 'assets/designer2.jpg', specialty: '擅长风格2' },
-      // 添加更多设计师信息
-    ],
-    casesList: [
-      { image: 'assets/case1.jpg', description: '案例描述1' },
-      { image: 'assets/case2.jpg', description: '案例描述2' },
-      // 添加更多案例信息
-    ],
-    designPhilosophy: '设计理念内容',
-    serviceProcess: '服务流程内容',
-    reviews: [
-      { avatar: 'assets/user1.jpg', username: '用户1', comment: '评价1', rating: 5 },
-      { avatar: 'assets/user2.jpg', username: '用户2', comment: '评价2', rating: 4 },
-      // 添加更多用户评价
-    ]
-  };
-  designer = {
-    name: '设计师姓名',
-    avatar: 'assets/designer-avatar.jpg',
-    specialty: '设计师专长',
-    style: '设计风格',
-    serviceArea: '服务地区',
-    price: '设计师价格',
-    rating: '用户评价',
-    works: [
-      { image: 'assets/work1.jpg', title: '作品1', description: '作品描述1' },
-      { image: 'assets/work2.jpg', title: '作品2', description: '作品描述2' },
-      // 添加更多设计师作品
-    ],
-    reviews: [
-      { avatar: 'assets/user1.jpg', username: '用户1', comment: '评价1', rating: 5 },
-      { avatar: 'assets/user2.jpg', username: '用户2', comment: '评价2', rating: 4 },
-      // 添加更多用户评价
-    ]
-  };
+  selectedSegment: string = 'company';
+  
+  designCompanies = [
+    {
+      name: '设计机构X',
+      starRating: 4.8,
+      reviewCount: 200,
+      description: '设计机构X的简介',
+      services: '室内设计、景观设计',
+      advantages: '创新设计、高品质服务',
+      cases: [
+        {
+          image: 'case1.jpg',
+          description: '案例描述1',
+          style: '现代风格'
+        },
+        // 添加更多案例
+      ],
+      designers: [
+        {
+          avatar: 'designer1.jpg',
+          name: '设计师A',
+          style: '现代风格',
+          serviceArea: '城市A',
+          price: '1'
+        },
+        // 添加更多设计师
+      ],
+      designConcept: '设计理念描述',
+      serviceProcess: '服务流程描述',
+      userReviews: [
+        {
+          text: '用户评价1',
+          image: 'review1.jpg',
+          starRating: 5
+        },
+        // 添加更多用户评价
+      ]
+    },
+    {
+      name: '设计机构Y',
+      starRating: 4.5,
+      reviewCount: 150,
+      description: '设计机构Y的简介',
+      services: '建筑设计、室内设计',
+      advantages: '专业团队、精细施工',
+      cases: [
+        {
+          image: 'case2.jpg',
+          description: '案例描述2',
+          style: '现代简约风格'
+        },
+        // 添加更多案例
+      ],
+      designers: [
+        {
+          avatar: 'designer2.jpg',
+          name: '设计师B',
+          style: '简约风格',
+          serviceArea: '城市B',
+          price: '$$'
+        },
+        {
+          avatar: 'designer2.jpg',
+          name: '设计师B',
+          style: '简约风格',
+          serviceArea: '城市B',
+          price: '$$'
+        },
+        // 添加更多设计师
+      ],
+      designConcept: '设计理念描述',
+      serviceProcess: '服务流程描述',
+      userReviews: [
+        {
+          text: '用户评价2',
+          image: 'review2.jpg',
+          starRating: 4
+        },
+        // 添加更多用户评价
+      ]
+    }
+    // 添加更多设计机构信息
+  ];
+  selectedTab: string = 'designCompany';
+  
+  designers = [
+    {
+      username: '设计师A',
+      avatar: 'assets/designer1.jpg',
+      bio: '设计师A的简介',
+      portfolioImage: 'assets/portfolio1.jpg',
+      portfolioCount: 10,
+      style: '现代风格',
+      serviceArea: '北京',
+      price: '100-200元/平米',
+      rating: 4.8
+    },
+    {
+      username: '设计师B',
+      avatar: 'assets/designer2.jpg',
+      bio: '设计师B的简介',
+      portfolioImage: 'assets/portfolio2.jpg',
+      portfolioCount: 8,
+      style: '简约风格',
+      serviceArea: '上海',
+      price: '150-250元/平米',
+      rating: 4.6
+    }
+    // 添加更多设计师信息
+  ];
+  selectedDesignerSegment: string = 'designer';
 
   constructor() {}
 

+ 6 - 7
src/app/tab3/tab3.page.html

@@ -3,9 +3,8 @@
     <ion-title>
       消息
     </ion-title>
-      <ion-button (click)="openSettingsPage()">
+      <ion-button slot="end"  (click)="openSettingsPage()">
         <ion-icon name="settings-outline"></ion-icon>
-        <ion-label>设置</ion-label>
       </ion-button>
   </ion-toolbar>
 </ion-header>
@@ -15,7 +14,7 @@
   <ion-toolbar>
    <ion-segment value="explore">
     <ion-segment-button value="explore">
-      <ion-icon  name="chatbubble-ellipses"></ion-icon>
+      <ion-icon (click)="navigateToPage('comment-reply')" name="chatbubble-ellipses"></ion-icon>
       评论和回复
     </ion-segment-button>
     <ion-segment-button value="video">
@@ -23,11 +22,11 @@
       赞与收藏
     </ion-segment-button>
     <ion-segment-button value="search">
-      <ion-icon  name="person-add"></ion-icon>
+      <ion-icon (click)="navigateToPage('follow')" name="person-add"></ion-icon>
       新增关注
     </ion-segment-button>
     <ion-segment-button value="system">
-      <ion-icon  name="notifications"></ion-icon>
+      <ion-icon (click)="navigateToPage('system-message')" name="notifications"></ion-icon>
       系统消息
     </ion-segment-button>
    </ion-segment>
@@ -38,7 +37,7 @@
     </ion-card-header>
     <ion-card-content>
       <ion-avatar slot="start">
-        <ion-img src="assets/avatar.jpg"></ion-img>
+        <ion-img src="Assets/avatar.jpg"></ion-img>
       </ion-avatar>
       <ion-label>用户名</ion-label>
       <ion-label>标签</ion-label>
@@ -46,4 +45,4 @@
       <ion-button expand="block">免费提问</ion-button>
     </ion-card-content>
   </ion-card>
-</ion-content>
+</ion-content>

+ 0 - 6
src/app/tab3/tab3.page.scss

@@ -1,6 +1,3 @@
-.details-container {
-  padding: 10px;
-}
 ion-card {
   top: 25px;
   margin: 10px;
@@ -13,6 +10,3 @@ ion-card-title {
 ion-avatar {
   margin-right: 10px;
 }
-ion-toolbar{
-  top: 10px;
-}

+ 5 - 2
src/app/tab3/tab3.page.ts

@@ -1,4 +1,5 @@
 import { Component } from '@angular/core';
+import { Router } from '@angular/router';
 
 @Component({
   selector: 'app-tab3',
@@ -7,7 +8,7 @@ import { Component } from '@angular/core';
 })
 export class Tab3Page {
 
-  constructor() {}
+  constructor(private router: Router) {}
   openFeedbackPage() {
     // 打开反馈页面
   }
@@ -16,5 +17,7 @@ export class Tab3Page {
   openSettingsPage() {
     // 打开设置页面
   }
-
+  navigateToPage(page: string) {
+    this.router.navigate([`/tabs/${page}`]);
+  }
 }