123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- import { Component, OnInit } from '@angular/core';
- import { Router } from '@angular/router';
- import {
- IonHeader,
- IonToolbar,
- IonTitle,
- IonContent,
- IonCard,
- IonCardContent,
- IonGrid,
- IonRow,
- IonCol,
- IonAvatar,
- IonButton,
- ModalController,
- IonItem,
- IonList,
- IonSegment,
- IonSegmentButton,
- IonLabel,
- IonSegmentView,
- IonSegmentContent,
- } from '@ionic/angular/standalone';
- import { CloudQuery, CloudUser } from 'src/lib/cyxncloud';
- import { ModalEditPagePage } from '../page/modal/modal-edit-page/modal-edit-page.page';
- import { CommonModule } from '@angular/common';
- export interface User {
- avatar: string;
- username: string;
- age: number;
- sex: string;
- email: string;
- phoneNumber: string;
- height: number;
- weight: number;
- fans: number;
- likes: number;
- }
- @Component({
- selector: 'app-tab4',
- templateUrl: 'tab4.page.html',
- styleUrls: ['tab4.page.scss'],
- standalone: true,
- imports: [
- IonHeader,
- IonToolbar,
- IonTitle,
- IonContent,
- IonCard,
- IonGrid,
- IonRow,
- IonCol,
- IonAvatar,
- IonCardContent,
- IonButton,
- IonItem,
- IonList,
- IonSegment,
- IonSegmentButton,
- IonLabel,
- IonSegmentView,
- IonSegmentContent,
- CommonModule,
- ],
- })
- export class Tab4Page implements OnInit {
- is_login: boolean = false;
- currentUser: CloudUser | null = null;
- userChangeInfo: any = '';
- user: User = {
- avatar: 'https://ionicframework.com/docs/img/demos/avatar.svg',
- username: '请登录',
- age: 0,
- sex: '-',
- email: '-',
- phoneNumber: '-',
- height: 0,
- weight: 0,
- fans: 0,
- likes: 0,
- };
- constructor(private router: Router, private modalCtrl: ModalController) {
- this.getByUser();
- let userCache = localStorage.getItem('userData');
- if (userCache) {
- let userData = JSON.parse(userCache);
- console.log(userData);
- this.user.avatar = userData.avatar;
- this.user.username = userData.username;
- this.user.age = userData.age;
- this.user.sex = userData.sex;
- this.user.email = userData.email;
- this.user.phoneNumber = userData.phoneNumber;
- this.user.height = userData.height;
- this.user.weight = userData.weight;
- this.user.fans = userData.fans;
- this.user.likes = userData.likes;
- let is_loginCache = localStorage.getItem('is_login');
- this.is_login = is_loginCache === 'true' ? true : false;
- }
- }
- ngOnInit() {}
- refreshPage() {
- window.location.reload(); // 强制刷新整个页面
- }
- navigateTo(path: string) {
- this.router.navigate([`/${path}`]);
- }
- async openModal() {
- const modal = await this.modalCtrl.create({
- component: ModalEditPagePage,
- });
- modal.present();
- const { data, role } = await modal.onWillDismiss();
- if (role === 'confirm') {
- this.userChangeInfo = data;
- await this.updateUser();
- }
- }
- async logout() {
- this.is_login = false;
- let user = new CloudUser();
- let flag = await user.logout();
- localStorage.removeItem('userData');
- localStorage.removeItem('is_login');
- }
- async updateUser() {
- Object.keys(this.userChangeInfo).forEach((key) => {
- if (key == 'age') {
- this.userChangeInfo[key] = Number(this.userChangeInfo[key]);
- }
- if (key == 'height') {
- this.userChangeInfo[key] = Number(this.userChangeInfo[key]);
- }
- if (key == 'weight') {
- this.userChangeInfo[key] = Number(this.userChangeInfo[key]);
- }
- });
- let user = new CloudUser();
- let res = await user.update(this.userChangeInfo);
- console.log('成功更新用户信息');
- this.logout();
- this.navigateTo('login-page');
- }
- newslists: any[] = [];
- async getByUser() {
- let className = 'News';
- let newsQuery = new CloudQuery(className);
- let userCache = localStorage.getItem('userData');
- let objectId = '';
- if (userCache) {
- let userData = JSON.parse(userCache);
- objectId = userData.objectId;
- }
- if (objectId) {
- let newslist = await newsQuery.getBy('author', objectId);
- this.newslists = newslist.results;
- console.log(this.newslists);
- }
- }
- }
|