| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- 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();
- }
- }
- }
|