危齐晟 преди 2 месеца
родител
ревизия
2d08656253
променени са 67 файла, в които са добавени 0 реда и са изтрити 1777 реда
  1. 0 3
      src/app/app.component.html
  2. 0 0
      src/app/app.component.scss
  3. 0 16
      src/app/app.component.spec.ts
  4. 0 12
      src/app/app.component.ts
  5. 0 9
      src/app/app.routes.ts
  6. 0 32
      src/app/daily-content/daily-content.page.html
  7. 0 36
      src/app/daily-content/daily-content.page.scss
  8. 0 17
      src/app/daily-content/daily-content.page.spec.ts
  9. 0 78
      src/app/daily-content/daily-content.page.ts
  10. 0 12
      src/app/explore-container/explore-container.component.html
  11. 0 27
      src/app/explore-container/explore-container.component.scss
  12. 0 18
      src/app/explore-container/explore-container.component.spec.ts
  13. 0 11
      src/app/explore-container/explore-container.component.ts
  14. 0 33
      src/app/page-create/page-create.component.html
  15. 0 0
      src/app/page-create/page-create.component.scss
  16. 0 22
      src/app/page-create/page-create.component.spec.ts
  17. 0 96
      src/app/page-create/page-create.component.ts
  18. 0 48
      src/app/page-createpic/page-createpic.component.html
  19. 0 0
      src/app/page-createpic/page-createpic.component.scss
  20. 0 22
      src/app/page-createpic/page-createpic.component.spec.ts
  21. 0 95
      src/app/page-createpic/page-createpic.component.ts
  22. 0 43
      src/app/tab1/card-detail/card-detail.page.html
  23. 0 0
      src/app/tab1/card-detail/card-detail.page.scss
  24. 0 17
      src/app/tab1/card-detail/card-detail.page.spec.ts
  25. 0 79
      src/app/tab1/card-detail/card-detail.page.ts
  26. 0 17
      src/app/tab1/card1/card1.page.html
  27. 0 0
      src/app/tab1/card1/card1.page.scss
  28. 0 17
      src/app/tab1/card1/card1.page.spec.ts
  29. 0 28
      src/app/tab1/card1/card1.page.ts
  30. 0 41
      src/app/tab1/tab1.page.html
  31. 0 52
      src/app/tab1/tab1.page.scss
  32. 0 18
      src/app/tab1/tab1.page.spec.ts
  33. 0 70
      src/app/tab1/tab1.page.ts
  34. 0 50
      src/app/tab2/tab2.page.html
  35. 0 39
      src/app/tab2/tab2.page.scss
  36. 0 18
      src/app/tab2/tab2.page.spec.ts
  37. 0 46
      src/app/tab2/tab2.page.ts
  38. 0 70
      src/app/tab3/tab3.page.html
  39. 0 142
      src/app/tab3/tab3.page.scss
  40. 0 18
      src/app/tab3/tab3.page.spec.ts
  41. 0 52
      src/app/tab3/tab3.page.ts
  42. 0 12
      src/app/tab4/tab4.page.html
  43. 0 0
      src/app/tab4/tab4.page.scss
  44. 0 17
      src/app/tab4/tab4.page.spec.ts
  45. 0 28
      src/app/tab4/tab4.page.ts
  46. 0 24
      src/app/tabs/tabs.page.html
  47. 0 1
      src/app/tabs/tabs.page.scss
  48. 0 26
      src/app/tabs/tabs.page.spec.ts
  49. 0 21
      src/app/tabs/tabs.page.ts
  50. 0 49
      src/app/tabs/tabs.routes.ts
  51. BIN
      src/assets/icon/favicon.png
  52. BIN
      src/assets/image/01/Vx_03.jpg
  53. BIN
      src/assets/image/02/duangexing.jpg
  54. BIN
      src/assets/image/03/chibizhizhan.jpg
  55. BIN
      src/assets/image/04/chushibiao.jpg
  56. BIN
      src/assets/image/05/1.jpg
  57. BIN
      src/assets/image/05/2.jpg
  58. 0 1
      src/assets/shapes.svg
  59. 0 3
      src/environments/environment.prod.ts
  60. 0 16
      src/environments/environment.ts
  61. 0 37
      src/global.scss
  62. 0 27
      src/index.html
  63. 0 34
      src/main.ts
  64. 0 55
      src/polyfills.ts
  65. 0 14
      src/test.ts
  66. 0 2
      src/theme/variables.scss
  67. 0 6
      src/zone-flags.ts

+ 0 - 3
src/app/app.component.html

@@ -1,3 +0,0 @@
-<ion-app>
-  <ion-router-outlet></ion-router-outlet>
-</ion-app>

+ 0 - 0
src/app/app.component.scss


+ 0 - 16
src/app/app.component.spec.ts

@@ -1,16 +0,0 @@
-import { TestBed } from '@angular/core/testing';
-import { provideRouter } from '@angular/router';
-import { AppComponent } from './app.component';
-
-describe('AppComponent', () => {
-  it('should create the app', async () => {
-    await TestBed.configureTestingModule({
-      imports: [AppComponent],
-      providers: [provideRouter([])]
-    }).compileComponents();
-    
-    const fixture = TestBed.createComponent(AppComponent);
-    const app = fixture.componentInstance;
-    expect(app).toBeTruthy();
-  });
-});

+ 0 - 12
src/app/app.component.ts

@@ -1,12 +0,0 @@
-import { Component } from '@angular/core';
-import { IonApp, IonRouterOutlet } from '@ionic/angular/standalone';
-
-@Component({
-  selector: 'app-root',
-  templateUrl: 'app.component.html',
-  standalone: true,
-  imports: [IonApp, IonRouterOutlet],
-})
-export class AppComponent {
-  constructor() {}
-}

+ 0 - 9
src/app/app.routes.ts

@@ -1,9 +0,0 @@
-import { Routes } from '@angular/router';
-
-export const routes: Routes = [
-  {
-    path: '',
-    loadChildren: () => import('./tabs/tabs.routes').then((m) => m.routes),
-  },
-  
-];

+ 0 - 32
src/app/daily-content/daily-content.page.html

@@ -1,32 +0,0 @@
-<ion-header>
-  <ion-toolbar>
-    <ion-buttons slot="start">
-      <ion-button (click)="navigateToDiary()">
-        <ion-icon name="calendar"></ion-icon>
-        <span>日历</span>
-      </ion-button>
-    </ion-buttons>
-
-    <ion-title>每日内容</ion-title>
-
-    <ion-buttons slot="end">
-      <ion-button (click)="navigateToToday()">
-        <ion-icon name="today-outline"></ion-icon>
-        <span>今日</span>
-      </ion-button>
-    </ion-buttons>
-  </ion-toolbar>
-</ion-header>
-
-
-<ion-content>
-  <div class="daily-content-wrapper">
-    <div class="daily-item" *ngFor="let item of dailyItems">
-      <img [src]="item.image" alt="{{ item.title }}" class="daily-image" *ngIf="item.image">
-      <h3>{{ item.date }}</h3>
-      <h4>{{ item.title }}</h4>
-      <p>{{ item.snippet }}</p>
-    </div>
-  </div>
-</ion-content>
-

+ 0 - 36
src/app/daily-content/daily-content.page.scss

@@ -1,36 +0,0 @@
-.daily-content-wrapper {
-  display: grid;
-  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
-  padding: 16px;
-  gap: 16px;
-}
-
-.daily-item {
-  background: #ffffff;
-  border-radius: 12px;
-  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
-  padding: 10px;
-  text-align: center;
-
-  .daily-image {
-    width: 100%;
-    height: auto;
-    border-radius: 8px;
-    margin-bottom: 8px;
-  }
-
-  h3 {
-    font-size: 18px;
-    margin: 5px 0;
-  }
-
-  h4 {
-    font-size: 16px;
-    margin: 0;
-  }
-
-  p {
-    font-size: 14px;
-    color: #666;
-  }
-}

+ 0 - 17
src/app/daily-content/daily-content.page.spec.ts

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

