123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- import { Component, OnInit,OnDestroy } from '@angular/core';
- import { AlertController, NavController } from '@ionic/angular';
- import { Router } from '@angular/router';
- import * as Parse from 'parse';
- import { interval, Subscription } from 'rxjs';
- @Component({
- selector: 'app-tab1',
- templateUrl: 'tab1.page.html',
- styleUrls: ['tab1.page.scss']
- })
- export class Tab1Page implements OnInit,OnDestroy {
- initial: string = '0KG';
- current: string = '0KG';
- target: string = '0KG';
- reward: string = '0元';
- username: string = ''; // 当前用户的用户名
- blueColor: boolean = false;
- private loadUserDataSubscription: Subscription | undefined;
-
- constructor(
- private alertController: AlertController,
- private router: Router,
- private navCtrl: NavController,
-
- ) {}
- ngOnInit() {
- this.loadUserData();
- //每隔一秒检测登录状况
- this.loadUserDataSubscription = interval(1000).subscribe(() => {
- this.loadUserData();
- console.log(this.username);
- });
- }
- ngOnDestroy() {
- if (this.loadUserDataSubscription) {
- this.loadUserDataSubscription.unsubscribe();
- }
- }
- async loadUserData() {
- const currentUser = Parse.User.current();
- if (currentUser) {
- this.username = currentUser.getUsername()!;
- this.loadData();
- } else {
- this.username = '未登录';
- this.loadData();
- }
- }
- async loadData() {
- try {
- const query = new Parse.Query('weight_status');
- query.equalTo('username', this.username); // 查找当前用户的数据
- const weightStatus = await query.first();
- if (weightStatus) {
- this.initial = weightStatus.get('initial') + 'KG' || '--KG';
- this.current = weightStatus.get('current') + 'KG' || '--KG';
- this.target = weightStatus.get('target') + 'KG' || '--KG';
- this.reward = weightStatus.get('reward') + '元' || '--元';
- }
- } catch (error) {
- console.error('Error loading data', error);
- }
- }
- async openEditModal() {
- if (this.username == '未登录') {
- // 如果用户未登录,则显示登录提示
- this.presentLoginAlert();
- return;
- }
- const alert = await this.alertController.create({
- header: '编辑体重信息',
- inputs: [
- {
- name: 'initial',
- type: 'text',
- placeholder: '初始',
- value: this.initial.replace('KG', '')
- },
- {
- name: 'current',
- type: 'text',
- placeholder: '当前',
- value: this.current.replace('KG', '')
- },
- {
- name: 'target',
- type: 'text',
- placeholder: '目标',
- value: this.target.replace('KG', '')
- },
- {
- name: 'reward',
- type: 'text',
- placeholder: '赏金',
- value: this.reward.replace('元', '')
- }
- ],
- buttons: [
- {
- text: '取消',
- role: 'cancel'
- },
- {
- text: '保存',
- handler: async (data) => {
- try {
- const query = new Parse.Query('weight_status');
- query.equalTo('username', this.username); // 查找当前用户的数据
- let weightStatus = await query.first();
- if (!weightStatus) {
- weightStatus = new Parse.Object('weight_status');
- }
- weightStatus.set('username', this.username);
- weightStatus.set('initial', data.initial);
- weightStatus.set('current', data.current);
- weightStatus.set('target', data.target);
- weightStatus.set('reward', data.reward);
- await weightStatus.save();
- this.loadData(); // 更新本地数据
- } catch (error) {
- console.error('Error updating data', error);
- }
- }
- }
- ]
- });
- await alert.present();
- }
- async presentLoginAlert() {
- const alert = await this.alertController.create({
- header: '未登录',
- message: '请先登录以继续操作',
- buttons: [
- {
- text: '取消',
- role: 'cancel'
- },
- {
- text: '去登录',
- handler: () => {
- this.navCtrl.navigateForward('/user/login');
- }
- }
- ]
- });
- await alert.present();
- }
- toggleButtonColor(habit: string) {
- this.blueColor = !this.blueColor;
- }
- navigateToTreePage() {
- this.router.navigate(['/tabs/tree']);
- }
- }
|