123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- import { Component, OnInit, ViewChild } from '@angular/core';
- import * as Parse from 'parse';
- import { IonicModule } from '@ionic/angular';
- import { Router } from '@angular/router';
- import { AuthService } from '../../../services/auth.service';
- import { Swiper } from 'swiper';
- import { AiChatService } from '../../../services/aichart.service';
- @Component({
- selector: 'app-home',
- templateUrl: './home.component.html',
- styleUrls: ['./home.component.scss'],
- standalone: true,
- imports: [IonicModule],
- // schemas: [CUSTOM_ELEMENTS_SCHEMA],
- })
- export class HomeComponent implements OnInit {
- @ViewChild('modal') modal!: any;
- options: Array<any> = [
- {
- label: '关注',
- value: 'follow',
- icon: 'home-outline',
- color: 'primary',
- },
- {
- label: '推荐',
- value: 'recommend',
- icon: 'home-outline',
- color: 'primary',
- },
- {
- label: '新人',
- value: 'news',
- icon: 'videocam-outline',
- color: 'danger',
- },
- {
- label: '三星',
- value: '三星',
- icon: 'videocam-outline',
- color: 'danger',
- },
- {
- label: '四星',
- value: '四星',
- icon: 'videocam-outline',
- color: 'danger',
- },
- {
- label: '五星',
- value: '五星',
- icon: 'people-outline',
- },
- ];
- currentValue: string = 'recommend';
- oldCurrentValue: string = 'recommend';
- isOpen: boolean = false; //显示选择弹窗
- banner: Array<Parse.Object> = [];
- roomList: Array<any> = [];
- pageSwiper: Swiper | undefined | any;
- constructor(
- private router: Router,
- public authServ: AuthService,
- private aiServ: AiChatService
- ) {}
- ngOnInit() {
- this.refresh();
- }
- async refresh() {
- await this.getBanner();
- await this.getRoom();
- setTimeout(() => {
- this.initSwiperTimeEvent();
- }, 0);
- }
- async getBanner() {
- let query = new Parse.Query('Banner');
- query.equalTo('company', this.authServ.company);
- query.descending('index');
- query.equalTo('isEnabled', true);
- query.notEqualTo('isDeleted', true);
- let banner = await query.find();
- this.banner = banner;
- }
- initSwiperTimeEvent() {
- // 初始化轮播图
- let swiper = new Swiper('.mySwiper', {
- loop: true, // 循环模式选项
- observer: false, //修改swiper自己或子元素时,自动初始化swiper
- observeParents: true, //修改swiper的父元素时,自动初始化swiper
- autoplay: {
- delay: 1500,
- },
- pagination: {
- el: '.swiper-pagination',
- },
- });
- swiper.on('slideChange', function (event: any) {
- // console.log(event);
- });
- }
- async getRoom(type?: string) {
- let data: Array<any> = [];
- if (!type) type = this.currentValue;
- console.log(type);
- let uid = Parse.User.current()?.id;
- switch (type) {
- case 'follow':
- data = await this.aiServ.getRooms({ uid: uid, follow: true });
- break;
- case 'recommend':
- data = await this.aiServ.getRooms({ uid: uid, recommend: true });
- break;
- case 'news':
- data = await this.aiServ.getRooms({ uid: uid });
- break;
- case '三星':
- data = await this.aiServ.getRooms({ uid: uid, star: '三星' });
- break;
- case '四星':
- data = await this.aiServ.getRooms({ uid: uid, star: '四星' });
- break;
- case '五星':
- data = await this.aiServ.getRooms({ uid: uid, star: '五星' });
- break;
- default:
- break;
- }
- this.roomList = data;
- console.log(data);
- // let query = new Parse.Query('Room');
- // query.equalTo('company', this.authServ.company);
- // query.equalTo('state', true);
- // query.notEqualTo('isDeleted', true);
- // let r = await query.find();
- // this.roomList = r;
- }
- segmentChanged(e: any) {
- let { value } = e.detail;
- this.currentValue = value;
- }
- onIonChange(event: CustomEvent) {
- this.currentValue = event.detail.value;
- }
- /* 关闭弹窗回调 */
- onDidDismiss(event: CustomEvent) {
- this.isOpen = false;
- console.log(this.currentValue);
- }
- cancel(type: string, value?: string) {
- console.log(type, value);
- if (type == 'cancel') {
- this.currentValue = this.oldCurrentValue;
- } else {
- this.oldCurrentValue = this.currentValue;
- }
- this.isOpen = false;
- this.modal.dismiss();
- this.getRoom()
- }
- search() {
- this.router.navigate(['live/search']);
- }
- toUrl(url: string) {
- this.router.navigate([url]);
- }
- }
|