+ 0 - 78
src/app/daily-content/daily-content.page.ts

@@ -1,78 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { FormsModule } from '@angular/forms';
-import { IonHeader, IonToolbar, IonTitle, IonContent,IonButtons, IonButton, IonIcon,IonDatetime } from '@ionic/angular/standalone';
-import { Router } from '@angular/router';
-import { addIcons } from 'ionicons';
-import { calendar } from 'ionicons/icons';
-@Component({
-  selector: 'app-daily-content',
-  templateUrl: './daily-content.page.html',
-  styleUrls: ['./daily-content.page.scss'],
-  standalone: true,
-  imports: [FormsModule,CommonModule,IonHeader, IonToolbar, IonTitle, IonContent,IonButtons, IonButton,IonDatetime, IonIcon],
-})
-export class DailyContentPage implements OnInit {
-  dailyItems = [
-    {
-      date: '2024-11-30',
-      title: '清平调',
-      snippet: '云想衣裳花想容,春风拂槛露华浓。若非群玉山头见,会向瑶台月下逢。.',
-      image: '../assets/image/01/Vx_03.jpg'
-    },
-    {
-      date: '2024-11-29',
-      title: '纯诗歌内容(内带详细注解)',
-      snippet: '床前明月光,疑是地上霜...',
-      image: ''
-    },
-    {
-      date: '2024-11-28',
-      title: '纯诗歌内容(内带详细注解)',
-      snippet: '床前明月光,疑是地上霜...',
-      image: ''
-    },
-    {
-      date: '2024-11-27',
-      title: '纯诗歌内容(内带详细注解)',
-      snippet: '床前明月光,疑是地上霜...',
-      image: ''
-    },
-    {
-      date: '2024-11-26',
-      title: '纯诗歌内容(内带详细注解)',
-      snippet: '床前明月光,疑是地上霜...',
-      image: ''
-    },
-    {
-      date: '2024-11-25',
-      title: '纯诗歌内容(内带详细注解)',
-      snippet: '床前明月光,疑是地上霜...',
-      image: ''
-    },
-    // 更多内容...
-  ];
-  ngOnInit() {
-  }
-  constructor(private router:Router) {
-    addIcons({calendar});
-  }
-  navigateToDiary() {
-    this.router.navigateByUrl('/daily-content')
-    // 导航到日历页面的逻辑
-  }
-
-  navigateToToday() {
-    this.router.navigateByUrl('/tabs/tab1')
-    // 返回到今天内容的逻辑
-  }
-
-  onDateChange(event: any) {
-    // 处理日期改变的逻辑
-  }
-
-  viewItemDetails(item: any) {
-    console.log(item);
-    // 跳转到对应内容详情页面的逻辑
-  }
-}

+ 0 - 12
src/app/explore-container/explore-container.component.html

@@ -1,12 +0,0 @@
-<div id="container">
-  <strong>{{ name }}</strong>
-  <p>
-    Explore
-    <a
-      target="_blank"
-      rel="noopener noreferrer"
-      href="https://ionicframework.com/docs/components"
-      >UI Components</a
-    >
-  </p>
-</div>

+ 0 - 27
src/app/explore-container/explore-container.component.scss

@@ -1,27 +0,0 @@
-#container {
-  text-align: center;
-
-  position: absolute;
-  left: 0;
-  right: 0;
-  top: 50%;
-  transform: translateY(-50%);
-}
-
-#container strong {
-  font-size: 20px;
-  line-height: 26px;
-}
-
-#container p {
-  font-size: 16px;
-  line-height: 22px;
-
-  color: #8c8c8c;
-
-  margin: 0;
-}
-
-#container a {
-  text-decoration: none;
-}

+ 0 - 18
src/app/explore-container/explore-container.component.spec.ts

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

+ 0 - 11
src/app/explore-container/explore-container.component.ts

@@ -1,11 +0,0 @@
-import { Component, Input } from '@angular/core';
-
-@Component({
-  selector: 'app-explore-container',
-  templateUrl: './explore-container.component.html',
-  styleUrls: ['./explore-container.component.scss'],
-  standalone: true,
-})
-export class ExploreContainerComponent {
-  @Input() name?: string;
-}

+ 0 - 33
src/app/page-create/page-create.component.html

@@ -1,33 +0,0 @@
-<ion-header>
-  <ion-toolbar>
-    <ion-buttons slot="start">
-      <ion-back-button defaultHref="/tabs/tab4"></ion-back-button>
-    </ion-buttons>
-    <ion-title>{{ content.title }}</ion-title>
-  </ion-toolbar>
-</ion-header>
-
-
-
-
-
-
-<ion-content>
-  <h1>形式(绝句,律诗,词曲)</h1>
-  <ion-input [value]="style" (ionInput)="styleInput($event)"></ion-input>
-    <!-- 文本域:生成提示词 -->
-  <h1>内容风格描述</h1>
-  <ion-textarea [value]="userPrompt" (ionInput)="promptInput($event)" placeholder="文本提示词" autoGrow="true"></ion-textarea>
-
-  <!-- 按钮:执行消息生成函数 -->
-  <ion-button (click)="sendMessage()" expand="block">消息生成</ion-button>
-
-  <!-- 展示:返回消息内容 -->
-  @if(!isComplete){
-    <div>{{responseMsg}}</div>
-  }
-
-  @if(isComplete){
-    <fm-markdown-preview class="content-style" [content]="responseMsg"></fm-markdown-preview>
-  }
-</ion-content>

+ 0 - 0
src/app/page-create/page-create.component.scss


+ 0 - 22
src/app/page-create/page-create.component.spec.ts

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

+ 0 - 96
src/app/page-create/page-create.component.ts

@@ -1,96 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import { ActivatedRoute, Router } from '@angular/router';
-import { 
-  IonHeader, 
-  IonToolbar, 
-  IonTitle, 
-  IonContent, 
-  IonButton, 
-  IonTextarea, 
-  IonInput, 
-  IonButtons, 
-  IonBackButton 
-} from '@ionic/angular/standalone';
-import { FmodeChatCompletion, MarkdownPreviewModule } from 'fmode-ng';
-
-@Component({
-  selector: 'app-page-create',
-  templateUrl: './page-create.component.html',
-  styleUrls: ['./page-create.component.scss'],
-  standalone: true,
-  imports: [
-    IonHeader, 
-    IonToolbar, 
-    IonTitle, 
-    IonContent, 
-    IonButton,
-    IonTextarea,
-    IonInput,
-    IonButtons, 
-    IonBackButton, 
-    MarkdownPreviewModule
-  ],
-})
-export class PageCreateComponent  implements OnInit {
-  isComplete: boolean = false;
-  ngOnInit(){
-
-  }
-  content: { title: string } = { title: '古诗云创' }; // 初始化 title
-  constructor(private activatedRoute: ActivatedRoute, private router: Router) { }
-  goBack() {
-    this.router.navigate(['/tabs/tab4']); // 返回到 Tab4
-  }
-
-  
-  // 用户输入提示词
-  style:string = "诗句格式"
-  styleInput(ev:any){
-    this.style = ev.detail.value;
-    this.isComplete = false;
-    this.responseMsg = "";
-  }
-   userPrompt:string = "请描述你的诗歌需求"
-  promptInput(ev:any){
-    this.userPrompt = ev.detail.value;
-    this.isComplete = false;
-    this.responseMsg = "";
-  }
-  // 属性:组件内用于展示消息内容的变量
-  responseMsg:any = ""
-  // 方法:实例化completion对象,传入消息数组,并订阅生成的可观察对象。
-  sendMessage() {
-    console.log("create");
-
-    let PromptTemplate = `
-    您作为一位专业的${this.style}诗歌创作者,请您根据以下用户需求创作一首符合格式的诗歌:
-
-    1. 主题:用户希望表达的主题(例如:爱情、自然、时间等)
-    2. 感官体验:用户期望使用的视觉、听觉等感官细节描述
-    3. 情感表达:用户想要传达的情感,例如:快乐、悲伤、怀念等
-    4. 诗歌格式:请按照以下格式创作诗歌
-    - 诗歌的行数:要求的行数
-    - 每行字数:例如:五言、七言
-    - 韵律:是否需要押韵
-
-    以下是用户的需求:
-    ${this.userPrompt}
-    `;
-
-    let completion = new FmodeChatCompletion([
-      { role: "system", content: "" },
-      { role: "user", content: PromptTemplate }
-    ]);
-
-    completion.sendCompletion().subscribe((message: any) => {
-      // 打印消息体
-      console.log(message.content);
-      // 赋值消息内容给组件内属性
-      this.responseMsg = message.content
-      if(message?.complete){
-        this.isComplete = true
-      }
-    });
-  }
-
-}

