购物车优化
parent
ea7d81b07c
commit
e9b1a76cab
|
|
@ -43,8 +43,10 @@ class BuyController extends CommonController
|
|||
{
|
||||
if(IS_POST)
|
||||
{
|
||||
redirect(U('Home/Buy/Index', $_POST));
|
||||
} else {
|
||||
// 获取商品列表
|
||||
$params = $_POST;
|
||||
$params = $_GET;
|
||||
$params['user'] = $this->user;
|
||||
$ret = BuyService::BuyTypeGoodsList($params);
|
||||
|
||||
|
|
@ -75,9 +77,6 @@ class BuyController extends CommonController
|
|||
$this->assign('msg', isset($ret['msg']) ? $ret['msg'] : L('common_param_error'));
|
||||
$this->display('/Public/TipsError');
|
||||
}
|
||||
} else {
|
||||
$this->assign('msg', L('common_unauthorized_access'));
|
||||
$this->display('/Public/TipsError');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -161,7 +161,8 @@ class CommonController extends Controller
|
|||
$this->assign('goods_category_list', GoodsService::GoodsCategory());
|
||||
|
||||
// 购物车商品总数
|
||||
$this->assign('common_cart_total', BuyService::CartTotal(['user'=>$this->user]));
|
||||
$common_cart_total = BuyService::CartTotal(['user'=>$this->user]);
|
||||
$this->assign('common_cart_total', ($common_cart_total > 99) ? '99+' : $common_cart_total);
|
||||
|
||||
// 当前控制器名称
|
||||
$this->assign('controller_name', CONTROLLER_NAME);
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
<div class="control">
|
||||
<h3>确认收货地址</h3>
|
||||
<notempty name="user_address_list">
|
||||
<button class="am-btn am-btn-danger am-btn-xs address-submit-save" type="button" data-url="{{:U('Home/UserAddress/SaveInfo')}}">使用新地址</button>
|
||||
<button class="am-btn am-btn-primary am-btn-xs address-submit-save" type="button" data-url="{{:U('Home/UserAddress/SaveInfo')}}">使用新地址</button>
|
||||
</notempty>
|
||||
</div>
|
||||
<notempty name="user_address_list">
|
||||
|
|
|
|||
|
|
@ -7,6 +7,9 @@
|
|||
</li>
|
||||
<li <if condition="strtolower(CONTROLLER_NAME.ACTION_NAME) eq 'cartindex'">class="active"</if>>
|
||||
<a <if condition="empty($user)">href="javascript:;" class="login-event"<else /> href="{{:U('Home/Cart/Index')}}"</if>><i class="am-icon-shopping-basket"></i>购物车</a>
|
||||
<notempty name="common_cart_total">
|
||||
<span class="am-badge am-badge-danger am-round top-nav-cart-total hot-icon">{{$common_cart_total}}</span>
|
||||
</notempty>
|
||||
</li>
|
||||
<li <if condition="strtolower(CONTROLLER_NAME.ACTION_NAME) eq 'userindex'">class="active"</if>>
|
||||
<a <if condition="empty($user)">href="javascript:;" class="login-event"<else /> href="{{:U('Home/User/Index')}}"</if>><i class="am-icon-user"></i>我的</a>
|
||||
|
|
|
|||
|
|
@ -108,10 +108,11 @@ color: #F5F5F2;font-size: 14px;cursor:pointer;border-radius:0px 0px ;}
|
|||
|
||||
|
||||
.mobile-navigation{position: fixed;bottom:0px ;width: 100%;z-index: 999;background:#fff ;}
|
||||
.mobile-navigation li{width: 25%;padding:2px ;background:#fff ;border-top:1px solid #f5f5f5 ;float: left;text-align: center;font-size: 12px;}
|
||||
.mobile-navigation li{width: 25%;padding:2px ;background:#fff ;border-top:1px solid #f5f5f5 ;float: left;text-align: center;font-size: 12px; position: relative; }
|
||||
.mobile-navigation li a { text-decoration: none; }
|
||||
.mobile-navigation li i{display: block;font-size: 16px;}
|
||||
.mobile-navigation li i{display: block;font-size: 16px; z-index: 1; }
|
||||
.mobile-navigation li.active a{color:#d2364c ;}
|
||||
.hot-icon { position: absolute; top: 1%; left: 53%; z-index: 2; border: 1px solid #fff; }
|
||||
|
||||
|
||||
@media only screen and (max-width: 640px) {
|
||||
|
|
|
|||
|
|
@ -22,63 +22,85 @@ $(function()
|
|||
$('.cart-nav input[name="ids"]').val(ids.toString() || 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* 购物车数量更新
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-10-11
|
||||
* @desc description
|
||||
* @param {[object]} self [氮气罐对象]
|
||||
* @param {[int]} stock [数量]
|
||||
*/
|
||||
function CardNumberUpdate(self, stock)
|
||||
{
|
||||
var id = parseInt(self.parents('tr').data('id'));
|
||||
var goods_id = parseInt(self.parents('tr').data('goods-id'));
|
||||
var inventory = parseInt(self.parents('.stock-tag').data('inventory'));
|
||||
var price = parseFloat(self.parents('.stock-tag').data('price'));
|
||||
var type = self.data('type');
|
||||
|
||||
if(stock > inventory)
|
||||
{
|
||||
stock = inventory;
|
||||
}
|
||||
if(stock <= 0)
|
||||
{
|
||||
stock = 1;
|
||||
}
|
||||
self.parents('.stock-tag').find('input').val(stock);
|
||||
var temp_price = FomatFloat(stock*price, 2);
|
||||
self.parents('tr').find('.total-price-content').text('¥'+temp_price);
|
||||
|
||||
// 开启进度条
|
||||
$.AMUI.progress.start();
|
||||
|
||||
// ajax请求
|
||||
$.ajax({
|
||||
url: self.parents('.stock-tag').data('ajax-url'),
|
||||
type: 'post',
|
||||
dataType: "json",
|
||||
timeout: 10000,
|
||||
data: {"id": id, "goods_id": goods_id, "stock": stock},
|
||||
success: function(result)
|
||||
{
|
||||
$.AMUI.progress.done();
|
||||
if(result.code == 0)
|
||||
{
|
||||
PromptCenter(result.msg, 'success');
|
||||
|
||||
// 计算选择的商品总数和总价
|
||||
cart_base_total();
|
||||
} else {
|
||||
PromptCenter(result.msg);
|
||||
}
|
||||
},
|
||||
error: function(xhr, type)
|
||||
{
|
||||
$.AMUI.progress.done();
|
||||
PromptCenter('网络异常错误');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 购物车数量操作
|
||||
$('.stock-tag .stock-submit').on('click', function()
|
||||
{
|
||||
var id = parseInt($(this).parents('tr').data('id'));
|
||||
var goods_id = parseInt($(this).parents('tr').data('goods-id'));
|
||||
var inventory = parseInt($(this).parent().data('inventory'));
|
||||
var price = parseFloat($(this).parent().data('price'));
|
||||
var stock = parseInt($(this).parent().find('input').val());
|
||||
var stock = parseInt($(this).parents('.stock-tag').find('input').val());
|
||||
var type = $(this).data('type');
|
||||
|
||||
var temp_stock = (type == 'add') ? stock+1 : stock-1;
|
||||
if(temp_stock > inventory)
|
||||
CardNumberUpdate($(this), temp_stock);
|
||||
});
|
||||
|
||||
$('.stock-tag input[type="number"]').on('blur', function()
|
||||
{
|
||||
var stock = $(this).val() || null;
|
||||
if(stock == null)
|
||||
{
|
||||
temp_stock = inventory;
|
||||
}
|
||||
if(temp_stock <= 0)
|
||||
{
|
||||
temp_stock = 1;
|
||||
}
|
||||
$(this).parent().find('input').val(temp_stock);
|
||||
|
||||
var temp_price = FomatFloat(temp_stock*price, 2);
|
||||
$(this).parents('tr').find('.total-price-content').text('¥'+temp_price);
|
||||
|
||||
// 数量不一样则更新
|
||||
if(stock != temp_stock)
|
||||
{
|
||||
// 开启进度条
|
||||
$.AMUI.progress.start();
|
||||
|
||||
// ajax请求
|
||||
$.ajax({
|
||||
url: $(this).parent().data('ajax-url'),
|
||||
type: 'post',
|
||||
dataType: "json",
|
||||
timeout: 10000,
|
||||
data: {"id": id, "goods_id": goods_id, "stock": temp_stock},
|
||||
success: function(result)
|
||||
{
|
||||
$.AMUI.progress.done();
|
||||
if(result.code == 0)
|
||||
{
|
||||
PromptCenter(result.msg, 'success');
|
||||
|
||||
// 计算选择的商品总数和总价
|
||||
cart_base_total();
|
||||
} else {
|
||||
PromptCenter(result.msg);
|
||||
}
|
||||
},
|
||||
error: function(xhr, type)
|
||||
{
|
||||
$.AMUI.progress.done();
|
||||
PromptCenter('网络异常错误');
|
||||
}
|
||||
});
|
||||
stock = 1;
|
||||
}
|
||||
$(this).val(stock);
|
||||
CardNumberUpdate($(this), stock);
|
||||
});
|
||||
|
||||
// 全选/反选
|
||||
|
|
|
|||
Loading…
Reference in New Issue