Authored by xuqi

order rebuild

@@ -943,7 +943,8 @@ @@ -943,7 +943,8 @@
943 { 943 {
944 name: '', 944 name: '',
945 active: true, 945 active: true,
946 - typeId: 1 946 + typeId: 1,
  947 + url: ''
947 }, 948 },
948 ... 949 ...
949 ] 950 ]
  1 +/**
  2 + * 我的逛
  3 + * @author xuqi<qi.xu@yoho.cn>
  4 + * @date: 2015/11/17
  5 + */
  6 +
  7 +var $ = require('jquery');
  8 +
  9 +var info = require('../guang/info');
  10 +
  11 +info.initInfoEvt($('#info-list'));
@@ -17,27 +17,32 @@ var winH = $(window).height(); @@ -17,27 +17,32 @@ var winH = $(window).height();
17 17
18 var activeType = $navLi.filter('.active').data('type'); //当前active的项的index 18 var activeType = $navLi.filter('.active').data('type'); //当前active的项的index
19 19
20 -var orderPage = {}; 20 +var order = {
  21 + page: 0,
  22 + end: false
  23 +};
21 24
22 var inAjax = false; 25 var inAjax = false;
23 26
24 var loading = require('../plugin/loading'); 27 var loading = require('../plugin/loading');
25 28
26 -var navHammer, orderHammer; 29 +var orderHammer;
27 30
28 //加载订单 31 //加载订单
29 -function getOrders() { 32 +function getOrders(option) {
30 var opt = { 33 var opt = {
31 type: activeType, 34 type: activeType,
32 - page: orderPage[activeType] ? (orderPage[activeType] + 1) : 1 35 + page: order.page + 1
33 }; 36 };
34 37
  38 + var show = option && option.showLoadingMask;
  39 +
35 if (inAjax) { 40 if (inAjax) {
36 return; 41 return;
37 } 42 }
38 43
39 inAjax = true; 44 inAjax = true;
40 - loading.showLoadingMask(); 45 + show && loading.showLoadingMask();
41 46
42 $.ajax({ 47 $.ajax({
43 type: 'GET', 48 type: 'GET',
@@ -46,23 +51,27 @@ function getOrders() { @@ -46,23 +51,27 @@ function getOrders() {
46 success: function(data) { 51 success: function(data) {
47 var num; 52 var num;
48 53
49 - if (data.code === 200) {  
50 - orderPage[opt.type] = opt.page; 54 + if (data !== ' ') {
  55 + order.page = opt.page;
51 56
52 if (opt.page === 1) { 57 if (opt.page === 1) {
53 - $curContainer.html(data.data); 58 + $curContainer.html(data);
54 lazyLoad($curContainer.find('.lazy')); 59 lazyLoad($curContainer.find('.lazy'));
55 } else { 60 } else {
56 num = $curContainer.children('.order').length; 61 num = $curContainer.children('.order').length;
57 - $curContainer.append(data.data); 62 + $curContainer.append(data);
58 63
59 //lazyload 64 //lazyload
60 - lazyLoad($curContainer.children('.order:gt(' + (num - 1) + ') .lazy')); 65 + lazyLoad($curContainer.children('.order:gt(' + (num - 1) + ')').find('.lazy'));
61 } 66 }
  67 +
  68 + window.rePosFooter(); //重新计算底部位置
  69 + } else {
  70 + order.end = true;
62 } 71 }
63 72
64 inAjax = false; 73 inAjax = false;
65 - loading.hideLoadingMask(); 74 + show && loading.hideLoadingMask();
66 } 75 }
67 }); 76 });
68 } 77 }
@@ -83,33 +92,6 @@ lazyLoad(); @@ -83,33 +92,6 @@ lazyLoad();
83 92
84 loading.init($('body')); //满屏loading 93 loading.init($('body')); //满屏loading
85 94
86 -//导航切换  
87 -navHammer = new Hammer(document.getElementById('order-nav'));  
88 -navHammer.on('tap', function(e) {  
89 - var $cur = $(e.target).closest('li'),  
90 - index;  
91 -  
92 - if ($cur.length === 0 || $cur.hasClass('active')) {  
93 - return;  
94 - }  
95 -  
96 - index = $cur.index();  
97 -  
98 - $navLi.filter('.active').removeClass('active');  
99 - $cur.addClass('active');  
100 -  
101 - $curContainer.addClass('hide');  
102 - $curContainer = $orderContainer.children(':eq(' + index + ')').removeClass('hide');  
103 -  
104 - activeType = $cur.data('type');  
105 -  
106 - if (orderPage[activeType]) {  
107 - return;  
108 - } else {  
109 - getOrders();  
110 - }  
111 -});  
112 -  
113 //点击订单区域跳转订单详情页 95 //点击订单区域跳转订单详情页
114 orderHammer = new Hammer(document.getElementById('order-container')); 96 orderHammer = new Hammer(document.getElementById('order-container'));
115 orderHammer.on('tap', function(e) { 97 orderHammer.on('tap', function(e) {
@@ -168,9 +150,13 @@ orderHammer.on('tap', function(e) { @@ -168,9 +150,13 @@ orderHammer.on('tap', function(e) {
168 }); 150 });
169 151
170 $(window).scroll(function() { 152 $(window).scroll(function() {
171 - if ($(window).scrollTop() + winH > 153 + if (order.end === false && $(window).scrollTop() + winH >
172 $(document).height() - 0.25 * $orderContainer.height()) { 154 $(document).height() - 0.25 * $orderContainer.height()) {
173 - getOrders(); 155 +
  156 + //下拉请求时不显示mask
  157 + getOrders({
  158 + noLoadingMask: true
  159 + });
174 } 160 }
175 }); 161 });
176 162
@@ -106,7 +106,14 @@ @@ -106,7 +106,14 @@
106 border-bottom: 1px solid #e0e0e0; 106 border-bottom: 1px solid #e0e0e0;
107 background: #fff; 107 background: #fff;
108 108
109 - > li{ 109 + a {
  110 + display: block;
  111 + height: 100%;
  112 + width: 100%;
  113 + color: #b0b0b0;
  114 + }
  115 +
  116 + > li {
110 float: left; 117 float: left;
111 height: 90rem / $pxConvertRem; 118 height: 90rem / $pxConvertRem;
112 width: 25%; 119 width: 25%;
@@ -115,7 +122,7 @@ @@ -115,7 +122,7 @@
115 font-size: 26rem / $pxConvertRem; 122 font-size: 26rem / $pxConvertRem;
116 text-align: center; 123 text-align: center;
117 124
118 - &.active { 125 + &.active a {
119 color: #000; 126 color: #000;
120 } 127 }
121 } 128 }
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 <ul id="order-nav" class="order-nav clearfix"> 4 <ul id="order-nav" class="order-nav clearfix">
5 {{#each navs}} 5 {{#each navs}}
6 <li {{#if active}}class="active"{{/if}} data-type="{{typeId}}"> 6 <li {{#if active}}class="active"{{/if}} data-type="{{typeId}}">
7 - {{name}} 7 + <a href="{{url}}">{{name}}</a>
8 </li> 8 </li>
9 {{/each}} 9 {{/each}}
10 </ul> 10 </ul>
@@ -463,19 +463,19 @@ class HomeController extends AbstractAction @@ -463,19 +463,19 @@ class HomeController extends AbstractAction
463 $data = OrderModel::getNavs($type); 463 $data = OrderModel::getNavs($type);
464 if (!empty($data)) { 464 if (!empty($data)) {
465 $order['navs'] = $data; 465 $order['navs'] = $data;
466 - $order['orderPage'] = true;  
467 } else { 466 } else {
468 $this->error(); 467 $this->error();
469 } 468 }
470 469
471 $this->_view->display('order', array( 470 $this->_view->display('order', array(
472 'order' => $order, 471 'order' => $order,
473 - 'pageFooter' => true 472 + 'pageFooter' => true,
  473 + 'orderPage' => true
474 )); 474 ));
475 } 475 }
476 476
477 //ajax请求订单页面 477 //ajax请求订单页面
478 - public function getOrderAction() { 478 + public function getOrdersAction() {
479 //判断是不是ajax请求 479 //判断是不是ajax请求
480 if (!$this->isAjax()) { 480 if (!$this->isAjax()) {
481 $this->error(); 481 $this->error();