+ 0 - 48
src/app/page-createpic/page-createpic.component.html

@@ -1,48 +0,0 @@
-<ion-header>
-  <ion-toolbar>
-    <ion-buttons slot="start">
-      <ion-back-button defaultHref="/tabs/tab4"></ion-back-button>
-    </ion-buttons>
-    <ion-title>古诗云想 | 图片生成进度: {{imagineWork?.progress || 0}}%</ion-title>
-  </ion-toolbar>
-</ion-header>
-
-<ion-content [fullscreen]="true" style="background-color: #f9f9f9; padding: 16px;">
-  <!-- 生成提示词 -->
-  <h2 style="text-align: center; color: #5a5a5a;">请输入您的古诗</h2>
-  <ion-textarea
-    [value]="userPrompt"
-    (ionInput)="promptInput($event)"
-    placeholder="在此输入您想要的古诗..."
-    autoGrow="true"
-    style="background-color: white; color: black; border-radius: 8px; margin-bottom: 16px;"
-  ></ion-textarea>
-
-  <ion-button (click)="createImage()" expand="full" color="secondary">生成图片</ion-button>
-
-  <!-- 诗歌分析结果 -->
-  <div *ngIf="responseMsg" style="margin-top: 20px; padding: 10px; background: #e6f7ff; border-radius: 5px;">
-    <h3 style="color: #007bff;">诗歌分析结果:</h3>
-    <p>{{ responseMsg }}</p>
-  </div>
-
-  <!-- 生成结果 -->
-  <div *ngIf="images.length; else noImages">
-    <h2 style="text-align: center; color: #5a5a5a;">生成的图片</h2>
-    <div style="display: flex; flex-wrap: wrap; justify-content: center;">
-      <img *ngFor="let imageUrl of images" [src]="imageUrl" alt="生成的图片" style="max-width: 100%; height: auto; margin: 10px; border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);">
-    </div>
-  </div>
-
-  <!-- 生成状态 -->
-  <ng-template #noImages>
-    <div style="text-align: center; margin-top: 20px;">
-      <ng-container *ngIf="imagineWork; else notStarted">
-        <h1>生成中...</h1>
-      </ng-container>
-      <ng-template #notStarted>
-        <h1>未开始</h1>
-      </ng-template>
-    </div>
-  </ng-template>
-</ion-content>

+ 0 - 0
src/app/page-createpic/page-createpic.component.scss


+ 0 - 22
src/app/page-createpic/page-createpic.component.spec.ts

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

+ 0 - 95
src/app/page-createpic/page-createpic.component.ts

@@ -1,95 +0,0 @@
-import { CommonModule } from '@angular/common';
-import { Component, OnInit } from '@angular/core';
-import { 
-  IonHeader, 
-  IonToolbar, 
-  IonTitle, 
-  IonContent, 
-  IonButton, 
-  IonTextarea, 
-  IonInput, 
-  IonButtons,  // 添加此行
-  IonBackButton // 添加此行
-} from "@ionic/angular/standalone"; // 确保从 'ionic/angular/standalone' 导入
-import { DalleOptions, FmodeChatCompletion, ImagineWork, MarkdownPreviewModule } from 'fmode-ng';
-
-@Component({
-  selector: 'app-page-createpic',
-  templateUrl: './page-createpic.component.html',
-  styleUrls: ['./page-createpic.component.scss'],
-  standalone: true,
-  imports: [
-    IonHeader, 
-    IonToolbar, 
-    IonTitle, 
-    IonContent,
-    IonButton, 
-    IonInput,
-    IonTextarea, 
-    IonButtons,     // 添加此行
-    IonBackButton,  // 添加此行
-    MarkdownPreviewModule,
-    CommonModule
-  ],
-})
-export class PageCreatepicComponent implements OnInit {
-  userPrompt: string = "云想衣裳花想容,春风拂槛露华浓。若非群玉山头见,会向瑶台月下逢";
-  promptInput(ev: any) {
-    this.userPrompt = ev.detail.value;
-  }
-
-  imagineWork: ImagineWork | undefined;
-  images: Array<string> = [];
-  responseMsg: string | undefined; // 添加用于接收生成的消息内容
-
-  constructor() {
-    this.imagineWork = new ImagineWork(); // 初始化 ImagineWork 实例
-  }
-
-  async createImage() {
-    let PromptTemplate = `
-    请您作为一位专业的画家,分析以下古诗中的情感、意象和色彩。请考虑以下要素,并将其转化为视觉艺术的表现:
-
-    1. **情感表达**:这首诗传达了哪些情感?是快乐、悲伤、怀念还是其他?
-    2. **意象描绘**:诗中使用了哪些意象?它们分别代表什么?
-    3. **色彩运用**:根据诗的情感和意象,您会选择哪些颜色进行表达?
-    4. **画面构图**:您如何想象画面的构图?有哪些元素值得突出?
-
-    古诗:
-    ${this.userPrompt}
-    `;
-
-    let completion = new FmodeChatCompletion([
-      { role: "system", content: "" },
-      { role: "user", content: PromptTemplate }
-    ]);
-
-    completion.sendCompletion().subscribe({
-      next: (message: any) => {
-        console.log(message.content);
-        this.responseMsg = message.content;
-        if (message?.complete && this.imagineWork) { // 确保 imagineWork 已初始化
-          let options: DalleOptions = { prompt: this.userPrompt };
-          this.imagineWork.draw(options).subscribe({
-            next: (work) => {
-              console.log("imagineWork", work?.toJSON());
-              if (work?.get("images")?.length) {
-                this.images = work.get("images");
-              }
-            },
-            error: (err) => {
-              console.error("Error drawing image: ", err);
-            }
-          });
-        } else {
-          console.error("ImagineWork is not initialized or message is not complete.");
-        }
-      },
-      error: (err) => {
-        console.error("Error sending completion: ", err);
-      }
-    });
-  }
-
-  ngOnInit() {}
-}

+ 0 - 43
src/app/tab1/card-detail/card-detail.page.html

@@ -1,43 +0,0 @@
-<ion-header>
-  <ion-toolbar>
-    <ion-buttons slot="start">
-      <ion-back-button defaultHref="/tabs/tab1"></ion-back-button>
-    </ion-buttons>
-    <ion-title>{{ content.title }}</ion-title>
-  </ion-toolbar>
-</ion-header>
-
-<ion-content>
-  <h2>{{ content.title }}</h2>
-  <h3>编者: {{ content.editor }}</h3>
-  <p>{{ content.detail }}</p>
-  <p>日期: {{ content.date }} - {{ content.issue }}</p>
-
-  <ion-list>
-    <ion-item *ngFor="let image of content.images">
-      <ion-thumbnail slot="start">
-        <img [src]="image" />
-      </ion-thumbnail>
-    </ion-item>
-
-    <ion-item *ngIf="content.video">
-      <video controls [src]="content.video"></video>
-    </ion-item>
-
-    <ion-item *ngIf="content.audio">
-      <audio controls [src]="content.audio"></audio>
-    </ion-item>
-  </ion-list>
-</ion-content>
-
-<ion-footer>
-  <ion-toolbar>
-    <ion-buttons slot="start" (click)="prevContent()">
-      <ion-button>前一期</ion-button>
-    </ion-buttons>
-    <ion-buttons slot="end" (click)="nextContent()">
-      <ion-button>后一期</ion-button>
-    </ion-buttons>
-  </ion-toolbar>
-</ion-footer>
-

