Skip to content
discover.ts 10.6 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, ElementRef, NgZone, Renderer2, ViewChild} from '@angular/core';
import {Content, InfiniteScrollContent, IonicPage, NavController, NavParams, Slide, Slides} from 'ionic-angular';
wangqinghua's avatar
wangqinghua committed
import {SearchNewPage} from "../../home-pages/search-new/search-new";
wangqinghua's avatar
wangqinghua committed
import {TabsService} from "../tabs.service";
import {StuffDetailPage} from "../../home-pages/stuff-detail/stuff-detail";
import {PublishPage} from "../../discover-pages/publish/publish";
wangqinghua's avatar
wangqinghua committed
import {EmitService} from "../../../provide/emit.service";
import {NoticePage} from "../notice/notice";
wangqinghua's avatar
wangqinghua committed
import {AppGlobal} from "../../../service/http.service";
wangqinghua's avatar
wangqinghua committed
import {CommonService} from "../../../provide/common.service";
wangqinghua's avatar
wangqinghua committed


@IonicPage()
@Component({
wangqinghua's avatar
wangqinghua committed
    selector: 'page-discover',
    templateUrl: 'discover.html',
wangqinghua's avatar
wangqinghua committed
})
export class DiscoverPage {
wangqinghua's avatar
wangqinghua committed
    @ViewChild(Slides) slides: Slides;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('tips') tips: ElementRef;
    @ViewChild('tabsParent') tabsParent: ElementRef;
    @ViewChild('tabsChildren') tabsChildren: ElementRef;
    @ViewChild('tabSpan') tabSpan: ElementRef;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('newsContent') newsContent: ElementRef;
    @ViewChild(InfiniteScrollContent) infiniteScrollContent: InfiniteScrollContent;
    @ViewChild('infiniteScrollContentEle') infiniteScrollContentEle: ElementRef;
wangqinghua's avatar
wangqinghua committed

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 = [
wangqinghua's avatar
wangqinghua committed
        {
wangqinghua's avatar
wangqinghua committed
            "name": "机关党委", "type": 5, "indexParent": 0, "children": [
wangqinghua's avatar
wangqinghua committed
                {
wangqinghua's avatar
wangqinghua committed
                    "name": "最新",
                    "type": 5,
wangqinghua's avatar
wangqinghua committed
                    "indexChildren": '01'
                },
                {
wangqinghua's avatar
wangqinghua committed
                    "name": "通知公告",
                    "type": 5,
wangqinghua's avatar
wangqinghua committed
                    "indexChildren": '02'
                },
                {
wangqinghua's avatar
wangqinghua committed
                    "name": "党建动态",
                    "type": 6,
wangqinghua's avatar
wangqinghua committed
                    "indexChildren": '03'
                },
                {
wangqinghua's avatar
wangqinghua committed
                    "name": "工作提示",
                    "type": 7,
wangqinghua's avatar
wangqinghua committed
                    "indexChildren": '04'
wangqinghua's avatar
wangqinghua committed
                },
                {
                    "name": "党务参考",
                    "type": 8,
                    "indexChildren": '05'
wangqinghua's avatar
wangqinghua committed
                }
            ]
        },
        {
wangqinghua's avatar
wangqinghua committed
            "name": "支部风采", "type": 13, "indexParent": 1, "children": [
wangqinghua's avatar
wangqinghua committed
                {
wangqinghua's avatar
wangqinghua committed
                    "name": "推荐",
                    "type": 13,
wangqinghua's avatar
wangqinghua committed
                    "indexChildren": '11'
                },
                {
wangqinghua's avatar
wangqinghua committed
                    "name": "支部活动",
                    "type": 13,
wangqinghua's avatar
wangqinghua committed
                    "indexChildren": '12'
                },
                {
wangqinghua's avatar
wangqinghua committed
                    "name": "党建联建",
                    "type": 14,
wangqinghua's avatar
wangqinghua committed
                    "indexChildren": '13'
                },
                {
wangqinghua's avatar
wangqinghua committed
                    "name": "结对帮扶",
                    "type": 15,
wangqinghua's avatar
wangqinghua committed
                    "indexChildren": '14'
                }
            ]
        },
        {
            "name": "党风廉政", "type": 9, "indexParent": 2, "children": [
                {
                    "name": "最新",
                    "type": 9,
                    "indexChildren": '21'
                },
                {
                    "name": "廉政格言",
                    "type": 9,
                    "indexChildren": '22'
                },
                {
                    "name": "纪检提示",
                    "type": 10,
                    "indexChildren": '23'
                },
                {
                    "name": "风险排查",
                    "type": 11,
                    "indexChildren": '24'
                },
                {
                    "name": "警示教育",
                    "type": 12,
                    "indexChildren": '25'
                }
            ]
        },
        {
            "name": "互动交流", "type": -1, "indexParent": 3, "children": [
                {
                    "name": "最新",
                    "type": -1,
                    "indexChildren": '31'
                },
                {
                    "name": "学思践悟",
                    "type": -1,
                    "indexChildren": '32'
                },
                {
                    "name": "话题讨论",
                    "type": -1,
                    "indexChildren": '33'
                },
                {
                    "name": "你问我答",
                    "type": -1,
                    "indexChildren": '34'
                }]
        },
wangqinghua's avatar
wangqinghua committed
        // {"name": "知识拓展", "type": -1, "indexParent": 4, "children": []}
wangqinghua's avatar
wangqinghua committed
    ];
wangqinghua's avatar
wangqinghua committed
    childrenList = [];
wangqinghua's avatar
wangqinghua committed
    plateType;   //分类
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    indexParent = 1;
wangqinghua's avatar
wangqinghua committed
    indexChildren = 0;
wangqinghua's avatar
wangqinghua committed
    newList;   //新闻列表
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    noReadNum;
wangqinghua's avatar
wangqinghua committed
    picture: string = AppGlobal.domain + '/wisdomgroup';

wangqinghua's avatar
wangqinghua committed
    slideList = [];
wangqinghua's avatar
wangqinghua committed
    toIndex;
wangqinghua's avatar
wangqinghua committed

