Skip to content
stuff-detail.ts 7.94 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, ElementRef, Renderer2, ViewChild} from '@angular/core';
wangqinghua's avatar
wangqinghua committed
import {IonicPage, ModalController, NavController, NavParams} from 'ionic-angular';
wangqinghua's avatar
wangqinghua committed
import {TabsService} from "../../tabs/tabs.service";
import {Storage} from "@ionic/storage";
import {CommonService} from "../../../provide/common.service";
wangqinghua's avatar
wangqinghua committed
import {DomSanitizer} from "@angular/platform-browser";
wangqinghua's avatar
wangqinghua committed
import {AppGlobal} from "../../../service/http.service";
wangqinghua's avatar
wangqinghua committed
import {ReplyComponent} from "../../../components/reply/reply";
import {CommentComponent} from "../../../components/comment/comment";
wangqinghua's avatar
wangqinghua committed

@IonicPage()
@Component({
    selector: 'page-stuff-detail',
    templateUrl: 'stuff-detail.html',
})
export class StuffDetailPage {
wangqinghua's avatar
wangqinghua committed
    @ViewChild('like') like: ElementRef;
    @ViewChild('collection') collection: ElementRef;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    picture: string = AppGlobal.picture;

wangqinghua's avatar
wangqinghua committed
    stuffId;   //文章id
wangqinghua's avatar
wangqinghua committed
    content: string;   //评论内容
wangqinghua's avatar
wangqinghua committed
    userId;  //用户id
wangqinghua's avatar
wangqinghua committed
    username;   //用户姓名
wangqinghua's avatar
wangqinghua committed
    stuffObj;   //文章对象

wangqinghua's avatar
wangqinghua committed
    //点赞,评价,收藏对象;
    countObj;

wangqinghua's avatar
wangqinghua committed
    footerView: boolean;
    comment: boolean = false;

wangqinghua's avatar
wangqinghua committed
    url = AppGlobal.domain + '/wisdomgroup';
wangqinghua's avatar
wangqinghua committed

    attachments;   //附件
wangqinghua's avatar
wangqinghua committed
    replyText = '';
wangqinghua's avatar
wangqinghua committed
    replyItem;
    reply = false;
    replyContent;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    constructor(public navCtrl: NavController, public navParams: NavParams, public sanitizer: DomSanitizer,
wangqinghua's avatar
wangqinghua committed
                public renderer: Renderer2, private modalCtrl: ModalController,
wangqinghua's avatar
wangqinghua committed
                public tabSer: TabsService, public storage: Storage, public commonSer: CommonService) {
    }

    ionViewDidLoad() {
        this.storage.get('userLoginInfo').then((value) => {
            this.userId = value.userid;
wangqinghua's avatar
wangqinghua committed
            this.username = value.loginName;
wangqinghua's avatar
wangqinghua committed
            // this.lookHandle();
wangqinghua's avatar
wangqinghua committed
        });
wangqinghua's avatar
wangqinghua committed
        this.stuffId = this.navParams.get('id');
        this.getStuff();
wangqinghua's avatar
wangqinghua committed
        setTimeout(() => {
wangqinghua's avatar
wangqinghua committed
            this.footerView = true;
wangqinghua's avatar
wangqinghua committed
        }, 300)
wangqinghua's avatar
wangqinghua committed
    }

    //获取文章信息
    getStuff() {
        this.tabSer.stuffInfo(this.stuffId).subscribe(
            (res) => {
                this.stuffObj = res.data;
wangqinghua's avatar
wangqinghua committed
                this.countObj = res.data;   //防止点赞,评论,收藏之后页面刷新
wangqinghua's avatar
wangqinghua committed
                this.attachments = res.data.attachments;
wangqinghua's avatar
wangqinghua committed
                let con = this.stuffObj.content.replace(/\r?\n/g, "<br />");
                this.stuffObj.content = this.sanitizer.bypassSecurityTrustHtml(con);
wangqinghua's avatar
wangqinghua committed
            }
        )
    }

    ionViewWillLeave() {
        this.footerView = false;
    }

    //更新浏览 点赞 收藏 评论
    //根据类型,修改数量(1浏览,2点赞,3收藏,4评论)
wangqinghua's avatar
wangqinghua committed
    //浏览
    lookHandle() {
wangqinghua's avatar
wangqinghua committed
        const data = {
            id: this.stuffId,
wangqinghua's avatar
wangqinghua committed
            type: 1,
            num: 1,
            userid: this.userId,
            content: this.content,
        }
        this.tabSer.updateNumByType(data).subscribe(
            (res) => {
wangqinghua's avatar
wangqinghua committed
                if (res.data.content) {
                    this.commonSer.toast(res.data.content);
wangqinghua's avatar
wangqinghua committed
                }
            }
        )
    }