+ 0 - 0
src/app/tab1/card-detail/card-detail.page.scss


+ 0 - 17
src/app/tab1/card-detail/card-detail.page.spec.ts

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

+ 0 - 79
src/app/tab1/card-detail/card-detail.page.ts

@@ -1,79 +0,0 @@
-import { Component, OnInit, } from '@angular/core';
-import { ActivatedRoute, Router } from '@angular/router';
-import { CommonModule } from '@angular/common';
-import { FormsModule } from '@angular/forms';
-import { IonContent, IonHeader,IonItem,IonList, IonThumbnail,IonTitle, IonToolbar,IonFooter, IonButtons,IonButton, IonBackButton} from '@ionic/angular/standalone';
-
-
-
-
-
-@Component({
-  selector: 'app-card-detail',
-  templateUrl: './card-detail.page.html',
-  styleUrls: ['./card-detail.page.scss'],
-  standalone: true,
-  imports: [IonContent, IonHeader,IonThumbnail,IonList, IonTitle,IonItem,IonFooter, IonToolbar,IonButtons,IonButton, IonBackButton, CommonModule, FormsModule]
-})
-export class CardDetailPage implements OnInit {
-
-  content: {
-    title: string;
-    editor: string;
-    date: string;
-    issue: string;
-    detail: string;
-    images: string[]; // 明确指定为字符串数组
-    video: string;
-    audio: string;
-  } = {
-    title: '',
-    editor: '',
-    date: '',
-    issue: '',
-    detail: '',
-    images: [], // 初始化为空数组
-    video: '',
-    audio: ''
-  };
-
-  constructor(private activatedRoute: ActivatedRoute, private router: Router) { }
-
-  ngOnInit() {
-    const id = this.activatedRoute.snapshot.paramMap.get('id'); // 获取内容ID
-    this.loadContent(id);
-  }
-
-  loadContent(id: string | null) {
-    // 模拟加载内容,实际中应从服务获取数据
-    this.content = {
-      // title: `内容标题 ${id}`,
-      title: `清平调`,
-      editor: `文|编辑部`,
-      // editor: `编者姓名 ${id}`,
-      date: '2024-11-30',
-      issue: `第1期`,
-      // issue: `第${id}期`,
-      detail: ` 云想衣裳花想容,春风拂槛露华浓。若非群玉山头见,会向瑶台月下逢。`,
-      // detail: `这里是详细内容 ${id}...`,
-      images: ['../assets/image/01/Vx_03.jpg', ], // 示例图片路径
-      video: 'assets/video/sample.mp4', // 示例视频路径
-      audio: 'assets/audio/sample.mp3' // 示例音频路径
-    };
-  }
-
-  goBack() {
-    this.router.navigate(['/tabs/tab1']); // 返回到 Tab1
-  }
-  prevContent() {
-    const prevId = parseInt(this.content.issue.replace('第', '').replace('期', '')) - 1; // 简单逻辑示例
-    if (prevId > 0) {
-      this.router.navigate(['/card-detail'], { queryParams: { id: prevId } });
-    }
-  }
-
-  nextContent() {
-    const nextId = parseInt(this.content.issue.replace('第', '').replace('期', '')) + 1; // 简单逻辑示例
-    this.router.navigate(['/card-detail'], { queryParams: { id: nextId } });
-  }
-}

+ 0 - 17
src/app/tab1/card1/card1.page.html

@@ -1,17 +0,0 @@
-<ion-header>
-  <ion-toolbar>
-    <ion-title>Card 1</ion-title>
-  </ion-toolbar>
-</ion-header>
-
-<ion-content>
-  <ion-card *ngFor="let card of cards" (click)="viewItemDetails(card)"> <!-- 点击卡片时调用方法 -->
-    <ion-card-header>
-      <ion-card-title>{{ card.title }}</ion-card-title>
-      <ion-card-subtitle>{{ card.editor }}</ion-card-subtitle>
-    </ion-card-header>
-    <ion-card-content>
-      {{ card.detail }}
-    </ion-card-content>
-  </ion-card>
-</ion-content>

+ 0 - 0
src/app/tab1/card1/card1.page.scss


+ 0 - 17
src/app/tab1/card1/card1.page.spec.ts

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

+ 0 - 28
src/app/tab1/card1/card1.page.ts

@@ -1,28 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { FormsModule } from '@angular/forms';
-import { IonContent, IonHeader, IonTitle,IonCardSubtitle, IonToolbar, IonCard, IonCardHeader, IonCardTitle, IonCardContent, IonButton } from '@ionic/angular/standalone';
-import { Router } from '@angular/router';
-
-@Component({
-  selector: 'app-card1',
-  templateUrl: './card1.page.html',
-  styleUrls: ['./card1.page.scss'],
-  standalone: true,
-  imports: [IonContent, IonHeader, IonTitle, IonToolbar,IonCardSubtitle, IonCard, IonCardHeader, IonCardTitle, IonCardContent, IonButton, CommonModule, FormsModule]
-})
-export class Card1Page implements OnInit {
-  cards: { id: number; title: string; editor: string; detail: string }[] = [
-    { id: 1, title: 'Card 1 Title', editor: 'Editor 1', detail: 'Detail for Card 1' },
-    { id: 2, title: 'Card 1 Title 2', editor: 'Editor 2', detail: 'Detail for Card 1.2' },
-    { id: 3, title: 'Card 1 Title 3', editor: 'Editor 3', detail: 'Detail for Card 1.3' },
-  ]; // 示例卡片数据
-
-  constructor(private router: Router) {}
-
-  ngOnInit() {}
-
-  viewItemDetails(card: { id: number }) {
-    this.router.navigate(['/card-detail'], { queryParams: { id: card.id } }); // 跳转到详细内容页并带上参数
-  }
-}

+ 0 - 41
src/app/tab1/tab1.page.html

@@ -1,41 +0,0 @@
-<!-- 头部一栏内容左侧分布一个日历图标(作用为点击进入一个导航页面,内面按照时间排布,每日的图文作为展示锚点,点击后进入对应日期发布的内容),右侧始终展示一个今日按钮,点击后返回最新内容的首页 -->
-<!-- //calendar没有正常显示图标 -->
-<!-- //这里的cards分别需要分给#个内容,图文(一张图片,下面附有文字内容诗句),视频,文章故事(扩写古诗),诗歌内容(纯粹的诗歌),音频内容(吟诵诗歌) -->
-<ion-header>
-  <ion-toolbar>
-    <ion-buttons slot="start">
-      <ion-button (click)="navigateToDiary()">
-        <ion-icon name="calendar"></ion-icon>
-        <span>日历</span>
-      </ion-button>
-    </ion-buttons>
-
-    <ion-title>诗</ion-title>
-
-    <ion-buttons slot="end">
-      <ion-button (click)="navigateToToday()">
-        <ion-icon name="today-outline"></ion-icon>
-        <span>今日</span>
-      </ion-button>
-    </ion-buttons>
-  </ion-toolbar>
-</ion-header>
-
-<ion-content [fullscreen]="true">
-  <div class="content-wrapper">
-
-    <div class="main-content">
-      <div class="card-section">
-
-        <div class="cards">
-          <div class="card" *ngFor="let item of contentItems" (click)="viewItemDetails(item)">
-            <img [src]="item.image" alt="{{ item.title }}" class="card-image" *ngIf="item.image">
-            <h4>{{ item.title }}</h4>
-            <p>{{ item.snippet }}</p>
-          </div>
-        </div>
-      </div>
-    </div>
-  </div>
-</ion-content>
-<!-- <app-explore-container name="Tab 1 page"></app-explore-container> -->

+ 0 - 52
src/app/tab1/tab1.page.scss