    pageCount = 100;
    loadMore = true;
wangqinghua's avatar
wangqinghua committed
    totalNum;
    pageNum = 1;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    constructor(public navCtrl: NavController, public navParams: NavParams,
wangqinghua's avatar
wangqinghua committed
                public commonSer: CommonService,public renderer:Renderer2,
wangqinghua's avatar
wangqinghua committed
                public zone:NgZone,
wangqinghua's avatar
wangqinghua committed
                public tabsSer: TabsService, public emitSer: EmitService) {
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
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    ionViewDidEnter() {
wangqinghua's avatar
wangqinghua committed
        this.slideList.length = 5;
wangqinghua's avatar
wangqinghua committed
        this.changeParent(this.tabsList[1]);
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    //父级选择
    changeParent(item) {
        this.newsContent.nativeElement.scrollLeft = 0;   //二级菜单滑动重置
        // this.infiniteScrollContent.inf.enable(true);
wangqinghua's avatar
wangqinghua committed
        this.loadMore = true;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
        const index = item.indexParent;
        this.indexParent = index;
wangqinghua's avatar
wangqinghua committed
        this.plateType = item.type;
wangqinghua's avatar
wangqinghua committed
        this.toIndex = item.indexParent;
wangqinghua's avatar
wangqinghua committed
        this.childrenList = item.children;
wangqinghua's avatar
wangqinghua committed

        if (this.childrenList.length > 0) this.indexChildren = this.childrenList[0].indexChildren;
wangqinghua's avatar
wangqinghua committed
        let itemWidth = window.screen.width / 4;
        let spanWidth = this.tabSpan.nativeElement.offsetWidth;   //文字宽度
        this.tips.nativeElement.style.width = this.tabSpan.nativeElement.offsetWidth + 'px';
        // 自身div的一半 - 滑块的一半
        this.tips.nativeElement.style.left = itemWidth * (index) + (itemWidth - spanWidth) / 2 + 'px';
        const data = {
            pageSize: 1,
wangqinghua's avatar
wangqinghua committed
            pageCount: this.pageCount,
wangqinghua's avatar
wangqinghua committed
            obj: {
wangqinghua's avatar
wangqinghua committed
                'plateType': this.plateType,
wangqinghua's avatar
wangqinghua committed
                'resourceType': 1
            }
        };
        this.tabsSer.stuffPage(data).subscribe(
            (res) => {
wangqinghua's avatar
wangqinghua committed
                this.newList = res.data.list;
wangqinghua's avatar
wangqinghua committed
                this.newList.forEach(e => {
                    if (e.attachments.length > 0) {
                        e.imgUrl = e.attachments[0].path;
                    }
wangqinghua's avatar
wangqinghua committed
                });
wangqinghua's avatar
wangqinghua committed
                this.slides.slideTo(index, 500);
wangqinghua's avatar
wangqinghua committed
                this.slideList[index] = this.newList;
wangqinghua's avatar
wangqinghua committed
            }
        )
    }

    //子级选择
    changeChildren(item) {
        this.indexChildren = item.indexChildren;
        // this.infiniteScrollContent.inf.enable(true);

wangqinghua's avatar
wangqinghua committed
        this.loadMore = true;

wangqinghua's avatar
wangqinghua committed
        const data = {
            pageSize: 1,
wangqinghua's avatar
wangqinghua committed
            pageCount: this.pageCount,
wangqinghua's avatar
wangqinghua committed
            obj: {
                'plateType': item.type,
                'resourceType': 1
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
        };
wangqinghua's avatar
wangqinghua committed
        this.tabsSer.stuffPage(data).subscribe(
            (res) => {
wangqinghua's avatar
wangqinghua committed
                this.newList = res.data.list;
wangqinghua's avatar
wangqinghua committed
                this.newList.forEach(e => {
                    if (e.attachments.length > 0) {
                        e.imgUrl = e.attachments[0].path;
                    }
                })
wangqinghua's avatar
wangqinghua committed
                this.slideList[this.indexParent] = this.newList;
wangqinghua's avatar
wangqinghua committed
            }
        )
    }

    //下拉刷新
wangqinghua's avatar
wangqinghua committed
    doRefresh(e) {
wangqinghua's avatar
wangqinghua committed
        const data = {
            pageNum: 1,
            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
                this.newList = res.data.list;
wangqinghua's avatar
wangqinghua committed
                this.newList.forEach(e => {
                    if (e.attachments.length > 0) {
                        e.imgUrl = e.attachments[0].path;
                    }
                })
wangqinghua's avatar
wangqinghua committed
                this.slideList[this.toIndex] = this.newList;
wangqinghua's avatar
wangqinghua committed
                setTimeout(()=>{
                    this.commonSer.toastTime('刷新成功!', 800)
                    e.complete();
                },1000);
    //上拉加载
wangqinghua's avatar
wangqinghua committed
    doInfinite(infiniteScroll) {
wangqinghua's avatar
wangqinghua committed
        console.log('infiniteScroll');
wangqinghua's avatar
wangqinghua committed
        if (this.totalNum < this.slideList[this.toIndex].length + 1) {
            console.log('没有数据了');
            this.loadMore = false;
wangqinghua's avatar
wangqinghua committed
            infiniteScroll.enable(false);
wangqinghua's avatar
wangqinghua committed
            return false;
        }
        this.pageNum++;
        const data = {
            pageNum: this.pageNum,
            pageCount: this.pageCount,
            obj: {
                'plateType': this.plateType,
                'resourceType': 1
            }
        };
wangqinghua's avatar
wangqinghua committed
        this.renderer.setStyle(this.infiniteScrollContentEle.nativeElement.children[0], 'minHeight', '60px');
wangqinghua's avatar
wangqinghua committed
        this.tabsSer.stuffPage(data).subscribe(
            (res) => {
                let arr = res.data.list;
                if (arr.length > 0) {
                    arr.forEach(e => {
                        if (e.attachments.length > 0) {
                            e.imgUrl = e.attachments[0].path;
                        }
wangqinghua's avatar
wangqinghua committed
                        this.slideList[this.indexParent].push(e);
wangqinghua's avatar
wangqinghua committed
                    });
                }
                setTimeout(() => {
wangqinghua's avatar
wangqinghua committed
                    infiniteScroll.complete();
wangqinghua's avatar
wangqinghua committed
                    this.renderer.setStyle(this.infiniteScrollContentEle.nativeElement.children[0], 'minHeight', '0px');
wangqinghua's avatar
wangqinghua committed
                }, 1000)
            }
        )
wangqinghua's avatar
wangqinghua committed
    }


    //前往搜索页面
    goToSearch() {
        this.navCtrl.push(SearchNewPage);
    }

    //查看详情
    goToDetail(item) {
        this.navCtrl.push(StuffDetailPage, {
            id: item.id
        });
    }

    //前往发布页面
    goToPublish() {
        this.navCtrl.push(PublishPage);
    }

    //消息提醒页面
    goToNotice() {
        this.navCtrl.push(NoticePage);
    }

    slideChange() {
wangqinghua's avatar
wangqinghua committed
        let index = this.slides.getActiveIndex();
wangqinghua's avatar
wangqinghua committed
        if (index == this.tabsList.length) index = 0;
wangqinghua's avatar
wangqinghua committed
        if (index == this.tabsList.length + 1) index = 1;
        this.changeParent(this.tabsList[index])
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed
}