    //点赞
    likeHandle() {
        let num = this.countObj.like == true ? '-1' : 1;
        const data = {
            id: this.stuffId,
            type: 2,
wangqinghua's avatar
wangqinghua committed
            num: ~~num,
wangqinghua's avatar
wangqinghua committed
            userid: this.userId,
            content: this.content,
        }
wangqinghua's avatar
wangqinghua committed
        this.tabSer.updateNumByType(data).subscribe(
            (res) => {
                if (res.errcode == '1000') {
wangqinghua's avatar
wangqinghua committed
                    this.tabSer.stuffInfo(this.stuffId).subscribe(
                        (res) => {
                            if (num == 1) {
wangqinghua's avatar
wangqinghua committed
                                this.commonSer.toastTime('谢谢点赞', '1000');
wangqinghua's avatar
wangqinghua committed
                                this.renderer.addClass(this.like.nativeElement, 'animation');
                            }
wangqinghua's avatar
wangqinghua committed
                            if (num == -1) {
                                this.commonSer.toastTime('点赞已取消', '1000');
wangqinghua's avatar
wangqinghua committed
                                this.renderer.removeClass(this.like.nativeElement, 'animation');
                            }
                            this.countObj = res.data;   //防止点赞,评论,收藏之后文章信息刷新刷新
                        }
                    )
                }
            }
        )
    }

    //收藏
    collectionHandle() {
        let num = this.countObj.collection == true ? '-1' : 1;
        const data = {
            id: this.stuffId,
            type: 3,
            num: ~~num,
            userid: this.userId,
            content: this.content,
        };
        this.tabSer.updateNumByType(data).subscribe(
            (res) => {
                if (res.errcode == '1000') {
                    this.tabSer.stuffInfo(this.stuffId).subscribe(
                        (res) => {
                            if (num == 1) {
                                this.renderer.addClass(this.collection.nativeElement, 'animation');
                                this.commonSer.toastTime('功崇惟志,业广惟勤', '1000')
                            }
                            if (num == -1) {
                                this.renderer.removeClass(this.collection.nativeElement, 'animation');
                                this.commonSer.toastTime('收藏已取消', '1000')
                            }
                            this.countObj = res.data;   //防止点赞,评论,收藏之后文章信息刷新刷新
                        }
                    )
wangqinghua's avatar
wangqinghua committed
                }
            }
        )
    }

wangqinghua's avatar
wangqinghua committed
    //打开回复
wangqinghua's avatar
wangqinghua committed
    openMask(item) {
        this.replyText = '回复' + item.username;
wangqinghua's avatar
wangqinghua committed
        this.replyItem = item;
wangqinghua's avatar
wangqinghua committed
        let modal = this.modalCtrl.create(CommentComponent, {placeholder: '回复:' + item.username});
        modal.onDidDismiss(res => {
            if (res) {
wangqinghua's avatar
wangqinghua committed
                this.replyContent = res;
                this.replyHandle();
            }
        });
        modal.present();
    }

    //回复
wangqinghua's avatar
wangqinghua committed
    replyHandle() {
wangqinghua's avatar
wangqinghua committed
        const data = {
wangqinghua's avatar
wangqinghua committed
            commentId: this.replyItem.id,
            content: this.replyContent,
            parentId: '',
wangqinghua's avatar
wangqinghua committed
        };
        this.tabSer.commentReply(data).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
wangqinghua's avatar
wangqinghua committed
                this.getStuff();
                this.reply = false;
            }
        )
    }

    //取消评论
    cancel() {
        this.content = '';
        this.comment = false;
        this.reply = false;
    }

    //查看回复
wangqinghua's avatar
wangqinghua committed
    commentSearch(comment) {
        let modal = this.modalCtrl.create(ReplyComponent, {
            comment: comment
wangqinghua's avatar
wangqinghua committed
        });
        modal.present();
    }

    //打开评论
wangqinghua's avatar
wangqinghua committed
    openComment() {
        let modal = this.modalCtrl.create(CommentComponent, {placeholder: ''});
        modal.onDidDismiss(res => {
            if (res) {
wangqinghua's avatar
wangqinghua committed
                this.content = res;
                this.sure();
            }
        })
        modal.present();
    }

    // 提交评论
wangqinghua's avatar
wangqinghua committed
    sure() {
wangqinghua's avatar
wangqinghua committed
        const data = {
            userid: this.userId,
            content: this.content,
            id: this.stuffId,
wangqinghua's avatar
wangqinghua committed
            num: 1,
            type: 4,
            username: this.username
wangqinghua's avatar
wangqinghua committed
        };
wangqinghua's avatar
wangqinghua committed
        this.tabSer.updateNumByType(data).subscribe(
            (res) => {
                if (res.errcode == '1000') {
                    this.getStuff();
wangqinghua's avatar
wangqinghua committed
                    this.comment = false;
wangqinghua's avatar
wangqinghua committed
                    this.commonSer.toast('发布成功');
wangqinghua's avatar
wangqinghua committed
                    this.replyText = '';
wangqinghua's avatar
wangqinghua committed
                }
            }
        )
    }

wangqinghua's avatar
wangqinghua committed
    //列表视频不同时播放
    clickVideo(e) {
        const videoArr = document.querySelectorAll("video");
        for (let i = 0; i < videoArr.length; i++) {
            if (videoArr[i] != e.target) {
                videoArr[i].pause();
            }
        }
    }

    loadVideo(e) {
        const scale = 0.8;
        const canvas = document.createElement('canvas');
        canvas.width = 120 * scale;
        canvas.height = 120 * scale;
        //绘制图片
        canvas.getContext('2d').drawImage(e.target, 0, 0, canvas.width, canvas.height);
        //设置标签的poster属性
        e.target.setAttribute("poster", canvas.toDataURL("image/png"));
    }

wangqinghua's avatar
wangqinghua committed
}