import { Component, OnInit } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FormBuilder, FormGroup, Validators, ReactiveFormsModule } from '@angular/forms'; import { UserService, UserInfo } from '../../services/user.service'; import { NotificationService } from '../../services/notification.service'; import { ItemService } from '../../services/item.service'; @Component({ selector: 'app-profile', standalone: true, imports: [CommonModule, ReactiveFormsModule], templateUrl: './profile.component.html', styleUrl: './profile.component.scss' }) export class ProfileComponent implements OnInit { userInfo: UserInfo | null = null; isEditing = false; userForm: FormGroup; constructor( private userService: UserService, private notificationService: NotificationService, private itemService: ItemService, private fb: FormBuilder ) { this.userForm = this.fb.group({ nickname: ['', Validators.required], gender: ['other', Validators.required], age: [0, [Validators.required, Validators.min(0), Validators.max(150)]] }); } ngOnInit(): void { this.loadUserInfo(); } loadUserInfo() { this.userInfo = this.userService.getUserInfo(); if (this.userInfo) { this.userForm.patchValue(this.userInfo); } } startEditing() { this.isEditing = true; } saveUserInfo() { if (this.userForm.valid) { this.userService.saveUserInfo(this.userForm.value); this.userInfo = this.userForm.value; this.isEditing = false; } } cancelEditing() { this.isEditing = false; this.loadUserInfo(); } checkNotificationPermission() { this.notificationService.requestPermission().then(granted => { alert(granted ? '通知权限已开启' : '通知权限已拒绝'); }); } clearAllData() { if (confirm('确定要清空所有数据吗?此操作不可恢复!')) { localStorage.clear(); alert('数据已清空'); window.location.reload(); } } }