123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- import { Component, OnInit } from '@angular/core';
- import * as Parse from 'parse';
- import {
- AlertController,
- // IonicModule,
- LoadingController,
- } from '@ionic/angular';
- import { ActivatedRoute, Router } from '@angular/router';
- import { Swiper } from 'swiper';
- import { AiChatService } from '../../../services/aichart.service';
- import { ConnectTaskService } from '../../../services/connectTask.service';
- import {ionicStandaloneModules} from '../../ionic-standalone.modules'
- @Component({
- selector: 'app-home',
- templateUrl: './home.component.html',
- styleUrls: ['./home.component.scss'],
- standalone: true,
- imports: [
- ...ionicStandaloneModules
- ],
- // schemas: [CUSTOM_ELEMENTS_SCHEMA],
- })
- export class HomeComponent implements OnInit {
- 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;
- notices: Array<any> = [
- {
- title: '【公告】',
- content:
- '欢迎来到直播间,请遵守直播规则,禁止一切违法直播行为,否则封号处理。',
- time: '2022-06-01',
- },
- {
- title: '【公告】',
- content:
- '欢迎来到直播间,请遵守直播规则,禁止一切违法直播行为,否则封号处理。',
- time: '2022-06-01',
- },
- {
- title: '【公告】',
- content:
- '欢迎来到直播间,请遵守直播规则,禁止一切违法直播行为,否则封号处理。',
- time: '2022-06-01',
- },
- ];
- viewAnchor: string = localStorage.getItem('viewSex') || '女';
- get sex(): string {
- const map: any = {
- all: '全部',
- 男: '男主播',
- 女: '女主播',
- };
- return map[this.viewAnchor];
- }
- constructor(
- private loadingCtrl: LoadingController,
- private alertController: AlertController,
- private activateRoute: ActivatedRoute,
- private connectTask: ConnectTaskService,
- private router: Router,
- private aiServ: AiChatService
- ) {}
- ngOnInit() {
- // this.activateRoute.paramMap.subscribe(async (params) => {
- this.refresh();
- // });
- }
- async refresh() {
- await this.connectTask.init();
- await this.getBanner();
- await this.getRoom();
- setTimeout(() => {
- this.initSwiperTimeEvent();
- }, 0);
- }
- async getBanner() {
- let query = new Parse.Query('Banner');
- query.equalTo('company', this.aiServ.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: 3000,
- },
- pagination: {
- el: '.swiper-pagination',
- },
- });
- swiper.on('slideChange', function (event: any) {
- // console.log(event);
- });
- let swiperNot = new Swiper('.swiper-notice', {
- loop: true, // 循环模式选项
- observer: false, //修改swiper自己或子元素时,自动初始化swiper
- observeParents: true, //修改swiper的父元素时,自动初始化swiper
- autoplay: {
- delay: 5000,
- },
- direction: 'vertical',
- });
- }
- async getRoom(type?: string) {
- const loading = await this.loadingCtrl.create({
- message: '正在加载',
- });
- loading.present();
- let data: Array<any> = [];
- if (type == this.currentValue) {
- return;
- }
- if (!type) type = this.currentValue;
- let uid = Parse.User.current()?.id;
- let sex = this.viewAnchor == 'all' ? null : this.viewAnchor;
- if(!this.connectTask.onlineUserList.size){
- await this.connectTask.getOnlieUserList('user_connect_room')
- }
- const userList = Array.from(this.connectTask.onlineUserList)
- console.log(userList);
- switch (type) {
- case 'follow':
- data = await this.aiServ.getRooms({
- uid: uid,
- users: userList,
- follow: true,
- sex,
- });
- break;
- case 'recommend':
- data = await this.aiServ.getRooms({
- uid: uid,
- users: userList,
- recommend: true,
- sex,
- });
- break;
- case 'news':
- data = await this.aiServ.getRooms({ uid: uid, users: userList, sex });
- break;
- case '三星':
- data = await this.aiServ.getRooms({
- uid: uid,
- users: userList,
- star: '三星',
- sex,
- });
- break;
- case '四星':
- data = await this.aiServ.getRooms({
- uid: uid,
- users: userList,
- star: '四星',
- sex,
- });
- break;
- case '五星':
- data = await this.aiServ.getRooms({
- uid: uid,
- users: userList,
- star: '五星',
- sex,
- });
- break;
- default:
- break;
- }
- this.roomList = data;
- console.log(data);
- loading.dismiss();
- }
- async presentAlert(item: any) {
- const alert = await this.alertController.create({
- header: item.title || '消息通知',
- message:
- item.content || 'A message should be a short, complete sentence.',
- buttons: ['关闭'],
- });
- await alert.present();
- }
- 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;
- this.isOpen = false;
- return;
- } else {
- if (this.oldCurrentValue != this.currentValue) {
- this.getRoom();
- }
- this.oldCurrentValue = this.currentValue;
- this.isOpen = false;
- }
- }
- onChangeSex(e: any) {
- // console.log(e.detail.value);
- localStorage.setItem('viewSex', e.detail.value);
- if (e.detail.value == this.viewAnchor) return;
- this.viewAnchor = e.detail.value;
- this.getRoom();
- }
- search() {
- this.router.navigate(['live/search']);
- }
- toUrl(url: string) {
- this.router.navigate([url]);
- }
- }
|