let $ = require('yoho-jquery'); let debounce = require('lodash/debounce'); let loading = require('plugin/loading'); let bp = require('./burying-point'); let hasEnd = false; let search = { pageIndex: 1, type: null }; /** * 加载订单明细 * * @param type */ let loadOrderList = function(pageIndex, type) { if (type && type !== search.type) { hasEnd = false; } if (hasEnd) { // 没有更多页了 return; } if (type && type !== search.type || pageIndex !== search.pageIndex) { $.get('/home/installment/order.html', { page: pageIndex, type: type }).then(function(result) { if (result && result.replace(/\s/g, '')) { search.pageIndex = pageIndex; } else { hasEnd = true; } if (type !== search.type) { // 切换TAB时清空列表 $('#order-list').empty(); search.type = type; } $('#order-list').append(result); $('#order-list li').on('click', function() { loading.showLoadingMask(); }); // 订单状态样式 $('.status').each(function() { let text = $(this).text(); if (text.indexOf(/已还清|已取消|已退款|已结清|订单取消/)) { $(this).addClass('faded'); } }); if ($('#order-list li').length === 0) { $('#no-result').show(); $('#order-list').hide(); } else { $('#order-list').show(); $('#no-result').hide(); } }); } }; let lastScrollTop = 0; let windowHeight = $(window).height(); let scrollFn = debounce(function() { let scrollTop = $(window).scrollTop(); // 当scroll到1/4列表高度后继续请求下一页数据 if (scrollTop > lastScrollTop && (scrollTop + windowHeight > $(document).height() - 0.25 * $('#order-list').height() - 50)) { loadOrderList(search.pageIndex + 1, search.type); } lastScrollTop = scrollTop; }, 100); /** * 顶部TAB */ $('.header-tab a').click(function() { $(this).parent().addClass('active'); $(this).parent().siblings().removeClass('active'); loadOrderList(1, $(this).data('type')); // 统计: tab 切换 bp.setContYas({ op: 'YB_INST_ORDER_TAB', appop: 'YB_H5_INST_ORDER_TAB_C' }, { LAB_ID: $(this).parent().index() }, true); return false; }); // 默认加载第一页 loadOrderList(search.pageIndex, 1); // 滚屏分页 $(window).scroll(function() { scrollFn(); }); ((function() { let tick = 0; // 显示加载进度条 $(document).ajaxStart(function() { tick = new Date().getTime(); setTimeout(function() { if (tick > 0) { // 超过100ms请求仍未结束则显示 loading.showLoadingMask(); } }, 100); }); $(document).ajaxStop(function() { tick = 0; loading.hideLoadingMask(); }); })()); $(window).load(function() { // 统计:分期主页点击分期订单进入订单列表页时 bp.setContYas({ op: 'YB_INST_REPAYMENT', appop: 'YB_H5_INST_REPAYMENT_C' }, { POS_ID: $('.installment-order-page').data('posId') }, true); $(document).on('click', '.order-list a', function() { // 统计:点击各个订单时 bp.setContYas({ op: 'YB_INST_ORDER_CLICK', appop: 'YB_H5_INST_ORDER_C' }, { LAB_ID: $('.header-tab .active').index(), ORDER_CODE: $(this).data('code') }, false); }); });