Skip to content
home.ts 11.4 KiB
Newer Older
import {Component, ElementRef, ViewChild, NgZone, Renderer2, Input} from '@angular/core';
wangqinghua's avatar
wangqinghua committed
import {NavController, IonicPage, Slides, Content, InfiniteScrollContent} from 'ionic-angular';
wangqinghua's avatar
wangqinghua committed
import {Http, Response} from '@angular/http';
import {AppService, AppGlobal} from '../../../service/http.service';
import {Storage} from '@ionic/storage';
import {NoticePage} from "../notice/notice";
import {Badge} from '@ionic-native/badge';
import {TabsService} from "../tabs.service";
import {TextToSpeech} from "@ionic-native/text-to-speech";
import {CommonService} from "../../../provide/common.service";
wangqinghua's avatar
wangqinghua committed
import {SearchNewPage} from "../../home-pages/search-new/search-new";
import {StuffDetailPage} from "../../home-pages/stuff-detail/stuff-detail";
wangqinghua's avatar
wangqinghua committed
import {EmitService} from "../../../provide/emit.service";
wangqinghua's avatar
wangqinghua committed
import {DatePipe} from "@angular/common";
wangqinghua's avatar
wangqinghua committed
import {SlideListComponent} from "../../../components/slide-list/slide-list";
wangqinghua's avatar
wangqinghua committed
import {SlideComponent} from "../../../components/slide/slide";
wangqinghua's avatar
wangqinghua committed

@IonicPage()
@Component({
    selector: 'page-home',
    templateUrl: 'home.html'
})

export class HomePage {
wangqinghua's avatar
wangqinghua committed
    @ViewChild(Slides) slides1: Slides;
wangqinghua's avatar
wangqinghua committed
    @ViewChild(Content) content: Content;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('tips') tips: ElementRef;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('tips1') tips1: ElementRef;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('verticaLamp') verticaLamp: ElementRef;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('tabSpan') tabSpan: ElementRef;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('tabSpan1') tabSpan1: ElementRef;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('topHeight') topHeight: ElementRef;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('headerTag') headerTag: ElementRef;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('homeMiddleTips') homeMiddleTips: ElementRef;
    @ViewChild('infiniteScrollContentEle') infiniteScrollContentEle: ElementRef;
wangqinghua's avatar
wangqinghua committed
    // @ViewChild(InfiniteScrollContent) infiniteScrollContent: InfiniteScrollContent;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    picture: string = AppGlobal.domain + '/wisdomgroup';
wangqinghua's avatar
wangqinghua committed
    //所属板块类型:
    //1党章党规,2系列讲话,3中央精神,4本市部署,5通知公告,6党建动态,7工作提示,8党务参考
    //9廉政格言,10纪检提示,11风险排查,12警示教育,13支部活动,14党建联建,15结对帮扶
wangqinghua's avatar
wangqinghua committed
    // tabsList = [
    //     {name: "党章党规", type: 1, index: 0},
    //     {name: "系列讲话", type: 2, index: 1},
    //     {name: "中央精神", type: 3, index: 2},
    //     {name: "本市部署", type: 4, index: 3}
    // ];
wangqinghua's avatar
wangqinghua committed
    tabsList = [
        {name: "系列讲话", type: 2, index: 0},
        {name: "党章党规", type: 1, index: 1},
wangqinghua's avatar
wangqinghua committed
        {name: "中央精神", type: 3, index: 2},
        {name: "本市部署", type: 4, index: 3}
    ];
wangqinghua's avatar
wangqinghua committed
    isSign = false;   //签到弹窗
    isBir = false;  //政治生日弹窗
wangqinghua's avatar
wangqinghua committed
    isScroll = false;   //tabs置顶
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    noReadNum;
    initSlide = 0;
wangqinghua's avatar
wangqinghua committed

    signObj = {
wangqinghua's avatar
wangqinghua committed
        'text': '',
        'isSign': ''
wangqinghua's avatar
wangqinghua committed
    };   //签到参数
    disabledClick = true;
wangqinghua's avatar
wangqinghua committed
    signText;   //签到倒计时
    partyObj;  //政治生日
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    plateType;
    index = 0;
    slideList = [];

wangqinghua's avatar
wangqinghua committed
    itemWidth;
    spanWidth;   //文字宽度
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed

