Browse Source

feat:icons

0225304 1 day ago
parent
commit
4a7228c428

+ 2 - 2
myapp/src/app/tab1/tab1.page.html

@@ -14,9 +14,9 @@
         <ion-button (click)="goToEditPage('编辑')">
             <ion-icon name="add"></ion-icon>
         </ion-button>
-        <ion-button (click)="importDiary()">
+        <!-- <ion-button (click)="importDiary()">
         <ion-icon name="cloud-outline"></ion-icon>
-        </ion-button>
+        </ion-button> -->
     </ion-buttons>
     </div>
 

+ 22 - 1
myapp/src/app/tab1/tab1.page.ts

@@ -29,7 +29,28 @@ export class Tab1Page implements OnInit{
   }
   
 
-  navigateTo(setting?:string){}
+  //navigateTo(setting?:string){}
+  navigateTo(page: string) {
+  // 根据传入的页面参数进行导航
+  switch(page) {
+    case 'settings':
+      // 导航到设置页面
+      break;
+    case 'profile':
+      this.navCtrl.navigateForward(["tabs","tab4"]); // 导航到我的页面
+      break;
+    case 'activity':
+      this.navCtrl.navigateForward(["tabs","tab2"]);// 导航到动态页面
+      break;
+    case 'drafts':
+      // 导航到草稿箱页面
+      break;
+  }
+  
+  // 关闭菜单
+  //const menu = document.querySelector('ion-menu');
+  //menu.close();
+}
   diaryList: CloudObject[]=[];
   async loadDiaries() {
     let query=new CloudQuery("Diary")

+ 18 - 8
myapp/src/app/tab2/tab2.page.html

@@ -1,10 +1,19 @@
 <ion-header [translucent]="true">
-  <div class="header">
-    <ion-item class="search-bar">
-      <ion-icon name="search-outline"></ion-icon>
-      <ion-input class="Input with placeholder" placeholder="负面情绪禁止过夜——现在立刻销毁"></ion-input>
-    </ion-item>
-  </div>
+  <ion-toolbar>
+      <div class="header">
+        <ion-item class="search-bar">
+          <ion-icon name="search-outline" slot="start"></ion-icon>
+          <ion-input class="Input with placeholder" placeholder="负面情绪禁止过夜——现在立刻销毁"></ion-input>
+        </ion-item>
+        
+        <!-- 添加右侧按钮 -->
+        <ion-buttons slot="end">
+          <ion-button>
+            <ion-icon name="add-circle-outline" slot="icon-only"></ion-icon>
+          </ion-button>
+        </ion-buttons>
+      </div>
+  </ion-toolbar>
 </ion-header>
 
 <ion-content [fullscreen]="true">
@@ -25,12 +34,13 @@
   
   <!-- 动态日记列表 -->
   <div class="diary-list">
+
     <!-- 动态项 -->
     <div class="diary-item" *ngFor="let dynamic of dynamics">
       <div class="user-info">
         <div class="user-left">
-          <div class="user-avatar">{{ dynamic.get('author')?.username?.charAt(0) || 'U' }}</div>
-          <div class="user-name">{{ dynamic.get('author')?.username || '匿名用户' }}</div>
+          <div class="user-avatar">{{ dynamic.get('author')?.get('username')?.charAt(0) || 'U' }}</div>
+          <div class="user-name">{{ dynamic.get('author')?.get('username') || '匿名用户' }}</div>
         </div>
         <ion-icon name="ellipsis-horizontal" class="more-icon"></ion-icon>
       </div>

+ 2 - 0
myapp/src/app/tab2/tab2.page.scss

@@ -217,3 +217,5 @@ body {
     font-size: 1.1rem;
     margin-right: 4px;
 }
+
+

+ 15 - 1
myapp/src/app/tab2/tab2.page.ts

@@ -15,7 +15,18 @@ export class Tab2Page implements OnInit {
   currentUser: any = null;
   dynamics: any[] = [];
   userInteractions: Record<string, any> = {}; // 记录用户对每个动态的互动状态
-  
+  // 在组件类中添加
+  tabs = [
+    { id: 0, title: '推荐' },
+    { id: 1, title: '关注' },
+    { id: 2, title: '话题' }
+  ];
+  activeTab = 0;
+
+  switchTab(tabId: number) {
+    this.activeTab = tabId;
+    // 这里可以添加切换内容的逻辑
+  }
   constructor(
     private navCtrl:NavController,
     private router: Router,
@@ -44,6 +55,8 @@ export class Tab2Page implements OnInit {
     //this.router.navigate(['/dynamic-detail', dynamicId]);
   }
 
+  goToEditdynamic(dynamic?:string){}
+
   async loadData() {
     // 获取当前用户
     this.currentUser = new CloudUser();
@@ -62,6 +75,7 @@ export class Tab2Page implements OnInit {
     // 查询当前用户的互动
     const interactionQuery = new CloudQuery("Interaction");
     interactionQuery.equalTo("user", this.currentUser.id);
+    interactionQuery.include("user"); // 包含互动用户信息
     const interactions = await interactionQuery.find();
 
     // 初始化互动状态

+ 1 - 1
myapp/src/app/tab2/thanks-cloud/thanks-cloud.page.html

@@ -4,7 +4,7 @@
       <ion-back-button defaultHref="/tabs/tab2"></ion-back-button>
     </ion-buttons>
     <ion-title>感恩清单</ion-title>
-    <ion-buttons>
+    <ion-buttons slot="end">
     <ion-button (click)="importThanks()">
         <ion-icon name="cloud-outline"></ion-icon>
     </ion-button>

+ 9 - 11
myapp/src/app/tab3/tab3.page.html

@@ -12,20 +12,18 @@
 
     <!-- 内容区域 -->
     <div class="content">
-        <!-- 消息通知卡片 -->
+        <!-- 消息通知卡片 - 添加了hover和active效果 -->
         <div class="notification-card">
-            
-            <div class="notification-title">点击打开消息通知</div>
-            <div class="notification-desc">把握与TA的互动机会</div>
+        <div class="notification-title">点击打开消息通知</div>
+        <div class="notification-desc">把握与TA的互动机会</div>
         </div>
-        
-        <!-- 好友匹配卡片 -->
+
+        <!-- 好友匹配卡片 - 添加了hover和active效果 -->
         <div class="match-card">
-            <div class="match-info">
-                <div class="match-title">此刻匹配</div>
-                <div class="match-desc">给此刻在线的ta们say hi</div>
-            </div>
-            <i class="match-icon ion-ios-arrow-forward"></i>
+        <div class="match-info">
+            <div class="match-title">此刻匹配</div>
+            <div class="match-desc">给此刻在线的ta们say hi</div>
+        </div>
         </div>
 
         <!-- ai咨询卡片 -->

+ 49 - 0
myapp/src/app/tab3/tab3.page.scss

@@ -299,4 +299,53 @@ body {
 .action-icon {
   margin-right: 8px;
   font-size: 1.2rem;
+}
+
+/* 消息通知卡片样式 */
+.notification-card {
+  // background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
+  // border-radius: 12px;
+  // padding: 16px;
+  // margin: 16px;
+  // box-shadow: 0 4px 8px rgba(0,0,0,0.1);
+  // transition: all 0.3s ease;
+  
+  &:active {
+    transform: scale(0.98);
+    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
+  }
+  
+  &:hover {
+    cursor: pointer;
+    box-shadow: 0 6px 12px rgba(0,0,0,0.15);
+  }
+}
+
+/* 好友匹配卡片样式 */
+.match-card {
+  // display: flex;
+  // justify-content: space-between;
+  // align-items: center;
+  // background: linear-gradient(135deg, #e0f7fa 0%, #80deea 100%);
+  // border-radius: 12px;
+  // padding: 16px;
+  // margin: 16px;
+  // box-shadow: 0 4px 8px rgba(0,0,0,0.1);
+  // transition: all 0.3s ease;
+  
+  &:active {
+    transform: scale(0.98);
+    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
+  }
+  
+  &:hover {
+    cursor: pointer;
+    box-shadow: 0 6px 12px rgba(0,0,0,0.15);
+  }
+}
+
+/* 更新图标样式 */
+.match-icon {
+  font-size: 20px;
+  color: var(--ion-color-medium);
 }

+ 20 - 52
myapp/src/app/tab4/tab4.page.html

@@ -21,15 +21,15 @@
         
         <div class="stats-container">
             <div class="stat-item">
-                <div class="stat-number">0</div>
+                <div class="stat-number">6</div>
                 <div class="stat-label">日记数量</div>
             </div>
             <div class="stat-item">
-                <div class="stat-number">0</div>
+                <div class="stat-number">2</div>
                 <div class="stat-label">记录天数</div>
             </div>
             <div class="stat-item">
-                <div class="stat-number">0</div>
+                <div class="stat-number">264</div>
                 <div class="stat-label">总字数</div>
             </div>
         </div>
@@ -48,19 +48,19 @@
         <div class="icon-grid">
             <div class="icon-card">
                 <div class="icon-wrapper">
-                    <i class="ion-ios-apps"></i>
+                    <ion-icon name="grid-outline"></ion-icon>
                 </div>
                 <div class="icon-label">小组件</div>
             </div>
             <div class="icon-card">
                 <div class="icon-wrapper">
-                    <i class="ion-ios-book"></i>
+                    <ion-icon name="book-outline"></ion-icon>
                 </div>
                 <div class="icon-label">我写的书</div>
             </div>
             <div class="icon-card">
                 <div class="icon-wrapper">
-                    <i class="ion-ios-color-palette"></i>
+                    <ion-icon name="brush-outline"></ion-icon>
                 </div>
                 <div class="icon-label">装扮空间</div>
             </div>
@@ -71,101 +71,69 @@
             <div class="function-item">
                 <div class="function-left">
                     <div class="function-icon">
-                        <i class="ion-ios-calendar"></i>
+                        <ion-icon name="calendar-outline"></ion-icon>
                     </div>
                     <div class="function-name">日签墙</div>
                 </div>
-                <i class="function-arrow ion-ios-arrow-forward"></i>
+                <ion-icon name="chevron-forward-outline" class="function-arrow"></ion-icon>
             </div>
             
             <div class="function-item">
                 <div class="function-left">
                     <div class="function-icon">
-                        <i class="ion-ios-document"></i>
+                        <ion-icon name="checkmark-done-outline"></ion-icon>
                     </div>
                     <div class="function-name">打卡收集好句子</div>
                 </div>
-                <i class="function-arrow ion-ios-arrow-forward"></i>
+                <ion-icon name="chevron-forward-outline" class="function-arrow"></ion-icon>
             </div>
             
             <div class="function-item">
                 <div class="function-left">
                     <div class="function-icon">
-                        <i class="ion-ios-folder"></i>
+                        <ion-icon name="file-tray-stacked-outline"></ion-icon>
                     </div>
                     <div class="function-name">草稿箱</div>
                 </div>
-                <i class="function-arrow ion-ios-arrow-forward"></i>
+                <ion-icon name="chevron-forward-outline" class="function-arrow"></ion-icon>
             </div>
             
             <div class="function-item">
                 <div class="function-left">
                     <div class="function-icon">
-                        <i class="ion-ios-cloud-upload"></i>
+                        <ion-icon name="cloud-upload-outline"></ion-icon>
                     </div>
                     <div class="function-name">同步我的日记</div>
                 </div>
                 <div>
-                    <span class="function-badge">你有日记未同步</span>
-                    <i class="function-arrow ion-ios-arrow-forward"></i>
+                    <!-- <span class="function-badge">你有日记未同步</span> -->
+                    <ion-icon name="chevron-forward-outline" class="function-arrow"></ion-icon>
                 </div>
             </div>
             
             <div class="function-item">
                 <div class="function-left">
                     <div class="function-icon">
-                        <i class="ion-ios-images"></i>
+                        <ion-icon name="images-outline"></ion-icon>
                     </div>
                     <div class="function-name">相册</div>
                 </div>
                 <div>
                     <span class="function-badge">0张照片</span>
-                    <i class="function-arrow ion-ios-arrow-forward"></i>
+                    <ion-icon name="chevron-forward-outline" class="function-arrow"></ion-icon>
                 </div>
             </div>
             
             <div class="function-item">
                 <div class="function-left">
                     <div class="function-icon">
-                        <i class="ion-ios-settings"></i>
+                        <ion-icon name="settings-outline"></ion-icon>
                     </div>
                     <div class="function-name">设置</div>
                 </div>
-                <i class="function-arrow ion-ios-arrow-forward"></i>
+                <ion-icon name="chevron-forward-outline" class="function-arrow"></ion-icon>
             </div>
         </div>
     </div>
 
-    <script>
-        // 复制UID功能
-        document.querySelector('.copy-btn').addEventListener('click', function() {
-            const uid = document.querySelector('.user-id').textContent.replace('UID:', '').trim();
-            navigator.clipboard.writeText(uid).then(() => {
-                const originalText = this.textContent;
-                this.textContent = '已复制';
-                setTimeout(() => {
-                    this.textContent = originalText;
-                }, 2000);
-            });
-        });
-        
-        // 卡片点击效果
-        document.querySelectorAll('.premium-card, .icon-card, .function-item').forEach(item => {
-            item.addEventListener('click', function() {
-                let targetName = '';
-                
-                if(this.classList.contains('premium-card')) {
-                    targetName = '开通专业版';
-                } else if(this.classList.contains('icon-card')) {
-                    targetName = this.querySelector('.icon-label').textContent;
-                } else {
-                    targetName = this.querySelector('.function-name').textContent;
-                }
-                
-                console.log('跳转到: ' + targetName);
-                // alert('跳转到: ' + targetName);
-            });
-        });
-    </script>
-
-</ion-content>
+</ion-content> 

BIN
myapp/src/assets/images/gongyuan.jpg


BIN
myapp/src/assets/images/music.jpg


+ 2 - 2
myapp/src/lib/import-data.ts

@@ -30,7 +30,7 @@ async function createTestDynamics(users: CloudUser[]): Promise<CloudObject[]> {
     const dynamics = [
         {
             content: "今天天气真好,去公园散步了!🌞",
-            images: ["https://example.com/park1.jpg", "https://example.com/park2.jpg"],
+            images: ["assets/images/gongyuan.jpg"],
             location: { latitude: 39.9042, longitude: 116.4074 },
             mood: "happy",
             tags: ["户外", "休闲"]
@@ -43,7 +43,7 @@ async function createTestDynamics(users: CloudUser[]): Promise<CloudObject[]> {
         },
         {
             content: "分享一首好听的歌:https://music.163.com/song?id=123456",
-            images: ["https://example.com/music_cover.jpg"],
+            images: ["assets/images/music.jpg"],
             mood: "relaxed",
             tags: ["音乐", "分享"]
         }