@@ -1,52 +0,0 @@
-.content-wrapper {
-  padding: 16px;
-}
-
-.main-content {
-  .card-section {
-    margin-bottom: 20px;
-
-    h2 {
-      font-size: 24px;
-      font-weight: bold;
-      margin-bottom: 10px;
-    }
-
-    .cards {
-      display:grid;
-      grid-template-columns: repeat(auto-fill);
-      gap: 16px;
-    }
-
-    .card {
-      background: #ffffff;
-      border-radius: 8px;
-      box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
-      padding: 10px;
-      cursor: pointer;
-      text-align: center;
-      transition: transform 0.2s;
-
-      &:hover {
-        transform: scale(1.05);
-      }
-
-      .card-image {
-        width: 100%;
-        height: auto;
-        border-radius: 8px;
-        margin-bottom: 8px;
-      }
-
-      h4 {
-        font-size: 16px;
-        margin: 0;
-      }
-
-      p {
-        font-size: 14px;
-        color: #666;
-      }
-    }
-  }
-}

+ 0 - 18
src/app/tab1/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();
-  });
-});

+ 0 - 70
src/app/tab1/tab1.page.ts

@@ -1,70 +0,0 @@
-import { Component } from '@angular/core';
-import { IonHeader, IonToolbar, IonTitle, IonContent,IonButtons, IonButton, IonIcon,IonDatetime } from '@ionic/angular/standalone';
-import { ExploreContainerComponent } from '../explore-container/explore-container.component';
-import { addIcons } from 'ionicons';
-import { calendar } from 'ionicons/icons';
-import { FormsModule } from '@angular/forms';
-import { CommonModule } from '@angular/common';
-import { Router } from '@angular/router';
-@Component({
-  selector: 'app-tab1',
-  templateUrl: 'tab1.page.html',
-  styleUrls: ['tab1.page.scss'],
-  standalone: true,
-  imports: [FormsModule,CommonModule,IonHeader, IonToolbar, IonTitle, IonContent,IonButtons, IonButton,IonDatetime, IonIcon,ExploreContainerComponent],
-})
-export class Tab1Page {
-
-  selectedDate!: string; // 定义 selectedDate
-  contentItems = [
-    {
-      title: '清平调',
-      snippet: '云想衣裳花想容,春风拂槛露华浓。若非群玉山头见,会向瑶台月下逢。',
-      image: '../assets/image/01/Vx_03.jpg'
-    },
-    {
-      title: '短歌行',
-      snippet: '对酒当歌,人生几何!譬如朝露,去日苦多。...',
-      image: '../assets/image/02/duangexing.jpg'
-    },
-    {
-      title: '念奴娇·赤壁怀古',
-      snippet: '赤壁之战的还原视频...',
-      image: '../assets/image/03/chibizhizhan.jpg' // 替换为视频封面图
-    },
-    {
-      title: '出师表',
-      snippet: '对出师表进行的精彩扩写...',
-      image: '../assets/image/04/chushibiao.jpg' // 替换为文章封面图
-    },
-    {
-      title: '吟诵音频',
-      snippet: '一段优美的吟诵音频...',
-      image: '' // 替换为音频封面图
-    }
-  ];
-
-
-  // poems = []; // 假设有一些诗
-  // pastPoems = []; // 假设有一些往期诗篇
-
-  constructor(private router:Router) {
-    addIcons({calendar});
-  }
-  navigateToDiary() {
-    this.router.navigateByUrl('/daily-content')
-    // 导航到日历页面的逻辑
-  }
-
-  navigateToToday() {
-    // 返回到今天内容的逻辑
-  }
-
-  onDateChange(event: any) {
-    // 处理日期改变的逻辑
-  }
-
-  viewItemDetails(card: any) {
-    this.router.navigate(['/card-detail'], { queryParams: { id: card.id } }); // 传递卡片ID
-  }
-}

+ 0 - 50
src/app/tab2/tab2.page.html

@@ -1,50 +0,0 @@
-<ion-header [translucent]="true">
-  <ion-toolbar>
-    <ion-title>
-      书籍集合
-    </ion-title>
-    <ion-buttons slot="end">
-      <ion-button (click)="openSearch()">
-        <ion-icon name="search"></ion-icon>
-      </ion-button>
-    </ion-buttons>
-  </ion-toolbar>
-</ion-header>
-
-<ion-content [fullscreen]="true">
-  <ion-header collapse="condense">
-    <ion-toolbar>
-      <ion-title size="large">书籍</ion-title>
-    </ion-toolbar>
-  </ion-header>
-
-  <ion-segment [(ngModel)]="selectedSegment" (ionChange)="segmentChanged($event)">
-    <ion-segment-button value="collection">
-      <ion-label>选集</ion-label>
-    </ion-segment-button>
-    <ion-segment-button value="theme">
-      <ion-label>主题</ion-label>
-    </ion-segment-button>
-    <ion-segment-button value="works">
-      <ion-label>作品</ion-label>
-    </ion-segment-button>
-    <ion-segment-button value="authors">
-      <ion-label>作者</ion-label>
-    </ion-segment-button>
-  </ion-segment>
-
-  <ion-grid>
-    <ion-row>
-      <ion-col size="6" *ngFor="let book of filteredBooks">
-        <ion-card class="book-card">
-          <ion-card-header>
-            <ion-card-title>{{ book.title }}</ion-card-title>
-          </ion-card-header>
-          <ion-card-content>
-            <p>{{ book.count }} 个条目</p>
-          </ion-card-content>
-        </ion-card>
-      </ion-col>
-    </ion-row>
-  </ion-grid>
-</ion-content>

+ 0 - 39
src/app/tab2/tab2.page.scss

@@ -1,39 +0,0 @@
-ion-content {
-    --background: #f9f9f9; // 设置背景颜色
-  
-    .book-card {
-      margin: 10px; // 确保卡片之间有间距
-      border-radius: 8px;
-      box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
-      background: white;
-      padding: 15px;
-      transition: transform 0.2s;
-  
-      &:hover {
-        transform: scale(1.02); // 悬停时放大效果
-      }
-  
-      ion-card-header {
-        background: #e0e0e0; // 卡片头部背景
-        border-radius: 8px 8px 0 0;
-        padding: 10px;
-      }
-  
-      ion-card-title {
-        font-size: 1.2em;
-        font-weight: bold;
-        margin: 0;
-        text-align: center; // 居中标题
-      }
-  
-      p {
-        color: gray;
-        margin: 0;
-        text-align: center; // 居中内容
-      }
-    }
-  
-    ion-segment {
-      margin: 10px 0; // 设置 segment 的上下边距
-    }
-  }

+ 0 - 18
src/app/tab2/tab2.page.spec.ts

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

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

@@ -1,46 +0,0 @@
-import { Component } from '@angular/core';
-import { IonicModule } from '@ionic/angular';
-import { CommonModule } from '@angular/common';
-import { FormsModule } from '@angular/forms';
-
-@Component({
-  selector: 'app-tab2',
-  templateUrl: 'tab2.page.html',
-  styleUrls: ['tab2.page.scss'],
-  standalone: true,
-  imports: [
-    IonicModule,
-    CommonModule,
-    FormsModule
-  ]
-})
-export class Tab2Page {
-  selectedSegment: string = 'collection';
-  books: any[] = [
-    { title: '唐诗鉴赏辞典', count: 1100 },
-    { title: '宋词鉴赏辞典', count: 1294 },
-    { title: '元曲鉴赏辞典', count: 712 },
-    { title: '元明清诗鉴赏辞典', count: 840 },
-    { title: '现代女性诗词鉴赏辞典', count: 652 },
-    { title: '古文鉴赏辞典', count: 566 },
-    { title: '明清小说鉴赏辞典', count: 243 },
-    { title: '古代志怪小说鉴赏辞典', count: 539 },
-  ];
-  filteredBooks: any[] = [];
-
-  constructor() {
-    this.filteredBooks = this.books;
-  }
-
-  segmentChanged(event: any) {
-    this.filteredBooks = this.books; // 示例,实际可根据需要调整
-  }
-
-  selectBook(book: any) {
-    console.log('Selected book:', book);
-  }
-
-  openSearch() {
-    console.log('Search clicked');
-  }
-}

+ 0 - 70
src/app/tab3/tab3.page.html

