|
@@ -1,40 +1,65 @@
|
|
|
|
|
|
import { Component, OnInit } from '@angular/core';
|
|
import { Component, OnInit } from '@angular/core';
|
|
-import { IonicModule, NavController } from '@ionic/angular';
|
|
|
|
|
|
+import { IonAvatar, IonCardTitle, IonItem, IonLabel, IonSearchbar, NavController } from '@ionic/angular/standalone';
|
|
import { PageEditComponent } from '../page-edit/page-edit.component';
|
|
import { PageEditComponent } from '../page-edit/page-edit.component';
|
|
import { CloudUser } from 'src/lib/ncloud';
|
|
import { CloudUser } from 'src/lib/ncloud';
|
|
|
|
+import { CloudSeUser } from 'src/lib/cloudSeuser';
|
|
import { openUserLoginModal } from 'src/lib/user/modal-user-login/modal-user-login.component';
|
|
import { openUserLoginModal } from 'src/lib/user/modal-user-login/modal-user-login.component';
|
|
import { ModalController } from '@ionic/angular/standalone';
|
|
import { ModalController } from '@ionic/angular/standalone';
|
|
|
|
+import { IonButton, IonCard, IonCardContent, IonCardHeader, IonCol, IonContent, IonGrid, IonHeader, IonIcon, IonInput, IonRow, IonTextarea, IonTitle, IonToolbar } from '@ionic/angular/standalone';
|
|
|
|
+
|
|
|
|
+interface UserInfo {
|
|
|
|
+ name: string;
|
|
|
|
+ avatar: string;
|
|
|
|
+}
|
|
|
|
|
|
@Component({
|
|
@Component({
|
|
selector: 'app-tab3',
|
|
selector: 'app-tab3',
|
|
templateUrl: './tab3.page.html',
|
|
templateUrl: './tab3.page.html',
|
|
styleUrls: ['./tab3.page.scss'],
|
|
styleUrls: ['./tab3.page.scss'],
|
|
standalone: true,
|
|
standalone: true,
|
|
- imports: [IonicModule],
|
|
|
|
|
|
+ imports: [
|
|
|
|
+ IonContent, IonHeader, IonTitle, IonToolbar, // 引入 IonicModule
|
|
|
|
+ IonButton,IonTextarea,IonInput,IonCard,IonCardContent,IonGrid,IonRow,IonCol,IonIcon,
|
|
|
|
+ IonCardHeader,IonItem,IonAvatar,IonSearchbar,IonLabel,IonCardTitle,
|
|
|
|
+ ],
|
|
})
|
|
})
|
|
export class Tab3Page implements OnInit {
|
|
export class Tab3Page implements OnInit {
|
|
|
|
|
|
currentUser:CloudUser|undefined
|
|
currentUser:CloudUser|undefined
|
|
// 用户信息数据
|
|
// 用户信息数据
|
|
userData = {
|
|
userData = {
|
|
- name: '', // 默认值,可以为空测试默认显示“游客”
|
|
|
|
|
|
+ name: '', // 默认值
|
|
avatar: 'assets/img/user-avatar.jpg' // 默认头像路径
|
|
avatar: 'assets/img/user-avatar.jpg' // 默认头像路径
|
|
};
|
|
};
|
|
|
|
|
|
constructor(private navCtrl: NavController, private modalCtrl: ModalController) {
|
|
constructor(private navCtrl: NavController, private modalCtrl: ModalController) {
|
|
- this.currentUser = new CloudUser();
|
|
|
|
|
|
+ this.currentUser=new CloudUser();
|
|
}
|
|
}
|
|
|
|
|
|
- ngOnInit() {
|
|
|
|
|
|
+ async ngOnInit() {
|
|
// 在这里可以加载用户信息(如果从API或服务中获取)
|
|
// 在这里可以加载用户信息(如果从API或服务中获取)
|
|
|
|
+ await this.loadUserData();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ async loadUserData() {
|
|
|
|
+ // 如果用户已经登录,获取当前用户的 seUser 信息
|
|
|
|
+ if (this.currentUser) {
|
|
|
|
+ const cloudSeUser = new CloudSeUser();
|
|
|
|
+ const userInfo = await cloudSeUser.getCurrentUserInfo();
|
|
|
|
+
|
|
|
|
+ if (userInfo) {
|
|
|
|
+ this.userData.name = userInfo.get('name') || '匿名用户'; // 如果没有名字,显示默认值
|
|
|
|
+ this.userData.avatar = userInfo.get('avatar') || 'assets/img/user-avatar.jpg'; // 如果没有头像,显示默认头像
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
async login(){
|
|
async login(){
|
|
// 弹出登录窗口
|
|
// 弹出登录窗口
|
|
let user = await openUserLoginModal(this.modalCtrl);
|
|
let user = await openUserLoginModal(this.modalCtrl);
|
|
if(user?.id){
|
|
if(user?.id){
|
|
this.currentUser = user
|
|
this.currentUser = user
|
|
|
|
+ await this.loadUserData();// 登录后加载用户信息
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -47,7 +72,12 @@ export class Tab3Page implements OnInit {
|
|
}
|
|
}
|
|
|
|
|
|
logout(){
|
|
logout(){
|
|
- this.currentUser?.logout();
|
|
|
|
|
|
+ if (this.currentUser) {
|
|
|
|
+ this.currentUser.logout();
|
|
|
|
+ this.currentUser = undefined;
|
|
|
|
+ // 清空用户数据
|
|
|
|
+ this.userData = { name: '', avatar: 'assets/img/user-avatar.jpg' };
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
async goToEdit() {
|
|
async goToEdit() {
|
|
@@ -65,7 +95,11 @@ export class Tab3Page implements OnInit {
|
|
|
|
|
|
if (role === 'confirm') {
|
|
if (role === 'confirm') {
|
|
// 更新用户信息
|
|
// 更新用户信息
|
|
- this.userData = data;
|
|
|
|
|
|
+ this.userData = {
|
|
|
|
+ name: data.get('name') || '匿名用户',
|
|
|
|
+ avatar: data.get('avatar') || 'assets/img/user-avatar.jpg',
|
|
|
|
+ };
|
|
|
|
+ await this.loadUserData(); // 更新头像和用户名
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|