    pageNum = 1;
    pageCount = AppGlobal.pageCount;
wangqinghua's avatar
wangqinghua committed
    //分页
wangqinghua's avatar
wangqinghua committed
    totalNum;
    loadMore = true;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    constructor(public navCtrl: NavController, public tts: TextToSpeech, public datePipe: DatePipe,
wangqinghua's avatar
wangqinghua committed
                public commonSer: CommonService, public emitSer: EmitService,
wangqinghua's avatar
wangqinghua committed
                public zone: NgZone, public slideListCom: SlideListComponent,
                public renderer: Renderer2, public slideCom: SlideComponent,
wangqinghua's avatar
wangqinghua committed
                public appService: AppService, public http: Http, public storage: Storage,
wangqinghua's avatar
wangqinghua committed
                public badge: Badge, public tabsSer: TabsService) {
wangqinghua's avatar
wangqinghua committed
        // 接收发射过来的数据
        this.emitSer.eventEmit.subscribe((value: any) => {
wangqinghua's avatar
wangqinghua committed
            if (!isNaN(value)) {
wangqinghua's avatar
wangqinghua committed
                this.noReadNum = value;
            }
        });
wangqinghua's avatar
wangqinghua committed
        this.slideList.length = 4;
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    ionViewDidEnter() {
wangqinghua's avatar
wangqinghua committed
        this.slideCom.getBanner();
wangqinghua's avatar
wangqinghua committed
        this.tabsSer.signNow().subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
wangqinghua's avatar
wangqinghua committed
                this.signObj = res.data;
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

    ionViewDidLoad() {
wangqinghua's avatar
wangqinghua committed
        this.itemWidth = window.screen.width / 4;
        this.spanWidth = this.tabSpan.nativeElement.offsetWidth;   //文字宽度
        this.tips.nativeElement.style.width = this.tabSpan.nativeElement.offsetWidth + 'px';
        this.tips1.nativeElement.style.width = this.tabSpan.nativeElement.offsetWidth + 'px';
wangqinghua's avatar
wangqinghua committed
        this.getInfo();
wangqinghua's avatar
wangqinghua committed
        this.scrollHeight();
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed


wangqinghua's avatar
wangqinghua committed
    scrollHeight() {
wangqinghua's avatar
wangqinghua committed
        const height = this.topHeight.nativeElement.offsetHeight + 48;
wangqinghua's avatar
wangqinghua committed
        this.content.ionScroll.subscribe(($event) => {
            this.zone.run(() => {
                if (this.content.scrollTop > height) {
wangqinghua's avatar
wangqinghua committed
                    this.isScroll = true;
wangqinghua's avatar
wangqinghua committed
                } else {
wangqinghua's avatar
wangqinghua committed
                    this.isScroll = false;
wangqinghua's avatar
wangqinghua committed
    change(item) {
        this.pageNum = 1;
        this.loadMore = true;
wangqinghua's avatar
wangqinghua committed
        // this.infiniteScrollContent.inf.enable(true);
        this.index = item.index;
wangqinghua's avatar
wangqinghua committed
        // 自身div的一半 - 滑块的一半
        this.tips.nativeElement.style.left = this.itemWidth * (this.index) + (this.itemWidth - this.spanWidth) / 2 + 'px';
        this.tips1.nativeElement.style.left = this.itemWidth * (this.index) + (this.itemWidth - this.spanWidth) / 2 + 'px';
wangqinghua's avatar
wangqinghua committed
        this.plateType = item.type;
        const data = {
            pageNum: this.pageNum,
wangqinghua's avatar
wangqinghua committed
            pageCount: this.pageCount,
wangqinghua's avatar
wangqinghua committed
            obj: {
                'plateType': this.plateType,
                'resourceType': 1
            }
        }
        this.tabsSer.stuffPage(data).subscribe(
            (res) => {
wangqinghua's avatar
wangqinghua committed
                let arr = res.data.list;
wangqinghua's avatar
wangqinghua committed
                this.totalNum = res.data.total;
                if (arr.length > 0) {
wangqinghua's avatar
wangqinghua committed
                    arr.forEach(e => {
                        if (e.attachments.length > 0) {
                            e.imgUrl = e.attachments[0].path;
                        }
                    });
                    this.slideList[this.index] = arr;
wangqinghua's avatar
wangqinghua committed
                }
                if (this.slides1) this.slides1.slideTo(this.index, 500);
wangqinghua's avatar
wangqinghua committed
            }
        )
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    slideChange() {
        if (this.initSlide == 0) {   //防止初始化加载
            this.initSlide = 1;
            return false;
        }
wangqinghua's avatar
wangqinghua committed
        let index = this.slides1.getActiveIndex();
        if (index == this.tabsList.length) index = 0;
wangqinghua's avatar
wangqinghua committed
        if (index == this.tabsList.length + 1) index = 1;
wangqinghua's avatar
wangqinghua committed
        this.change(this.tabsList[index])
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed

    //获取党员生日
    getInfo() {
        this.storage.get("userLoginInfo").then((value) => {
            let userid = value.userid;
            this.tabsSer.getInfo(userid).subscribe(
                (res) => {
                    this.partyObj = res.apiResult.data;
wangqinghua's avatar
wangqinghua committed
                    //获取是否展示过政治生日
wangqinghua's avatar
wangqinghua committed
                    const nowDay = this.datePipe.transform(new Date(), 'yyyy-MM-dd');
wangqinghua's avatar
wangqinghua committed
                    const partyBir = localStorage.getItem('partyBir');
wangqinghua's avatar
wangqinghua committed
                    if (nowDay == partyBir) {
                        setTimeout(()=>{
                            this.start();
                            this.isBir = false;
                        },500)
wangqinghua's avatar
wangqinghua committed
                    } else {
wangqinghua's avatar
wangqinghua committed
                        this.isBir = true;
                    }
wangqinghua's avatar
wangqinghua committed
                }
            );
        })
    }

wangqinghua's avatar
wangqinghua committed
    //关闭弹窗 开启跑马灯
wangqinghua's avatar
wangqinghua committed
    start() {
wangqinghua's avatar
wangqinghua committed
        const nowDay = this.datePipe.transform(new Date(), 'yyyy-MM-dd');
        localStorage.setItem('partyBir', nowDay);
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
        this.isBir = false;
        this.homeMiddleTips.nativeElement.style.height = "50px";
wangqinghua's avatar
wangqinghua committed
        this.homeMiddleTips.nativeElement.style.padding = ".5rem";
wangqinghua's avatar
wangqinghua committed
        let child_div = this.verticaLamp.nativeElement.children;
        const scrollWidth = this.verticaLamp.nativeElement.offsetWidth;
        const textWidth = child_div[0].offsetWidth;
        console.log(textWidth);
wangqinghua's avatar
wangqinghua committed

        let i = scrollWidth;
wangqinghua's avatar
wangqinghua committed
        setInterval(() => {
wangqinghua's avatar
wangqinghua committed
            i--;
wangqinghua's avatar
wangqinghua committed
            if (i < -textWidth) {
wangqinghua's avatar
wangqinghua committed
                i = scrollWidth;
            }
            child_div[0].style.left = i + 'px';
wangqinghua's avatar
wangqinghua committed
        }, 20)
wangqinghua's avatar
wangqinghua committed
    //签到接口
wangqinghua's avatar
wangqinghua committed
    signUp() {
wangqinghua's avatar
wangqinghua committed
        this.tabsSer.sign().subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
wangqinghua's avatar
wangqinghua committed
                this.isSign = false;
wangqinghua's avatar
wangqinghua committed
                if (res.errcode == '1000') {
wangqinghua's avatar
wangqinghua committed
                    this.commonSer.toast('签到成功');
wangqinghua's avatar
wangqinghua committed
                    this.signObj.isSign = 'yes';
wangqinghua's avatar
wangqinghua committed
                } else {
wangqinghua's avatar
wangqinghua committed
                    this.commonSer.toast(res.errmsg);
wangqinghua's avatar
wangqinghua committed
                }
            }
        )
    }

wangqinghua's avatar
wangqinghua committed
    //签到倒计时
wangqinghua's avatar
wangqinghua committed
    signNow() {
wangqinghua's avatar
wangqinghua committed
        this.isSign = true;
        let totalTime = 5;
wangqinghua's avatar
wangqinghua committed
        this.signText = '(倒计时' + totalTime + 's)';
wangqinghua's avatar
wangqinghua committed
        let clock = window.setInterval(() => {
            totalTime--;
wangqinghua's avatar
wangqinghua committed
            this.signText = '(倒计时' + totalTime + 's)';
wangqinghua's avatar
wangqinghua committed
            if (totalTime < 0) {
                this.signText = '';
                window.clearInterval(clock);
                this.disabledClick = false;
            }
        }, 1000)
    }

wangqinghua's avatar
wangqinghua committed
    //查看文章详情
    goToDetail(item) {
        this.navCtrl.push(StuffDetailPage, {
            id: item.id
        })
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    //前往搜索页面
wangqinghua's avatar
wangqinghua committed
    goToSearch() {
wangqinghua's avatar
wangqinghua committed
        this.navCtrl.push(SearchNewPage);
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //消息提醒页面
wangqinghua's avatar
wangqinghua committed
    goToNotice() {
wangqinghua's avatar
wangqinghua committed
        this.navCtrl.push(NoticePage);
    }

wangqinghua's avatar
wangqinghua committed
    //上拉加载
wangqinghua's avatar
wangqinghua committed
    doInfinite(e) {
        if (this.totalNum < this.slideList[this.index].length + 1) {
            console.log('没有数据了');
            this.loadMore = false;
            e.enable(false);
            return false;
wangqinghua's avatar
wangqinghua committed
        }
        this.pageNum++;
wangqinghua's avatar
wangqinghua committed
        const data = {
            pageNum: this.pageNum,
wangqinghua's avatar
wangqinghua committed
            pageCount: this.pageCount,
            obj: {
                'plateType': this.plateType,
                'resourceType': 1
            }
wangqinghua's avatar
wangqinghua committed
        // this.renderer.setStyle(this.infiniteScrollContentEle.nativeElement, 'height', '60px');
wangqinghua's avatar
wangqinghua committed
        this.tabsSer.stuffPage(data).subscribe(
            (res) => {
                let arr = res.data.list;
                if (arr.length > 0) {
wangqinghua's avatar
wangqinghua committed
                    arr.forEach(e => {
                        if (e.attachments.length > 0) {
                            e.imgUrl = e.attachments[0].path;
                        }
                        this.slideList[this.index].push(e);
                    });
                }
                setTimeout(() => {
wangqinghua's avatar
wangqinghua committed
                    e.complete();
wangqinghua's avatar
wangqinghua committed
                    // this.renderer.setStyle(this.infiniteScrollContentEle.nativeElement, 'height', '0px');
wangqinghua's avatar
wangqinghua committed
            }
        )
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //下拉刷新
wangqinghua's avatar
wangqinghua committed
    doRefresh(e) {
wangqinghua's avatar
wangqinghua committed
        this.slideCom.getBanner();
wangqinghua's avatar
wangqinghua committed
        const data = {
            pageNum: 1,
wangqinghua's avatar
wangqinghua committed
            pageCount: this.pageCount,
wangqinghua's avatar
wangqinghua committed
            obj: {
                'plateType': this.plateType,
                'resourceType': 1
            }
        }
        this.tabsSer.stuffPage(data).subscribe(
            (res) => {
wangqinghua's avatar
wangqinghua committed
                let arr = res.data.list;
                if (arr.length > 0) {
wangqinghua's avatar
wangqinghua committed
                    arr.forEach(e => {
                        if (e.attachments.length > 0) {
                            e.imgUrl = e.attachments[0].path;
                        }
                    });
                }
wangqinghua's avatar
wangqinghua committed
                this.slideList[this.index] = arr;
                setTimeout(() => {
wangqinghua's avatar
wangqinghua committed
                    this.commonSer.toastTime('刷新成功!', 800);
wangqinghua's avatar
wangqinghua committed
                    e.complete();
wangqinghua's avatar
wangqinghua committed
            }
        )
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //关闭弹窗
wangqinghua's avatar
wangqinghua committed
    closeBir() {
wangqinghua's avatar
wangqinghua committed
        this.isBir = false;
wangqinghua's avatar
wangqinghua committed
        this.start();
    }

    closeSign(){
wangqinghua's avatar
wangqinghua committed
        this.isSign = false;
    }

    stop(e) {
        e.stopPropagation();
    }

wangqinghua's avatar
wangqinghua committed
}