@@ -1,70 +0,0 @@
-<ion-content [fullscreen]="true">
-  <ion-header [translucent]="true">
-    <ion-toolbar>
-      <ion-buttons slot="start">
-        <ion-menu-button></ion-menu-button>
-      </ion-buttons>
-      <ion-buttons slot="end">
-        <ion-button><ion-icon name="search"></ion-icon></ion-button>
-        <ion-button><ion-icon name="ellipsis-horizontal"></ion-icon></ion-button>
-      </ion-buttons>
-    </ion-toolbar>
-  </ion-header>
-
-  <div class="profile-container">
-    <img src="../../assets/image/05/2.jpg" alt="背景图片" />
-    
-    <div class="profile-card">
-      <img src="../../assets/image/05/1.jpg" alt="头像" class="avatar" />
-      <h2>{{ profile.name }}</h2>
-      <p *ngIf="profile.vipStatus">VIP 开通VIP&gt;</p>
-      <p>{{ profile.level }}</p>
-    </div>
-
-    <div class="cards-container">
-      <div class="card">
-        <ion-icon name="time-outline"></ion-icon>
-        <p>浏览记录</p>
-      </div>
-      <div class="card">
-        <ion-icon name="download-outline"></ion-icon>
-        <p>我的下载</p>
-      </div>
-      <div class="card">
-        <ion-icon name="cart-outline"></ion-icon>
-        <p>我的购买</p>
-      </div>
-      <div class="card">
-        <ion-icon name="wallet-outline"></ion-icon>
-        <p>我的钱包</p>
-      </div>
-    </div>
-  </div>
-
-  <!-- 新增的喜欢和收藏按钮 -->
-  <div class="like-collection-buttons">
-    <div class="card">
-      <button (click)="toggleTabs('like')" class="action-button">喜欢</button>
-    </div>
-    <div class="card">
-      <button (click)="toggleTabs('collect')" class="action-button">收藏</button>
-    </div>
-  </div>
-
-  <div class="tabs-container" *ngIf="showTabs">
-    <ion-segment value="all">
-      <ion-segment-button (click)="setActiveTab('all')" [class.active]="activeTab === 'all'">
-        <ion-icon name="images-outline"></ion-icon>
-        <ion-label>全部</ion-label>
-      </ion-segment-button>
-      <ion-segment-button (click)="setActiveTab('image')" [class.active]="activeTab === 'image'">
-        <ion-icon name="image-outline"></ion-icon>
-        <ion-label>图文</ion-label>
-      </ion-segment-button>
-      <ion-segment-button (click)="setActiveTab('document')" [class.active]="activeTab === 'document'">
-        <ion-icon name="document-text-outline"></ion-icon>
-        <ion-label>文章</ion-label>
-      </ion-segment-button>
-    </ion-segment>
-  </div>
-</ion-content>

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

@@ -1,142 +0,0 @@
-.profile-container {
-  position: relative;
-  overflow: hidden;
-  background-size: cover;
-  background-position: center;
-
-  img {
-    width: 100%;
-    height: 320px; /* 根据需要调整 */
-    object-fit: cover;
-  }
-}
-
-.profile-card {
-  position: absolute;
-  top: 20px; /* 调整位置 */
-  left: 50%;
-  transform: translateX(-50%); /* 居中 */
-  padding: 20px;
-  background: rgba(0, 0, 0, 0.0); /* 半透明背景 */
-  color: white;
-  text-align: center;
-  border-radius: 10px;
-
-  .avatar {
-    width: 70px; /* 保持宽度 */
-    height: 70px; /* 修改为与宽度相等的高度 */
-    border-radius: 50%; /* 圆形 */
-    margin-bottom: 10px;
-    border: 3px solid white;
-    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
-  }
-
-  h2 {
-    font-size: 16px; /* 调整为较小的字体大小 */
-  }
-
-  p {
-    font-size: 12px; /* 调整为较小的字体大小 */
-  }
-}
-
-.cards-container {
-  position: absolute; /* 使容器绝对定位 */
-  bottom: 20px; /* 距离底部的距离 */
-  left: 50%;
-  transform: translateX(-50%); /* 居中 */
-  display: flex;
-  justify-content: space-around; /* 水平排列 */
-  width: 90%; /* 设置宽度 */
-  padding: 10px 0; /* 上下内边距 */
-
-  .card {
-    width: 80px; /* 设置宽度 */
-    height: 60px; /* 设置高度 */
-    background: rgba(255, 255, 255, 0.2); /* 半透明背景 */
-    border-radius: 10px;
-    padding: 5px; /* 内边距 */
-    display: flex;
-    flex-direction: column; /* 垂直排列内容 */
-    align-items: center;
-    gap: 2px; /* 减小间距 */
-    color: black;
-    font-size: 14px; /* 设置字体大小 */
-    border: none;
-    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); /* 添加阴影效果 */
-    transition: all 0.2s ease-in-out;
-
-    ion-icon {
-      font-size: 32px; /* 设置图标大小 */
-      flex: 0 0 40%; /* 使图标占据盒子的40% */
-      display: flex; /* 使图标能够使用flex属性 */
-      justify-content: center; /* 水平居中图标 */
-      align-items: center; /* 垂直居中图标 */
-      width: 100%; /* 使图标宽度为100% */
-    }
-
-    p {
-      margin: 0; /* 去除默认的外边距 */
-    }
-
-    &:hover {
-      background: rgba(255, 255, 255, 1); /* 悬停时变为不透明 */
-    }
-}
-}
-
-.tabs-container {
-  margin-top: 20px;
-  padding: 0 20px;
-
-  ion-segment {
-    --background: rgba(255, 255, 255, 0.5);
-    --border-width: 0;
-    --padding-start: 0;
-    --padding-end: 0;
-  }
-
-  ion-segment-button {
-    --indicator-background: transparent;
-    --padding-top: 8px;
-    --padding-bottom: 8px;
-    --padding-start: 16px;
-    --padding-end: 16px;
-
-    &.active {
-      color: blue; /* 激活时文字变为蓝色 */
-      border-bottom: 2px solid blue; /* 激活时显示蓝色横线 */
-    }
-  }
-}
-.like-collection-buttons {
-  display: flex;
-  justify-content: space-between; /* 水平排列并在两端对齐 */
-  width: 100%; /* 使容器宽度为100% */
-  margin-top: 10px; /* 与上方内容的间距 */
-
-  .card {
-    flex: 0 0 calc(25%); /* 设置卡片宽度为页面宽度的25% */
-    margin: 0 calc(12.5%); /* 左右间距为页面宽度的12.5% */
-    background: rgba(255, 255, 255, 0.0); /* 半透明背景 */
-    border-radius: 10px;
-    padding: 10px; /* 内边距 */
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    // box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); /* 添加阴影效果 */
-    transition: background 0.2s ease-in-out;
-
-    .action-button {
-      background: none; /* 无背景 */
-      border: none; /* 无边框 */
-      color: black; /* 字体颜色 */
-      font-size: 14px; /* 字体大小 */
-      cursor: pointer; /* 鼠标指针样式 */
-
-      &:hover {
-        background: rgba(255, 255, 255, 0.5); /* 悬停时变为半透明 */
-      }
-    }
-  }
-}

+ 0 - 18
src/app/tab3/tab3.page.spec.ts

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

+ 0 - 52
src/app/tab3/tab3.page.ts

