Skip to content
learning-list.ts 4.89 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, ElementRef, ViewChild} from '@angular/core';
import {IonicPage, NavController, NavParams, Slides} from 'ionic-angular';
import {LearningExplainPage} from "../learning-explain/learning-explain";
import {LearnService} from "../learn.service";
import {DatePipe} from "@angular/common";
import {LearningResultPage} from "../learning-result/learning-result";
import {TabsService} from "../../../tabs/tabs.service";
import {CommonService} from "../../../../provide/common.service";
import {RankPage} from "../rank/rank";
import {EmitService} from "../../../../provide/emit.service";


@IonicPage()
@Component({
    selector: 'page-learning-list',
    templateUrl: 'learning-list.html',
})
export class LearningListPage {
    @ViewChild(Slides) slides: Slides;
    @ViewChild('tips') tips: ElementRef;

    index = 0;
    tabsList = [{name: "全部",}, {name: "未完成",}, {name: "已完成",}];
    noList = [];
    doList = [];
    list = [];  //全部测试
    link = false;   //是否请求完成
    pageNumber = 1;   //页码
    pageSize = 1000;   //每页显示条数

    constructor(public navCtrl: NavController, public navParams: NavParams,public tabSer:TabsService,
                public learnSer: LearnService, public datePipe: DatePipe,public commonSer:CommonService,
                public emitSer:EmitService) {

    }

    ionViewDidLoad(){
        let itemWidth = window.screen.width / 3;
        this.tips.nativeElement.style.left = itemWidth / 2 - this.tips.nativeElement.offsetWidth / 2 + 'px';
        this.readRecoding();
    }

    ionViewDidEnter() {
        this.emitSer.eventEmit.emit('false');   //设置物理按键正常返回
        this.getList();
    }

    //测试问卷的阅读激励
    readRecoding(){
        this.tabSer.testAddRecodings().subscribe(
            (res)=>{
                this.commonSer.log("测试列表:增加阅读记录成功!")
            }
        )
    }

    getList() {
        const nowDate = this.datePipe.transform(new Date(), 'yyyy/MM/dd HH:mm:ss')
        const data = {
            pageNumber:this.pageNumber,
            pageSize:this.pageSize,
            selectType:'1',   //全部状态
            queryTime:nowDate,
        };
        this.learnSer.getLearnTestList(data).subscribe(
            (res) => {
                if(res.data){
                    this.list = res.data.list;
                    this.noList = this.list.filter((e)=>e.testResult == 0);
                    this.doList = this.list.filter((e)=>e.testResult == 1 || e.testResult == 2);
                }
                this.link = true;
            }
        )
    }

    // 下拉
    doRefresh(refresher){
        this.pageNumber = 1;
        const nowDate = this.datePipe.transform(new Date(), 'yyyy/MM/dd HH:hh:ss')
        const data = {
            pageNumber:this.pageNumber,
            pageSize:this.pageSize,
            selectType:'1',   //全部状态
            queryTime:nowDate,
        };
        this.learnSer.getLearnTestList(data).subscribe(
            (res) => {
                if(res.data){
                    this.list = res.data.list;
                    this.noList = res.data.list.filter((e)=>e.testResult == 0);
                    this.doList = res.data.list.filter((e)=>e.testResult == 2);
                }
                refresher.complete()
                this.link = true;
            }
        )
    }

    //上拉
    doInfinite(infiniteScroll){
        this.pageNumber ++;
        const nowDate = this.datePipe.transform(new Date(), 'yyyy/MM/dd HH:hh:ss')
        const data = {
            pageNumber:this.pageNumber,
            pageSize:this.pageSize,
            selectType:'1',   //全部状态
            queryTime:nowDate,
        };
        this.learnSer.getLearnTestList(data).subscribe(
            (res) => {
                if(res.data){
                    this.list = this.list.concat( res.data.list );
                    this.noList = this.list.filter((e)=>e.testResult == 0);
                    this.doList = this.list.filter((e)=>e.testResult == 2);
                }
                infiniteScroll.complete();
                this.link = true;
            }
        )
    }

    change(index) {
        let itemWidth = window.screen.width / 3;
        // 自身div的一半 - 滑块的一半
        this.tips.nativeElement.style.left = itemWidth * index + itemWidth / 2 - this.tips.nativeElement.offsetWidth / 2 + 'px';
        this.index = index;
    }

    //去测试or结果
    goToResult(item) {
        if(item.testResult == 0){
            this.navCtrl.push("LearningExplainPage", {    //测试
                item: item
            })
        }else{
            this.navCtrl.push("LearningResultPage", {    //结果
                testId: item.testId,
                title:item.title,
                isRepeat:item.isRepeat
            })
        }
    }

    goToRank(item){
        this.navCtrl.push('RankPage',{
            testId:item.testId
        })
    }
}