feat/task1-c-wallet
devil_gong 2018-09-10 12:18:27 +08:00
parent 6b4c67eaf6
commit 47e1c58eb6
6 changed files with 84 additions and 22 deletions

View File

@ -84,6 +84,11 @@ class SearchController extends CommonController
*/ */
public function GoodsList() public function GoodsList()
{ {
// 参数处理
$this->params['order_by_field'] = trim(I('order_by_field', 'default'));
$this->params['order_by_type'] = trim(I('order_by_type', 'desc'));
// 获取商品列表
$data = SearchService::GoodsList($this->params); $data = SearchService::GoodsList($this->params);
if(empty($data['data'])) if(empty($data['data']))
{ {

View File

@ -88,28 +88,39 @@
</div> </div>
<div class="search-content"> <div class="search-content">
<ul class="sort-nav" data-am-sticky="{animation: 'slide-top'}"> <ul class="sort-nav" data-am-sticky="{animation: 'slide-top'}">
<li class="first"> <li class="active" data-field="default" data-type="desc">
<a title="综合">综合排序</a> <a href="javascript:;" title="综合">
<span>综合</span>
</a>
</li> </li>
<li> <li data-field="sales_count" data-type="desc">
<a title="销量">销量排序</a> <a href="javascript:;" title="销量">
<i class="am-icon-sort-amount-asc"></i> <span>销量</span>
<i class="am-icon-long-arrow-down"></i>
</a>
</li> </li>
<li> <li data-field="price" data-type="desc">
<a title="价格">价格优先</a> <a href="javascript:;" title="价格">
<i class="am-icon-sort-amount-asc"></i> <span>价格</span>
<i class="am-icon-long-arrow-down"></i>
</a>
</li> </li>
<li class="big"><a title="评价" href="#">评价为主</a></li>
</ul> </ul>
<div class="clear"></div> <div class="clear"></div>
<ul class="am-avg-sm-2 am-avg-md-3 am-avg-lg-5 data-list"></ul> <ul class="am-avg-sm-2 am-avg-md-3 am-avg-lg-5 data-list"></ul>
</div> </div>
<!-- 加载数据 -->
<div class="loding-view">
<i class="am-icon-spinner am-icon-pulse"></i>
<span>加载中...</span>
</div>
<!-- 没有数据 --> <!-- 没有数据 -->
<div class="table-no" style="display:none;"><i class="am-icon-warning"></i> {{:L('common_not_data_tips')}}</div> <div class="table-no" style="display:none;"><i class="am-icon-warning"></i> {{:L('common_not_data_tips')}}</div>
<!-- 分页 --> <!-- 分页 -->
<button type="button" class="am-btn am-btn-default am-btn-block search-pages-submit" data-url="{{:U('Home/Search/GoodsList')}}">加载更多 <i class="am-icon-angle-double-down"></i></button> <button type="button" class="am-btn am-btn-default am-btn-block search-pages-submit" data-url="{{:U('Home/Search/GoodsList')}}" style="display:none;">加载更多 <i class="am-icon-angle-double-down"></i></button>
</div> </div>
</div> </div>
</div> </div>

View File

@ -108,10 +108,20 @@ class SearchService
// 获取商品列表 // 获取商品列表
if($result['total'] > 0) if($result['total'] > 0)
{ {
// 排序
$order_by = '';
if(!empty($params['order_by_field']) && !empty($params['order_by_type']) && $params['order_by_field'] != 'default')
{
$order_by = $params['order_by_field'].' '.$params['order_by_type'];
} else {
$order_by = 'access_count '.$params['order_by_type'].', sales_count '.$params['order_by_type'];
}
// 分页计算
$page = intval(I('page', 1)); $page = intval(I('page', 1));
$n = 10; $n = 10;
$m = intval(($page-1)*$n); $m = intval(($page-1)*$n);
$result['data'] = GoodsService::GoodsList(['where'=>$where, 'm'=>$m, 'n'=>$n]); $result['data'] = GoodsService::GoodsList(['where'=>$where, 'm'=>$m, 'n'=>$n, 'order_by'=>$order_by]);
$result['page_total'] = ceil($result['total']/$n); $result['page_total'] = ceil($result['total']/$n);
} }
return $result; return $result;

View File

@ -65,7 +65,7 @@ a:hover, a:focus { color: #d2364c; }
img, input { img, input {
vertical-align: middle;} vertical-align: middle;}
a { a {
color: #000; color: #333;
text-decoration: none; text-decoration: none;
} }
@ -457,6 +457,9 @@ background:url(../Images/ibar_sprites.png) no-repeat;background-position:0px -23
/* 公共错误提示页面 */ /* 公共错误提示页面 */
.tips-error { margin-top: 10%; } .tips-error { margin-top: 10%; }
/* 页面加载数据 */
.loding-view { text-align: center; color: #888; padding: 10px 0; }
/** /**
* *
*/ */

View File

@ -1,6 +1,5 @@
@charset "utf-8"; @charset "utf-8";
/* CSS Document */ /* CSS Document */
/*通用格式*/
*, *:after, *:before{ *, *:after, *:before{
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
-moz-box-sizing: border-box; -moz-box-sizing: border-box;
@ -48,10 +47,9 @@ li.select-result dt {left:-26px; top:0;font-weight:bold;width:50px;}
/*排序*/ /*排序*/
.sort-nav { width:100%; border-bottom: 1px solid #eee; background: #fff; overflow: hidden; height: 30px; } .sort-nav { width:100%; background: #fff; overflow: hidden; height: 30px; }
.sort-nav li{ float:left;width:33.33%;height:30px; line-height:30px; text-align:center; padding:0px 0px;} .sort-nav li{ float:left;width:33.33%;height:30px; line-height:30px; text-align:center; padding:0px 0px;cursor: pointer;}
.sort-nav li a{font-size:14px;} .sort-nav li a{font-size:14px;}
.sort-nav li.big{display:none;}
.sort-nav li.first {color: #F03726;} .sort-nav li.first {color: #F03726;}
@ -88,7 +86,7 @@ dl#select3 .dd-conent{ left:-200%; right:0px;}
.select li.select-result{display: none;} .select li.select-result{display: none;}
.suggest,.searchAbout,ul.pagination{ display:block;} .suggest,.searchAbout,ul.pagination{ display:block;}
.select,.sort-nav{padding:10px 10px 5px 10px;box-shadow: 0px 0px 2px #ccc;margin-top:5px;background: #fff;} .select,.sort-nav{padding:10px 10px 5px 10px;border: 1px solid #eee;margin-top:5px;background: #fff;}
.searchAbout{padding:10px;} .searchAbout{padding:10px;}
.select-list{width:100%;padding:0px 0px;} .select-list{width:100%;padding:0px 0px;}
@ -103,10 +101,10 @@ dl#select3 .dd-conent{ left:-200%; right:0px;}
/*排序*/ /*排序*/
.sort-nav{padding:0px 0px;border-radius: 0px 0px 4px 4px; margin:10px 5px; font-size: 12px;width:auto;overflow: hidden;} .sort-nav{padding:0px 0px;margin:10px 5px; font-size: 12px;width:auto;overflow: hidden;}
.sort-nav li{ display:inline; height:35px; line-height:35px; padding:0px 20px;width:auto;border-right:1px dotted #ddd;} .sort-nav li{ display:inline; padding:0px 20px;width:auto;border-right:1px solid #eee;}
.sort-nav li.big{display:block;border: none;} .sort-nav li.active{background: #F5F5F5;}
.sort-nav li.first{background: #F5F5F5;color: #000;} .sort-nav li.active a { color: #d2364c;}
.select-list .dd-conent { padding-top: 10px; } .select-list .dd-conent { padding-top: 10px; }

View File

@ -45,6 +45,31 @@ $(function()
get_goods_list(1); get_goods_list(1);
}); });
// 排序导航
$('.sort-nav li').on('click', function()
{
var type = $(this).attr('data-type');
$('.sort-nav li').attr('data-type', 'desc');
$('.sort-nav li a i').removeClass('am-icon-long-arrow-up').addClass('am-icon-long-arrow-down');
if($(this).hasClass('active'))
{
if(type == 'asc')
{
$(this).attr('data-type', 'desc');
$(this).find('a i').removeClass('am-icon-long-arrow-down').addClass('am-icon-long-arrow-up');
} else {
$(this).attr('data-type', 'asc');
$(this).find('a i').removeClass('am-icon-long-arrow-up').addClass('am-icon-long-arrow-down');
}
} else {
$('.sort-nav li').removeClass('active');
$(this).addClass('active');
$(this).attr('data-type', 'asc');
}
get_goods_list(1);
});
var hh = document.documentElement.clientHeight; var hh = document.documentElement.clientHeight;
var ls = document.documentElement.clientWidth; var ls = document.documentElement.clientWidth;
@ -66,7 +91,6 @@ $(function()
} }
}) })
$(document).on("click", ".screening-remove-submit", function() { $(document).on("click", ".screening-remove-submit", function() {
$(".dd-conent").slideUp(300); $(".dd-conent").slideUp(300);
}) })
@ -122,6 +146,8 @@ $(function()
var data = { var data = {
keywords: $('#search-input').val() || '', keywords: $('#search-input').val() || '',
page: page || parseInt($('.search-pages-submit').attr('data-page')) || 1, page: page || parseInt($('.search-pages-submit').attr('data-page')) || 1,
order_by_field: $('.sort-nav li.active').attr('data-field') || 'default',
order_by_type: $('.sort-nav li.active').attr('data-type') == 'asc' ? 'desc' : 'asc',
} }
$('.select-result .selected a').each(function(k, v) $('.select-result .selected a').each(function(k, v)
{ {
@ -134,6 +160,11 @@ $(function()
$('.data-list').html(''); $('.data-list').html('');
} }
// 页面提示处理
$('.loding-view').show();
$('.search-pages-submit').hide();
$('.table-no').hide();
// 请求数据 // 请求数据
$.ajax({ $.ajax({
url:$('.search-pages-submit').data('url'), url:$('.search-pages-submit').data('url'),
@ -143,6 +174,7 @@ $(function()
data:data, data:data,
success:function(result) success:function(result)
{ {
$('.loding-view').hide();
if(result.code == 0) if(result.code == 0)
{ {
for(var i in result.data.data) for(var i in result.data.data)
@ -182,6 +214,9 @@ $(function()
}, },
error:function(xhr, type) error:function(xhr, type)
{ {
$('.loding-view').hide();
$('.search-pages-submit').hide();
$('.table-no').show();
Prompt('网络异常出错'); Prompt('网络异常出错');
} }
}); });