@@ -1,52 +0,0 @@
-import { Component } from '@angular/core';
-import { IonicModule } from '@ionic/angular'; 
-import { CommonModule } from '@angular/common'; 
-import { ExploreContainerComponent } from '../explore-container/explore-container.component';
-import { addIcons } from 'ionicons';
-import { search, ellipsisHorizontal, timeOutline, downloadOutline, cartOutline, walletOutline, heartOutline, bookmarkOutline, imageOutline, imagesOutline, documentTextOutline } from 'ionicons/icons';
-
-@Component({
-  selector: 'app-tab3',
-  templateUrl: 'tab3.page.html',
-  styleUrls: ['tab3.page.scss'],
-  standalone: true,
-  imports: [
-    IonicModule, 
-    CommonModule, 
-    ExploreContainerComponent 
-  ]
-})
-export class Tab3Page {
-  profile = {
-    name: '派大星',
-    level: 'Lv.17等级 | 才华横溢',
-    vipStatus: true,
-    buttons: [
-      { icon: 'time-outline', text: '浏览记录' },
-      { icon: 'download-outline', text: '我的下载' },
-      { icon: 'cart-outline', text: '我的购买' },
-      { icon: 'wallet-outline', text: '我的钱包' }
-    ],
-    tabs: [
-      { icon: 'images-outline', text: '全部' },
-      { icon: 'image-outline', text: '图文' },
-      { icon: 'document-text-outline', text: '文章' }
-    ]
-  };
-
-  showTabs = false; // 控制显示的按钮
-  activeTab: string = 'all'; // 默认激活的按钮
-
-  constructor() {
-    addIcons({search, ellipsisHorizontal, timeOutline, downloadOutline, cartOutline, walletOutline, heartOutline, bookmarkOutline, imageOutline, imagesOutline, documentTextOutline});
-  }
-
-  toggleTabs(action: string) {
-    this.showTabs = true; // 显示全部、图文、文章按钮
-    this.activeTab = action === 'like' ? 'all' : 'collect'; // 更新当前激活的按钮
-  }
-
-  setActiveTab(tab: string) {
-    this.activeTab = tab; // 更新当前激活的标签
-  }
-}

+ 0 - 12
src/app/tab4/tab4.page.html

@@ -1,12 +0,0 @@
-<ion-header [translucent]="true">
-  <ion-toolbar>
-    <ion-title>tab4</ion-title>
-  </ion-toolbar>
-</ion-header>
-
-<ion-content [fullscreen]="true">
-  <ion-list>
-    <ion-button (click)="goToCreate()"><span>AI创作</span></ion-button>
-    <ion-button (click)="goToCreatePic()"><span>AI绘图</span></ion-button>
-  </ion-list>
-</ion-content>

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


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

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

+ 0 - 28
src/app/tab4/tab4.page.ts

@@ -1,28 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { FormsModule } from '@angular/forms';
-import { IonButton, IonContent, IonHeader, IonList, IonTitle, IonToolbar } from '@ionic/angular/standalone';
-import { Router } from '@angular/router';
-
-@Component({
-  selector: 'app-tab4',
-  templateUrl: './tab4.page.html',
-  styleUrls: ['./tab4.page.scss'],
-  standalone: true,
-  imports: [IonContent, IonHeader,IonList,IonButton, IonTitle, IonToolbar, CommonModule, FormsModule]
-})
-export class Tab4Page implements OnInit {
-
-  constructor(private router:Router) {
-
-  }
-  goToCreate(){
-    this.router.navigateByUrl('/tabs/create')
-  }
-  goToCreatePic(){
-    this.router.navigateByUrl('/tabs/createpic')
-  }
-  ngOnInit() {
-  }
-
-}

+ 0 - 24
src/app/tabs/tabs.page.html

@@ -1,24 +0,0 @@
-<!-- <ion-nav [root]="component"></ion-nav> -->
-<ion-tabs>
-  <ion-tab-bar slot="bottom">
-    <ion-tab-button tab="tab1" href="/tabs/tab1">
-      <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="book"></ion-icon>
-      <ion-label>文库</ion-label>
-    </ion-tab-button>
-
-    <ion-tab-button tab="tab4" href="/tabs/tab4">
-      <ion-icon aria-hidden="true" name="earth"></ion-icon>
-      <ion-label>发现</ion-label>
-    </ion-tab-button>
-
-    <ion-tab-button tab="tab3" href="/tabs/tab3">
-      <ion-icon aria-hidden="true" name="person"></ion-icon>
-      <ion-label>我的</ion-label>
-    </ion-tab-button>
-  </ion-tab-bar>
-</ion-tabs>

+ 0 - 1
src/app/tabs/tabs.page.scss

@@ -1 +0,0 @@
-

+ 0 - 26
src/app/tabs/tabs.page.spec.ts

@@ -1,26 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { provideRouter } from '@angular/router';
-
-import { TabsPage } from './tabs.page';
-
-describe('TabsPage', () => {
-  let component: TabsPage;
-  let fixture: ComponentFixture<TabsPage>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      imports: [TabsPage],
-      providers: [provideRouter([])]
-    }).compileComponents();
-  });
-
-  beforeEach(() => {
-    fixture = TestBed.createComponent(TabsPage);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});

+ 0 - 21
src/app/tabs/tabs.page.ts

@@ -1,21 +0,0 @@
-import { Component, EnvironmentInjector, inject } from '@angular/core';
-import { IonTabs, IonTabBar, IonTabButton, IonLabel, IonIcon, IonButton } from '@ionic/angular/standalone';
-import { addIcons } from 'ionicons';
-import { triangle, ellipse, square } from 'ionicons/icons';
-import { home, book, person, earth } from 'ionicons/icons';
-
-@Component({
-  selector: 'app-tabs',
-  templateUrl: 'tabs.page.html',
-  styleUrls: ['tabs.page.scss'],
-  standalone: true,
-  imports: [IonTabs, IonTabBar, IonTabButton, IonIcon, IonLabel, IonButton],
-})
-export class TabsPage {
-  public environmentInjector = inject(EnvironmentInjector);
-
-  constructor() {
-    addIcons({home, book, person, earth});
-    addIcons({ triangle, ellipse, square });
-  }
-}

+ 0 - 49
src/app/tabs/tabs.routes.ts

@@ -1,49 +0,0 @@
-import { Routes } from '@angular/router';
-import { TabsPage } from './tabs.page';
-
-export const routes: Routes = [
-  {
-    path: 'tabs',
-    component: TabsPage,
-    children: [
-      {
-        path: 'tab1',
-        loadComponent: () =>
-          import('../tab1/tab1.page').then((m) => m.Tab1Page),
-      },
-      {
-        path: 'tab2',
-        loadComponent: () =>
-          import('../tab2/tab2.page').then((m) => m.Tab2Page),
-      },
-      {
-        path: 'tab3',
-        loadComponent: () =>
-          import('../tab3/tab3.page').then((m) => m.Tab3Page),
-      },
-      {
-        path: 'tab4',
-        loadComponent: () => import('../tab4/tab4.page').then( m => m.Tab4Page)
-      },
-      {
-        path: 'create',
-        loadComponent: () => import('../page-create/page-create.component').then( m => m.PageCreateComponent)
-      },
-      {
-        path: 'createpic',
-        loadComponent: () => import('../page-createpic/page-createpic.component').then( m => m.PageCreatepicComponent)
-      },
-      
-      {
-        path: '',
-        redirectTo: '/tabs/tab1',
-        pathMatch: 'full',
-      },
-    ],
-  },
-  {
-    path: '',
-    redirectTo: '/tabs/tab1',
-    pathMatch: 'full',
-  },
-];

BIN
src/assets/icon/favicon.png


BIN
src/assets/image/01/Vx_03.jpg


BIN
src/assets/image/02/duangexing.jpg


BIN
src/assets/image/03/chibizhizhan.jpg


BIN
src/assets/image/04/chushibiao.jpg


BIN
src/assets/image/05/1.jpg


BIN
src/assets/image/05/2.jpg


+ 0 - 1
src/assets/shapes.svg

