liche update for admin goods list sort
This commit is contained in:
@@ -31,27 +31,33 @@ class Goods extends HD_Controller
|
||||
$params = $this->input->get();
|
||||
$page = $params['page'] = $params['page'] ? intval($params['page']) : 1;
|
||||
$size = $params['size'] = $params['size'] ? intval($params['size']) : 20;
|
||||
$where = $autoList = array();
|
||||
$where = $where_fine = $autoList = array();
|
||||
$search_type = 0;
|
||||
if ($params['brand_id']) {
|
||||
$where['brand_id'] = $params['brand_id'];
|
||||
$where_fine['brand_id'] = $params['brand_id'];
|
||||
$autoList[2] = $this->mdAutoSeries->select(array('status' => 1, 'brand_id' => $params['brand_id']), 'id desc', 0, 0, 'id,name');
|
||||
}
|
||||
if ($params['s_id']) {
|
||||
$where['s_id'] = $params['s_id'];
|
||||
$where_fine['s_id'] = $params['s_id'];
|
||||
$autoList[3] = $this->mdAutoAttr->select(array('type' => 1, 's_id' => $params['s_id']), 'id desc', 0, 0, 'id,title as name');
|
||||
}
|
||||
if ($params['v_id']) {
|
||||
$where['v_id'] = $params['v_id'];
|
||||
$where_fine['v_id'] = $params['v_id'];
|
||||
}
|
||||
//车身颜色
|
||||
if ($params['cor_id']) {
|
||||
$where['cor_id'] = $params['cor_id'];
|
||||
$where_fine['cor_id'] = $params['cor_id'];
|
||||
} else {
|
||||
$params['cor_id'] = '';
|
||||
}
|
||||
|
||||
if($params['addr_id']){
|
||||
$where['addr_id'] = $params['addr_id'];
|
||||
$where_fine['addr_id'] = $params['addr_id'];
|
||||
} else if($params['city_id']){
|
||||
$where_addr = array('status>0' => null, 'city_id' => $params['city_id']);
|
||||
if($params['county_id']){
|
||||
@@ -63,8 +69,10 @@ class Goods extends HD_Controller
|
||||
if($rows_addr){
|
||||
$str_ids = implode(',', array_column($rows_addr, 'id'));
|
||||
$where["addr_id in ({$str_ids})"] = null;
|
||||
$where_fine["addr_id in ({$str_ids})"] = null;
|
||||
} else {
|
||||
$where['addr_id'] = -1;
|
||||
$where_fine['addr_id'] = -1;
|
||||
}
|
||||
} else {
|
||||
$params['city_id'] = '';
|
||||
@@ -73,29 +81,62 @@ class Goods extends HD_Controller
|
||||
}
|
||||
if(strlen($params['status'])>0){
|
||||
$where['status'] = $params['status'];
|
||||
$where_fine['m.status'] = $params['status'];
|
||||
} else {
|
||||
$params['status'] = '';
|
||||
}
|
||||
|
||||
if($params['vin']){
|
||||
$where["vin like '%{$params['vin']}%'"] = null;
|
||||
$where_fine["vin like '%{$params['vin']}%'"] = null;
|
||||
}
|
||||
//精品筛选
|
||||
if($params['fine_ids']){
|
||||
$fine_count = substr_count($params['fine_ids'], ',') + 1;
|
||||
$sql = "select item_id from lc_items_relate where type=1 and status=1 and type_id in ({$params['fine_ids']}) group by item_id having count(item_id)={$fine_count}";
|
||||
$where["id in ($sql)"] = null;
|
||||
$fine_num = substr_count($params['fine_ids'], ',') + 1;
|
||||
$where_fine["type_id in ({$params['fine_ids']})"] = null;
|
||||
$where_fine["having"] = "fine_num={$fine_num}";
|
||||
$search_type = 1;
|
||||
} else {
|
||||
$params['fine_ids'] = '';
|
||||
}
|
||||
|
||||
$order = 'id';
|
||||
if('fine_num' == $params['order']){
|
||||
$order = $params['order'];
|
||||
$search_type = 1;
|
||||
} else if($params['order']){
|
||||
$order = $params['order'];
|
||||
} else {
|
||||
$params['order'] = $order;
|
||||
}
|
||||
$sort = 'desc';
|
||||
if($params['sort']){
|
||||
$sort = $params['sort'];
|
||||
} else {
|
||||
$params['sort'] = $sort;
|
||||
}
|
||||
|
||||
$autoList[1] = $this->mdAutoBrand->select(array('status' => 1), 'id desc', 0, 0, 'id,name');
|
||||
$count = $this->mdItems->count($where);
|
||||
if(1 == $search_type){
|
||||
//精品筛选
|
||||
$count = $this->mdItems->count_fine($where_fine);
|
||||
} else {
|
||||
$count = $this->mdItems->count($where);
|
||||
}
|
||||
$lists = array();
|
||||
$fine_ids = array();
|
||||
if ($count) {
|
||||
$fileds = 'id,brand_id,s_id,vin,v_id,cor_id,incor_id,in_time,addr_id';
|
||||
$rows = $this->mdItems->select($where, 'id desc', $page, $size, $fileds);
|
||||
if(1 == $search_type){
|
||||
//精品筛选
|
||||
$fileds = 'id,brand_id,s_id,vin,v_id,cor_id,incor_id,in_time,addr_id,count(type_id) as fine_num';
|
||||
$orderby = "{$order} {$sort}";
|
||||
$rows = $this->mdItems->select_fine($where_fine, $orderby, $page, $size, $fileds);
|
||||
} else {
|
||||
$fileds = 'id,brand_id,s_id,vin,v_id,cor_id,incor_id,in_time,addr_id';
|
||||
$orderby = "{$order} {$sort}";
|
||||
$rows = $this->mdItems->select($where, $orderby, $page, $size, $fileds);
|
||||
}
|
||||
|
||||
$brand_id_arr = array();
|
||||
$addr_ids = array();
|
||||
$ids = array();
|
||||
|
||||
@@ -35,10 +35,63 @@
|
||||
white-space: normal;
|
||||
line-height: 1.4;
|
||||
}
|
||||
.order-on {
|
||||
border-bottom: 2px solid #e61773;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.order-none{
|
||||
height: 38px;
|
||||
}
|
||||
|
||||
.order {
|
||||
width: 150px;
|
||||
display: table-cell;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.order a{
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
color: #5e5e5e;
|
||||
}
|
||||
|
||||
.angle_top {
|
||||
content: '';
|
||||
width: 0;
|
||||
height: 0;
|
||||
display: block;
|
||||
border-style: solid;
|
||||
border-width: 0 6px 6px;
|
||||
border-color: transparent transparent #5e5e5e;
|
||||
position: absolute;
|
||||
transform: rotate(180deg);
|
||||
bottom: 14px;
|
||||
right: 17px;
|
||||
}
|
||||
|
||||
.angle_bottom {
|
||||
content: '';
|
||||
width: 0;
|
||||
height: 0;
|
||||
display: block;
|
||||
border-style: solid;
|
||||
border-width: 0 6px 6px;
|
||||
border-color: transparent transparent #5e5e5e;
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 17px;
|
||||
}
|
||||
</style>
|
||||
<div class="coms-table-wrap mt10">
|
||||
<form class=" form-search coms-table-hd clearfix no-border" onsubmit="return false"
|
||||
action="/items/goods/goods">
|
||||
<input title="排序字段" type="hidden" name="order" id="order" v-model="params.order"/>
|
||||
<input title="排序方向" type="hidden" name="sort" id="sort" v-model="params.sort"/>
|
||||
<div class="am-form am-form-horizontal">
|
||||
<div class="am-form-group fl">
|
||||
<label class="am-para-label w100">车型:</label>
|
||||
@@ -168,12 +221,60 @@
|
||||
<table class="am-table am-table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="5%"><span>ID</span></th>
|
||||
<th width="25%"><span>车辆</span></th>
|
||||
<th width="15%"><span>车架号</span></th>
|
||||
<th width="15%"><span>存放地</span></th>
|
||||
<th width="15%"><span>入库日期</span></th>
|
||||
<th width="15%"><span>精品加装</span></th>
|
||||
<th width="5%">
|
||||
<span :class="'order'+('id'==params.order?' order-on':' order-none')">
|
||||
<a href="javascript:void(0)" @click="set_order('id')">
|
||||
<span class="mr10">ID</span>
|
||||
<i class="angle_top" v-if="'desc'==params.sort||'id'!=params.order"></i>
|
||||
<i class="angle_bottom" v-if="'asc'==params.sort||'id'!=params.order"></i>
|
||||
</a>
|
||||
</span>
|
||||
</th>
|
||||
<th width="25%">
|
||||
<span :class="'order'+('brand_id'==params.order?' order-on':' order-none')">
|
||||
<a href="javascript:void(0)" @click="set_order('brand_id')">
|
||||
<span class="mr10">车辆</span>
|
||||
<i class="angle_top" v-if="'desc'==params.sort||'brand_id'!=params.order"></i>
|
||||
<i class="angle_bottom" v-if="'asc'==params.sort||'brand_id'!=params.order"></i>
|
||||
</a>
|
||||
</span>
|
||||
</th>
|
||||
<th width="15%">
|
||||
<span :class="'order'+('vin'==params.order?' order-on':' order-none')">
|
||||
<a href="javascript:void(0)" @click="set_order('vin')">
|
||||
<span>车架号</span>
|
||||
<i class="angle_top" v-if="'desc'==params.sort||'vin'!=params.order"></i>
|
||||
<i class="angle_bottom" v-if="'asc'==params.sort||'vin'!=params.order"></i>
|
||||
</a>
|
||||
</span>
|
||||
</th>
|
||||
<th width="15%">
|
||||
<span :class="'order'+('addr_id'==params.order?' order-on':' order-none')">
|
||||
<a href="javascript:void(0)" @click="set_order('addr_id')">
|
||||
<span>存放地</span>
|
||||
<i class="angle_top" v-if="'desc'==params.sort||'addr_id'!=params.order"></i>
|
||||
<i class="angle_bottom" v-if="'asc'==params.sort||'addr_id'!=params.order"></i>
|
||||
</a>
|
||||
</span>
|
||||
</th>
|
||||
<th width="15%">
|
||||
<span :class="'order'+('in_time'==params.order?' order-on':' order-none')">
|
||||
<a href="javascript:void(0)" @click="set_order('in_time')">
|
||||
<span>入库日期</span>
|
||||
<i class="angle_top" v-if="'desc'==params.sort||'in_time'!=params.order"></i>
|
||||
<i class="angle_bottom" v-if="'asc'==params.sort||'in_time'!=params.order"></i>
|
||||
</a>
|
||||
</span>
|
||||
</th>
|
||||
<th width="15%">
|
||||
<span :class="'order'+('fine_num'==params.order?' order-on':' order-none')">
|
||||
<a href="javascript:void(0)" @click="set_order('fine_num')">
|
||||
<span>精品加装</span>
|
||||
<i class="angle_top" v-if="'desc'==params.sort||'fine_num'!=params.order"></i>
|
||||
<i class="angle_bottom" v-if="'asc'==params.sort||'fine_num'!=params.order"></i>
|
||||
</a>
|
||||
</span>
|
||||
</th>
|
||||
<th width=""><span>操作</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -541,6 +642,26 @@
|
||||
vm.attrs_cor = [];
|
||||
vm.params.cor_id = '';
|
||||
}
|
||||
},
|
||||
set_order:function(order){
|
||||
var vm = this;
|
||||
var sort = vm.params.sort;
|
||||
if(vm.params.order == order){
|
||||
if(vm.params.sort == 'desc'){
|
||||
sort = 'asc';
|
||||
} else {
|
||||
sort = 'desc';
|
||||
}
|
||||
} else {
|
||||
vm.params.order = order;
|
||||
sort = 'desc';
|
||||
}
|
||||
|
||||
vm.params.order = order;
|
||||
vm.params.sort = sort;
|
||||
$('#sort').val(sort);
|
||||
$('#order').val(order);
|
||||
$('.form-search').submit();
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
|
||||
@@ -14,4 +14,81 @@ class Items_model extends HD_Model
|
||||
{
|
||||
parent::__construct($this->table_name, 'default');
|
||||
}
|
||||
|
||||
/**
|
||||
* 精品筛选数量
|
||||
* @param array $where
|
||||
* @return mixed
|
||||
*/
|
||||
function count_fine($where = array()){
|
||||
$join_on = "j.item_id=m.id and j.type=1 and j.status=1";
|
||||
$this->db->from("lc_items as m");
|
||||
$this->db->join("lc_items_relate as j", $join_on, 'left');
|
||||
|
||||
$this->db->group_by('id');
|
||||
|
||||
if($where['having']){
|
||||
$this->db->having($where['having']);
|
||||
unset($where['having']);
|
||||
}
|
||||
|
||||
if($where)
|
||||
{
|
||||
$this->db->where($where);
|
||||
}
|
||||
|
||||
$this->db->select('id, count(type_id) as fine_num', false);
|
||||
|
||||
return $this->db->count_all_results();
|
||||
}
|
||||
|
||||
/**
|
||||
* 精品筛选数据列表
|
||||
* @param array $where
|
||||
* @param string $order
|
||||
* @param int $page
|
||||
* @param int $page_size
|
||||
* @param string $select
|
||||
* @return mixed
|
||||
*/
|
||||
function select_fine($where = array(), $order = '', $page = 0, $page_size = 20, $select = ''){
|
||||
$join_on = "j.item_id=m.id and j.type=1 and j.status=1";
|
||||
$this->db->from("lc_items as m");
|
||||
$this->db->join("lc_items_relate as j", $join_on, 'left');
|
||||
|
||||
$this->db->group_by('id');
|
||||
|
||||
if($where['having']){
|
||||
$this->db->having($where['having']);
|
||||
unset($where['having']);
|
||||
}
|
||||
|
||||
if($select)
|
||||
{
|
||||
$this->db->select($select, false);
|
||||
}
|
||||
|
||||
if($where)
|
||||
{
|
||||
$this->db->where($where);
|
||||
}
|
||||
|
||||
if($order)
|
||||
{
|
||||
$this->db->order_by($order);
|
||||
}
|
||||
|
||||
if($page)
|
||||
{
|
||||
$offset = ($page - 1) * $page_size;
|
||||
$limit = $page_size;
|
||||
}
|
||||
else
|
||||
{
|
||||
$offset = null;
|
||||
$limit = null;
|
||||
}
|
||||
|
||||
return $this->db->get(null, $limit, $offset)->result_array();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user