Browse Source

fit:button again

0225304 1 day ago
parent
commit
1ba84dfa76

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

@@ -4,10 +4,7 @@
         <ion-buttons slot="start">
             <ion-menu-button>
                  <ion-icon slot="icon-only" name="menu-outline"></ion-icon>
-            </ion-menu-button>
-        <!-- <ion-button id="menuBtn">
-            <ion-icon slot="icon-only" name="menu-outline"></ion-icon>
-        </ion-button> -->
+            </ion-menu-button> 
         </ion-buttons> 
         <div class="header-title">日记本</div> 
         <ion-buttons slot="end">
@@ -72,6 +69,5 @@
             <p>还没有日记,点击右上角+创建第一篇日记</p>
         </div>
         }
-    </div>
-    
+    </div> 
 </ion-content>

+ 17 - 5
myapp/src/app/tab2/tab2.page.html

@@ -26,14 +26,26 @@
   </div>
   
   <!-- 动态日记标题栏 -->
-  <div class="tab-bar">
-    <div class="tab-item active">推荐</div>
-    <div class="tab-item">关注</div>
-    <div class="tab-item">话题</div>
+  <div class="tab-container">
+    <div class="tab-bar">
+      <div class="tab-item" 
+          *ngFor="let tab of tabs" 
+          [class.active]="activeTab === tab.id"
+          (click)="switchTab(tab.id)">
+        {{ tab.title }}
+      </div>
+      <div class="tab-slider" [style.transform]="'translateX(' + (activeTab * 100) + '%)'"></div>
+    </div>
   </div>
   
+  <!-- 加载状态 -->
+  <div *ngIf="isLoading" class="loading-container">
+    <ion-spinner name="crescent"></ion-spinner>
+    <div class="loading-text">加载中...</div>
+  </div>
+
   <!-- 动态日记列表 -->
-  <div class="diary-list">
+  <div class="diary-list" *ngIf="!isLoading && dynamics.length > 0">
 
     <!-- 动态项 -->
     <div class="diary-item" *ngFor="let dynamic of dynamics">

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

@@ -219,3 +219,42 @@ body {
 }
 
 
+.loading-container {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  padding: 40px 0;
+  
+  ion-spinner {
+    width: 40px;
+    height: 40px;
+    color: var(--ion-color-primary);
+  }
+  
+  .loading-text {
+    margin-top: 16px;
+    color: var(--ion-color-medium);
+    font-size: 14px;
+  }
+}
+
+.empty-state {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  padding: 60px 20px;
+  text-align: center;
+  
+  ion-icon {
+    font-size: 60px;
+    color: var(--ion-color-medium);
+    margin-bottom: 16px;
+  }
+  
+  .empty-text {
+    color: var(--ion-color-medium);
+    font-size: 16px;
+  }
+}

+ 9 - 0
myapp/src/app/tab2/tab2.page.ts

@@ -12,6 +12,7 @@ import { AlertController } from '@ionic/angular';
 })
 export class Tab2Page implements OnInit {
 
+  isLoading = true; // 添加加载状态变量
   currentUser: any = null;
   dynamics: any[] = [];
   userInteractions: Record<string, any> = {}; // 记录用户对每个动态的互动状态
@@ -58,6 +59,9 @@ export class Tab2Page implements OnInit {
   goToEditdynamic(dynamic?:string){}
 
   async loadData() {
+    
+    this.isLoading = true; // 开始加载
+    try {
     // 获取当前用户
     this.currentUser = new CloudUser();
     const user = await this.currentUser.current();
@@ -90,6 +94,11 @@ export class Tab2Page implements OnInit {
         };
       }
     });
+  }catch (error) {
+      console.error('加载动态失败:', error);
+    } finally {
+      this.isLoading = false; // 结束加载
+    }
   }
 
   // 点赞/取消点赞

+ 4 - 37
myapp/src/app/tab3/tab3.page.html

@@ -3,7 +3,9 @@
   <!-- 顶部标题栏 -->
     <div class="header">
         <div class="header-title">消息</div>
-        <button class="clear-btn">一键清除</button>
+        <ion-button fill="clear" class="clear-btn">
+            <ion-icon name="trash-outline" slot="icon-only"></ion-icon>
+        </ion-button>
     </div>
 
 </ion-header>
@@ -113,40 +115,5 @@
             </div>
         </div>
     </div>
-
-    <script>
-        // 一键清除功能
-        document.querySelector('.clear-btn').addEventListener('click', function() {
-            if(confirm('确定要清除所有未读消息吗?')) {
-                document.querySelectorAll('.chat-badge').forEach(badge => {
-                    badge.textContent = '';
-                    badge.style.backgroundColor = 'transparent';
-                });
-                alert('已清除所有未读消息');
-            }
-        });
-        
-        // 卡片点击效果
-        document.querySelectorAll('.notification-card, .match-card').forEach(card => {
-            card.addEventListener('click', function() {
-                alert('跳转到对应功能页面');
-            });
-        });
-        
-        // 聊天项点击效果
-        document.querySelectorAll('.chat-item').forEach(item => {
-            item.addEventListener('click', function() {
-                const name = this.querySelector('.chat-name').textContent;
-                alert('进入与 ' + name + ' 的聊天');
-                
-                // 清除未读红点
-                const badge = this.querySelector('.chat-badge');
-                if(badge.textContent) {
-                    badge.textContent = '';
-                    badge.style.backgroundColor = 'transparent';
-                }
-            });
-        });
-    </script>
-
+ 
 </ion-content>

+ 1 - 2
myapp/src/app/tab4/tab4.page.html

@@ -16,7 +16,7 @@
                 <div class="user-name">匿名兔ffe</div>
                 <div class="user-id">UID:a15143bcf10c4d...</div>
             </div>
-            <button (click)="goLogin('登录')" class="copy-btn">登录</button>
+            <button class="copy-btn">登录</button>
         </div>
         
         <div class="stats-container">
@@ -106,7 +106,6 @@
                     <div class="function-name">同步我的日记</div>
                 </div>
                 <div>
-                    <!-- <span class="function-badge">你有日记未同步</span> -->
                     <ion-icon name="chevron-forward-outline" class="function-arrow"></ion-icon>
                 </div>
             </div>

+ 21 - 3
myapp/src/lib/import-data.ts

@@ -4,9 +4,27 @@ import { CloudObject, CloudUser } from './ncloud';
 // 创建测试用户
 async function createTestUsers(): Promise<CloudUser[]> {
     const users = [
-        { username: 'user1', password: '123456', email: 'user1@example.com' },
-        { username: 'user2', password: '123456', email: 'user2@example.com' },
-        { username: 'user3', password: '123456', email: 'user3@example.com' }
+        { 
+            username: 'user1', 
+            password: '123456', 
+            email: 'user1@example.com',
+            profilePicture: `https://randomuser.me/api/portraits/men/1.jpg`,
+            nickname: '用户1'
+        },
+        { 
+            username: 'user2', 
+            password: '123456', 
+            email: 'user2@example.com',
+            profilePicture: `https://randomuser.me/api/portraits/men/2.jpg`,
+            nickname: '用户2'
+        },
+        { 
+            username: 'user3', 
+            password: '123456', 
+            email: 'user3@example.com',
+            profilePicture: `https://randomuser.me/api/portraits/men/3.jpg`,
+            nickname: '用户3'
+        }
     ];
 
     const createdUsers: CloudUser[] = [];