@@ -1 +0,0 @@
-<svg width="350" height="140" xmlns="http://www.w3.org/2000/svg" style="background:#f6f7f9"><g fill="none" fill-rule="evenodd"><path fill="#F04141" style="mix-blend-mode:multiply" d="M61.905-34.23l96.194 54.51-66.982 54.512L22 34.887z"/><circle fill="#10DC60" style="mix-blend-mode:multiply" cx="155.5" cy="135.5" r="57.5"/><path fill="#3880FF" style="mix-blend-mode:multiply" d="M208.538 9.513l84.417 15.392L223.93 93.93z"/><path fill="#FFCE00" style="mix-blend-mode:multiply" d="M268.625 106.557l46.332-26.75 46.332 26.75v53.5l-46.332 26.75-46.332-26.75z"/><circle fill="#7044FF" style="mix-blend-mode:multiply" cx="299.5" cy="9.5" r="38.5"/><rect fill="#11D3EA" style="mix-blend-mode:multiply" transform="rotate(-60 148.47 37.886)" x="143.372" y="-7.056" width="10.196" height="89.884" rx="5.098"/><path d="M-25.389 74.253l84.86 8.107c5.498.525 9.53 5.407 9.004 10.905a10 10 0 0 1-.057.477l-12.36 85.671a10.002 10.002 0 0 1-11.634 8.42l-86.351-15.226c-5.44-.959-9.07-6.145-8.112-11.584l13.851-78.551a10 10 0 0 1 10.799-8.219z" fill="#7044FF" style="mix-blend-mode:multiply"/><circle fill="#0CD1E8" style="mix-blend-mode:multiply" cx="273.5" cy="106.5" r="20.5"/></g></svg>

+ 0 - 3
src/environments/environment.prod.ts

@@ -1,3 +0,0 @@
-export const environment = {
-  production: true
-};

+ 0 - 16
src/environments/environment.ts

@@ -1,16 +0,0 @@
-// This file can be replaced during build by using the `fileReplacements` array.
-// `ng build` replaces `environment.ts` with `environment.prod.ts`.
-// The list of file replacements can be found in `angular.json`.
-
-export const environment = {
-  production: false
-};
-
-/*
- * For easier debugging in development mode, you can import the following file
- * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
- *
- * This import should be commented out in production mode because it will have a negative impact
- * on performance if an error is thrown.
- */
-// import 'zone.js/plugins/zone-error';  // Included with Angular CLI.

+ 0 - 37
src/global.scss

@@ -1,37 +0,0 @@
-/*
- * App Global CSS
- * ----------------------------------------------------------------------------
- * Put style rules here that you want to apply globally. These styles are for
- * the entire app and not just one component. Additionally, this file can be
- * used as an entry point to import other CSS/Sass files to be included in the
- * output CSS.
- * For more information on global stylesheets, visit the documentation:
- * https://ionicframework.com/docs/layout/global-stylesheets
- */
-
-/* Core CSS required for Ionic components to work properly */
-@import "@ionic/angular/css/core.css";
-
-/* Basic CSS for apps built with Ionic */
-@import "@ionic/angular/css/normalize.css";
-@import "@ionic/angular/css/structure.css";
-@import "@ionic/angular/css/typography.css";
-@import "@ionic/angular/css/display.css";
-
-/* Optional CSS utils that can be commented out */
-@import "@ionic/angular/css/padding.css";
-@import "@ionic/angular/css/float-elements.css";
-@import "@ionic/angular/css/text-alignment.css";
-@import "@ionic/angular/css/text-transformation.css";
-@import "@ionic/angular/css/flex-utils.css";
-
-/**
- * Ionic Dark Mode
- * -----------------------------------------------------
- * For more info, please see:
- * https://ionicframework.com/docs/theming/dark-mode
- */
-
-/* @import "@ionic/angular/css/palettes/dark.always.css"; */
-/* @import "@ionic/angular/css/palettes/dark.class.css"; */
-@import '@ionic/angular/css/palettes/dark.system.css';

+ 0 - 27
src/index.html

@@ -1,27 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-
-<head>
-  <meta charset="utf-8" />
-  <title>Ionic App</title>
-
-  <base href="/" />
-
-  <meta name="color-scheme" content="light dark" />
-  <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
-  <meta name="format-detection" content="telephone=no" />
-  <meta name="msapplication-tap-highlight" content="no" />
-
-  <link rel="icon" type="image/png" href="assets/icon/favicon.png" />
-
-  <!-- add to homescreen for ios -->
-  <meta name="apple-mobile-web-app-capable" content="yes" />
-
-  <meta name="apple-mobile-web-app-status-bar-style" content="black" />
-</head>
-
-<body>
-  <app-root></app-root>
-</body>
-
-</html>

+ 0 - 34
src/main.ts

@@ -1,34 +0,0 @@
-import { bootstrapApplication } from '@angular/platform-browser';
-import { RouteReuseStrategy, provideRouter, withPreloading, PreloadAllModules } from '@angular/router';
-import { IonicRouteStrategy, provideIonicAngular } from '@ionic/angular/standalone';
-
-import { routes } from './app/app.routes';
-import { AppComponent } from './app/app.component';
-
-
-// 引用HttpClient方法
-import { provideHttpClient } from '@angular/common/http';
-// 引用移动端授权检测供应器
-import { Diagnostic } from '@awesome-cordova-plugins/diagnostic/ngx';
-// 设置Parse服务属性
-import Parse from "parse";
-Parse.initialize("ncloudmaster");
-Parse.serverURL = "https://server.fmode.cn/parse";
-localStorage.setItem("NOVA_APIG_SERVER", 'aHR0cHMlM0ElMkYlMkZzZXJ2ZXIuZm1vZGUuY24lMkZhcGklMkZhcGlnJTJG')
-
-// 注意:替换Token 根据Token设置Parse服务帐套权限
-Parse.User.become('r:d086cc6a338d83f7b79d4d9d602a91ac')
-
-// 'r:E4KpGvTEto-182791453861733055852'
-bootstrapApplication(AppComponent, {
-  providers: [
-    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },
-    provideIonicAngular(),
-    provideRouter(routes, withPreloading(PreloadAllModules)),
-    // 添加HttpClient供应器
-    provideHttpClient(),
-    // 添加Diagnostic
-    Diagnostic,
-    // ...
-  ],
-});

+ 0 - 55
src/polyfills.ts

@@ -1,55 +0,0 @@
-/**
- * This file includes polyfills needed by Angular and is loaded before the app.
- * You can add your own extra polyfills to this file.
- *
- * This file is divided into 2 sections:
- *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
- *   2. Application imports. Files imported after ZoneJS that should be loaded before your main
- *      file.
- *
- * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
- * automatically update themselves. This includes recent versions of Safari, Chrome (including
- * Opera), Edge on the desktop, and iOS and Chrome on mobile.
- *
- * Learn more in https://angular.io/guide/browser-support
- */
-
-/***************************************************************************************************
- * BROWSER POLYFILLS
- */
-
-/**
- * By default, zone.js will patch all possible macroTask and DomEvents
- * user can disable parts of macroTask/DomEvents patch by setting following flags
- * because those flags need to be set before `zone.js` being loaded, and webpack
- * will put import in the top of bundle, so user need to create a separate file
- * in this directory (for example: zone-flags.ts), and put the following flags
- * into that file, and then add the following code before importing zone.js.
- * import './zone-flags';
- *
- * The flags allowed in zone-flags.ts are listed here.
- *
- * The following flags will work for all browsers.
- *
- * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
- * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
- * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
- *
- *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
- *  with the following flag, it will bypass `zone.js` patch for IE/Edge
- *
- *  (window as any).__Zone_enable_cross_context_check = true;
- *
- */
-
-import './zone-flags';
-
-/***************************************************************************************************
- * Zone JS is required by default for Angular itself.
- */
-import 'zone.js';  // Included with Angular CLI.
-
-
-/***************************************************************************************************
- * APPLICATION IMPORTS
- */

+ 0 - 14
src/test.ts

@@ -1,14 +0,0 @@
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
-import 'zone.js/testing';
-import { getTestBed } from '@angular/core/testing';
-import {
-  BrowserDynamicTestingModule,
-  platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
-  BrowserDynamicTestingModule,
-  platformBrowserDynamicTesting(),
-);

+ 0 - 2
src/theme/variables.scss

@@ -1,2 +0,0 @@
-// For information on how to create your own theme, please see:
-// http://ionicframework.com/docs/theming/

+ 0 - 6
src/zone-flags.ts

@@ -1,6 +0,0 @@
-/**
- * Prevents Angular change detection from
- * running with certain Web Component callbacks
- */
-// eslint-disable-next-line no-underscore-dangle
-(window as any).__Zone_disable_customElements = true;