Skip to content
home.ts 8.66 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, ElementRef, ViewChild, NgZone, Renderer2} from '@angular/core';
wangqinghua's avatar
wangqinghua committed
import {NavController, IonicPage, Slides, Content} 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

@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;
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结对帮扶
    tabsList = [
        {name: "系列讲话", type: 2, index: 0},
        {name: "党章党规", type: 1, index: 1},
        {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;

    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 = [];

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

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,
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.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;   //文字宽度
        console.log(this.spanWidth)
        this.tips.nativeElement.style.width = this.tabSpan.nativeElement.offsetWidth + 'px';
        this.tips1.nativeElement.style.width = this.tabSpan.nativeElement.offsetWidth + 'px';
        this.change(this.tabsList[0]);
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 + 54;
        console.log(this.topHeight.nativeElement.offsetHeight)
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) {
        const index = item.index;
        // 自身div的一半 - 滑块的一半
        this.tips.nativeElement.style.left = this.itemWidth * (index) + (this.itemWidth - this.spanWidth) / 2 + 'px';
        this.tips1.nativeElement.style.left = this.itemWidth * (index) + (this.itemWidth - this.spanWidth) / 2 + 'px';
        this.index = index;
        this.plateType = item.type;
        const data = {
            pageSize: 1,
            pageCount: 100,
            obj: {
                'plateType': this.plateType,
                'resourceType': 1
            }
        }
        this.tabsSer.stuffPage(data).subscribe(
            (res) => {
                let arr = res.data;
                arr.forEach(e => {
                    if (e.attachments.length > 0) {
                        e.imgUrl = e.attachments[0].path;
                    }
                });
                this.slideList[index] = arr;
                this.slides1.slideTo(index, 500);
            }
        )
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    slideChange(e) {
        let index = this.slides1.getActiveIndex();
        if (index == this.tabsList.length) index = 0;
        if (index == this.tabsList.length +1) index = 1;
        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
                    //获取是否展示过政治生日
                    const nowDay = this.datePipe.transform( new Date(),'yyyy-MM-dd' );
                    const partyBir = localStorage.getItem('partyBir');
                    if(nowDay == partyBir){
                        this.start();
                        this.isBir = false;
                    }else{
                        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;
wangqinghua's avatar
wangqinghua committed
        this.homeMiddleTips.nativeElement.style.height = "60px";
        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;

        let i = scrollWidth;
        setInterval(()=>{
            i--;
            if(i < -textWidth){
                i = scrollWidth;
            }
            child_div[0].style.left = i + 'px';
        },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
    doInfinite(e){
        e.complete();
    }

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

wangqinghua's avatar
wangqinghua committed
}