order.page.js 1.88 KB
/**
 * [个人中心]首页/我的订单
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2016/07/04
 */

var tableOperation = {
    $header: $('.table.column-category'),
    $body: $('.table.table-body'),
    removeBody: function() {
        this.$body = $('.table.table-body');
        this.$body.remove();
    },
    appendBody: function(htmlStr) {
        $(htmlStr).appendTo(this.$header);
    }
};

require('./me');

function getOrderList(type, page) {
    tableOperation.removeBody();

    $.ajax({
        url: 'getOrderList',
        data: {
            type: type,
            page: page
        }
    }).done(function(res) {
        tableOperation.appendBody(res);
        bindPaginationClick(); // eslint-disable-line
    }).fail(function(err) {
        console.log(err);
    });
}

function getQueryString() {
    var queryArr = location.search.substr(1).split('&');
    var query = {};

    queryArr.forEach(function(pair) {
        var arr = pair.split('=');

        query[arr[0]] = arr[1];

    });

    return query;
}

function bindPaginationClick() {
    $('.blk-pagination li').off('click').on('click', function(e) {
        var $this = $(this);
        var page = $this.find('a').attr('href').split('=')[1];
        var type = getQueryString().type;

        e.preventDefault();

        if (!$this.hasClass('active')) {
            $('.blk-pagination li.active').removeClass('active');
            $this.addClass('active');

            getOrderList(type, page);
        }

    });
}

$('.tabs li').on('click', function() {
    var $this = $(this);
    var typeMap = {
        all: 1,
        paying: 2,
        delivering: 3
    };
    var type = typeMap[$this.data('type')];
    var page = getQueryString().page;

    if (!$this.hasClass('active')) {
        $('.tabs li.active').removeClass('active');
        $this.addClass('active');

        getOrderList(type, page);
    }

});


bindPaginationClick();