Skip to content
goods-collect.ts 5.09 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, ViewChild} from '@angular/core';
import {InfiniteScrollContent, IonicPage, ModalController, NavController, NavParams} from 'ionic-angular';
import {ServeService} from "../serve.service";
import {FilterComponent} from "../../../components/filter/filter";
import {timer} from "rxjs/observable/timer";
import {CommonService} from "../../../provide/common.service";
import {CommentComponent} from "../../../components/comment/comment";
import {SpcesComponent} from "../../../components/spces/spces";
import {GoodsCartPage} from "./goods-cart/goods-cart";
wangqinghua's avatar
wangqinghua committed
import {GoodsOrderPage} from "./goods-order/goods-order";
wangqinghua's avatar
wangqinghua committed
import {GoodsVerifyPage} from "./goods-verify/goods-verify";
wangqinghua's avatar
wangqinghua committed
import {Storage} from "@ionic/storage";
wangqinghua's avatar
wangqinghua committed
import {AppMainService} from "../../../app/app.service";
wangqinghua's avatar
wangqinghua committed


@IonicPage()
@Component({
    selector: 'page-goods-collect',
    templateUrl: 'goods-collect.html',
})
export class GoodsCollectPage {
    @ViewChild(InfiniteScrollContent) infiniteScrollContent: InfiniteScrollContent;


    goodsList = [];  //商品列表
    typeList = [];  //分类

    pageNumber = 1;
    pageSize = 20;
    obj = {
        params: '',
        type: ''
    };
    totalNum;

    isLoad = true;

    loadMore = true;
    chooseObj;
wangqinghua's avatar
wangqinghua committed
    role = [];
wangqinghua's avatar
wangqinghua committed

    constructor(public navCtrl: NavController, public navParams: NavParams,
                private serveSer: ServeService, private modalCtrl: ModalController,
wangqinghua's avatar
wangqinghua committed
                private commonSer: CommonService,private appMainSer:AppMainService) {
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    ionViewDidLoad(){
wangqinghua's avatar
wangqinghua committed
        this.getList();
        this.getTypeList();
wangqinghua's avatar
wangqinghua committed
        //获取权限
wangqinghua's avatar
wangqinghua committed
        this.appMainSer.role.subscribe(value => {
                this.role = value;
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    search() {
wangqinghua's avatar
wangqinghua committed
        this.pageNumber = 1;
        this.getList();
    }

wangqinghua's avatar
wangqinghua committed
    filterType(item) {
wangqinghua's avatar
wangqinghua committed
        this.obj.type = item;
        this.getList();
    }

    //商品列表
    getList() {
        const data = {
            P_pageNumber: this.pageNumber,
            P_pageSize: this.pageSize,
            param1: this.obj.params,
            type: this.obj.type
        };
        this.serveSer.searchSupplies(data).subscribe(
            (res) => {
                this.goodsList = res.list;
                this.totalNum = res.total;
            }
        )
    }

    //分类列表
    getTypeList() {
        this.serveSer.getTypeList().subscribe(
            (res) => {
                this.typeList = res.data;
            }
        )
    }

    //打开过滤条件
    fliter() {
wangqinghua's avatar
wangqinghua committed
        let modal = this.modalCtrl.create(FilterComponent, {list: this.typeList, choose: this.obj.type}, {
wangqinghua's avatar
wangqinghua committed
            enterAnimation: 'modal-from-right-enter',
            leaveAnimation: 'modal-from-right-leave'
wangqinghua's avatar
wangqinghua committed
        });
        modal.onDidDismiss(data => {
wangqinghua's avatar
wangqinghua committed
            if (data) {
                this.filterType(data.choose);
            }
wangqinghua's avatar
wangqinghua committed
        });
        modal.present();
wangqinghua's avatar
wangqinghua committed
    }

    //下拉刷新
    doRefresh(e) {
        this.loadMore = true;
        this.infiniteScrollContent.inf.enable(true);
        const data = {
            P_pageNumber: 1,
            P_pageSize: this.pageSize,
            param1: this.obj.params,
            type: this.obj.type
        };
        this.serveSer.searchSupplies(data).subscribe(
            (res) => {
                this.goodsList = res.list;
                this.totalNum = res.total;
                timer(800).subscribe(() => {
                    this.commonSer.toast('刷新成功');
                    e.complete()
                });
            }
        )
    }

    //加载更多
    doInfinite(e) {
        console.log("doInfinite")
        if (this.totalNum == this.goodsList.length) {
            console.log("没有更多了")
            this.loadMore = false;
            e.enable(false);
            return false;
        }
        this.pageNumber++;
        const data = {
            P_pageNumber: this.pageNumber,
            P_pageSize: this.pageSize,
            param1: this.obj.params,
            type: this.obj.type
        };
        this.serveSer.searchSupplies(data).subscribe(
            (res) => {
                this.totalNum = res.total;
                res.list.forEach(e => {
                    this.goodsList.push(e);
                });
                timer(800).subscribe(() => e.complete());
            }
        )
    }

    //选择规格 数量
wangqinghua's avatar
wangqinghua committed
    choose(item) {
wangqinghua's avatar
wangqinghua committed
        let modal = this.modalCtrl.create(SpcesComponent, {goodsId: item.id});
wangqinghua's avatar
wangqinghua committed
        modal.onDidDismiss(res => {
            if (res) {
                this.chooseObj = res;
                this.addCart();
            }
        })
        modal.present();
    }

    //添加到购物车
wangqinghua's avatar
wangqinghua committed
    addCart() {
wangqinghua's avatar
wangqinghua committed
        const data = {
wangqinghua's avatar
wangqinghua committed
            "status": 1,
            "orderSuppies": [this.chooseObj]
wangqinghua's avatar
wangqinghua committed
        };
        this.serveSer.saveOrder(data).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
wangqinghua's avatar
wangqinghua committed
                this.commonSer.toast('添加成功!')
wangqinghua's avatar
wangqinghua committed
            }
        )
    }

    //购物车
wangqinghua's avatar
wangqinghua committed
    goCart() {
wangqinghua's avatar
wangqinghua committed
        this.navCtrl.push(GoodsCartPage);
    }

wangqinghua's avatar
wangqinghua committed
    //审核提交
    goVerify() {
        this.navCtrl.push(GoodsVerifyPage);
    }

wangqinghua's avatar
wangqinghua committed
    //订单
    goOrder() {
        this.navCtrl.push(GoodsOrderPage);
    }

wangqinghua's avatar
wangqinghua committed
}