Authored by 周少峰

Merge branch 'release/4.4' of http://git.dev.yoho.cn/web/yohobuywap into release/4.4

... ... @@ -43,7 +43,7 @@ class ShopProcess
private static function shopInfo($data)
{
self::$shopData['logoImg'] = Images::getImageUrl($data['data']['shop_logo'], 500, 500, 'shopLogo');
self::$shopData['storeName'] = $data['data']['is_favorite'] == 'Y' ? $data['data']['shop_name'] : '';
self::$shopData['storeName'] = $data['data']['is_show_shop_name'] == 'Y' ? $data['data']['shop_name'] : '';
//用户是否收藏店铺
self::$shopData['collect'] = $data['data']['is_favorite'] == 'Y' ? true : false;
//店铺id
... ...
... ... @@ -6416,6 +6416,8 @@ var $input = $('#search-input input'),
$icon = $('.search-icon'),
$clear = $('#search-input .clear-input');
var shopId;
//默认筛选条件
var defaultOpt = require("js/product/query-param");
... ... @@ -6471,6 +6473,21 @@ $('#search').on('touchend', function() {
});
/**
* 获取url参数
*/
function getQueryString(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return window.unescape(r[2]);
}
return null;
}
shopId = getQueryString('shop_id');
/**
* 筛选注册的回调,筛选子项点击后逻辑
* 需要执行search的场景:1.点选筛选项;2.relaod为true时切换导航;3.下拉加载
* @param opt {type, id}
... ... @@ -6480,7 +6497,7 @@ function search(opt) {
ext,
att,
nav, navType,
page;
page,params;
if (searching) {
return;
... ... @@ -6560,11 +6577,17 @@ function search(opt) {
return;
}
$.extend(setting, defaultOpt, {
params = {
type: navType,
order: nav.order,
page: page
});
};
if (shopId) {
params.shop_id = shopId;
}
$.extend(setting, defaultOpt, params);
searching = true;
loading.showLoadingMask();
... ... @@ -8445,8 +8468,7 @@ var $ = require("jquery"),
scH,
$nav1 = $('#pos-nav'),
$nav2 = $('#pos-list'),
sTop,
isIphone = navigator.userAgent.indexOf('iPhone') > 0 ? true : false;//判断浏览器类型
sTop;
var tip = require("js/plugin/tip"),
filter = require("js/plugin/filter"),
... ... @@ -8461,8 +8483,6 @@ var $subNav = $('.home-sub-nav'),
$shopId = $('input[name="shop_id"]').val(),
$appVersion = $('input[name="app_version"]').val();
var swiper;
var winH = $(window).height(),
noResult = '<p class="no-result">未找到相关搜索结果</p>';
... ... @@ -8777,7 +8797,11 @@ function search(opt) {
return;
}
if (opt) {
if (!opt.url) {
opt.url = '/index/search/search';
}
if (!opt.nextPage) {
//筛选项变更则重置reload为true
for (att in navInfo) {
... ... @@ -8840,7 +8864,6 @@ function search(opt) {
} else if ($pre.hasClass('discount')) {
navType = 'discount';
}
nav = navInfo[navType];
page = nav.page + 1;
... ... @@ -9051,7 +9074,8 @@ $subNav.on('touchend touchcancel', function(e) {
search({
type: 'shop_id',
id: $shopId,
url: '/index/search/search'
url: '/index/search/search',
nextPage: false
});
}
}
... ... @@ -9061,6 +9085,8 @@ $subNav.on('touchend touchcancel', function(e) {
function scrollHandler() {
sTop = -myScroll.y;
//当scroll到1/4$goodsContainer高度后继续请求下一页数据
myScroll && myScroll.refresh();
if (sTop + winH > $('#scroller').height() - 0.25 * $goodsContainer.height() - 50) {
... ... @@ -9068,7 +9094,8 @@ function scrollHandler() {
search({
type: 'shop_id',
id: $shopId,
url: '/index/search/search'
url: '/index/search/search',
nextPage: true
});
}
}
... ... @@ -9083,7 +9110,8 @@ $(window).scroll(function() {
search({
type: 'shop_id',
id: $shopId,
url: '/index/search/search'
url: '/index/search/search',
nextPage: false
});
$listNav.on('touchstart', 'li', function(e) {
... ... @@ -9197,7 +9225,6 @@ function cancelShop() {
$('#collect').on('touchstart', function(e) {
if ($('#collect').hasClass('alreadyCollect')) {
console.log(1)
cancelShop();
} else {
collectShop();
... ... @@ -12657,8 +12684,18 @@ $invoice.on('touchend', '.checkbox', function() {
}
});
function updateDeliverId(id) {
var $moreJit = $('.more-jit a').get(0),
url = $moreJit.href;
$moreJit.href = url.replace(/deliveryId=(\d)/, 'deliveryId=' + id);
}
function orderCompute() {
var yohoCoin = orderInfo('yohoCoin');
var deliverId = orderInfo('deliveryId');
loading.showLoadingMask();
$.ajax({
... ... @@ -12697,6 +12734,8 @@ function orderCompute() {
$('.bill span').html('¥' + res.last_order_amount);
$('.total').html(total);
}
updateDeliverId(deliverId);
}
}).fail(function() {
window.location.reload();
... ...
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
... ... @@ -202,11 +202,6 @@ function reMarginFooter(fixedElement) {
if (window._yas) {
window._yas(1 * new Date(), '1.0.14', 'yohobuy_m', uid, '', '');
$('.buriedpoint').each(function() {
$(this).click(function(e) {
window._yas.sendMouseEvent(e);
});
});
}
}());
... ...
... ... @@ -31,6 +31,8 @@ var $input = $('#search-input input'),
$icon = $('.search-icon'),
$clear = $('#search-input .clear-input');
var shopId;
//默认筛选条件
var defaultOpt = require('./query-param');
... ... @@ -86,6 +88,21 @@ $('#search').on('touchend', function() {
});
/**
* 获取url参数
*/
function getQueryString(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return window.unescape(r[2]);
}
return null;
}
shopId = getQueryString('shop_id');
/**
* 筛选注册的回调,筛选子项点击后逻辑
* 需要执行search的场景:1.点选筛选项;2.relaod为true时切换导航;3.下拉加载
* @param opt {type, id}
... ... @@ -95,7 +112,7 @@ function search(opt) {
ext,
att,
nav, navType,
page;
page,params;
if (searching) {
return;
... ... @@ -175,11 +192,17 @@ function search(opt) {
return;
}
$.extend(setting, defaultOpt, {
params = {
type: navType,
order: nav.order,
page: page
});
};
if (shopId) {
params.shop_id = shopId;
}
$.extend(setting, defaultOpt, params);
searching = true;
loading.showLoadingMask();
... ...
... ... @@ -351,20 +351,11 @@ function search(opt) {
opt.url = '/index/search/search';
}
//导航类别
if ($pre.hasClass('new')) {
navType = 'newest';
} else if ($pre.hasClass('price')) {
navType = 'price';
} else if ($pre.hasClass('discount')) {
navType = 'discount';
}
if (opt) {
if (!opt.nextPage) {
//筛选项变更则重置reload为true
for (att in navInfo) {
if (navInfo.hasOwnProperty(att) && navType !== att) {
if (navInfo.hasOwnProperty(att)) {
navInfo[att].reload = true;
}
}
... ... @@ -415,7 +406,14 @@ function search(opt) {
$.extend(defaultOpt, ext); //扩展筛选项
}
//导航类别
if ($pre.hasClass('new')) {
navType = 'newest';
} else if ($pre.hasClass('price')) {
navType = 'price';
} else if ($pre.hasClass('discount')) {
navType = 'discount';
}
nav = navInfo[navType];
page = nav.page + 1;
... ... @@ -626,7 +624,8 @@ $subNav.on('touchend touchcancel', function(e) {
search({
type: 'shop_id',
id: $shopId,
url: '/index/search/search'
url: '/index/search/search',
nextPage: false
});
}
}
... ... @@ -645,7 +644,8 @@ function scrollHandler() {
search({
type: 'shop_id',
id: $shopId,
url: '/index/search/search'
url: '/index/search/search',
nextPage: true
});
}
}
... ... @@ -660,7 +660,8 @@ $(window).scroll(function() {
search({
type: 'shop_id',
id: $shopId,
url: '/index/search/search'
url: '/index/search/search',
nextPage: false
});
$listNav.on('touchstart', 'li', function(e) {
... ...
... ... @@ -4,7 +4,7 @@
.block {
position: relative;
background: #fff;
padding: 36px 30px 24px;
padding: 20px 30px;
.iconfont {
position: absolute;
... ... @@ -107,10 +107,6 @@
display: block;
color: #000;
font-size: 28px;
padding-bottom: 14px;
}
.sub-content .sub-status{
padding-bottom: 14px;
}
.goods {
padding: 0;
... ...
... ... @@ -430,6 +430,7 @@
overflow: hidden;
padding-left: 15px;
background: #fff;
padding-bottom: 100px;
}
.popularity {
... ... @@ -437,6 +438,7 @@
overflow: hidden;
padding-left: 15px;
background: #fff;
padding-bottom: 100px;
}
.pos-list {
... ...
... ... @@ -27,7 +27,9 @@
<div class="bottom">
<span>运费: </span>
<span>¥{{expressCost}} </span>
{{#if discount}}
<span>(已优惠¥{{discount}})</span>
{{/if}}
</div>
{{/each}}
</div>
... ...
... ... @@ -23,7 +23,7 @@
<p class="beside-icon sub-content">
<span class="sub-title">订单编号:{{orderNum}}</span>
<span class="sub-status">{{orderStatus}}</span>
<span >{{orderStatus}}</span>
<span>下单时间:{{orderTime}}</span>
</p>
</div>
... ...
{{# starSubject}}
{{> home/floor_header_more}}
<div class="home-floor-subject buriedpoint">
<div class="home-floor-subject">
{{# subjectBanner}}
<a href="{{url}}"><img class="lazy subject-banner" data-original="{{img}}" /></a>
<a href="{{url}}" class="buriedpoint"><img class="lazy subject-banner" data-original="{{img}}" /></a>
{{/ subjectBanner}}
</div>
{{/ starSubject}}
\ No newline at end of file
... ...
... ... @@ -109,7 +109,8 @@ class CartModel
/* 预售购物车 */
$result['presellGoodsCount'] = $advanceCount;
$result['preSellCart'] = self::procCartData($cart['advance_cart_data'], $onlyGift, $onlyAdvanceBuy);
} while (false);
}
while (false);
return $result;
}
... ... @@ -154,7 +155,8 @@ class CartModel
$result['code'] = $select['code'];
$result['message'] = $select['message'];
}
} while (0);
}
while (0);
return $result;
}
... ... @@ -173,7 +175,7 @@ class CartModel
$result = array('code' => 400, 'message' => '出错啦~');
// 处理sku
$sku_list = json_encode(array(array('product_sku'=>$sku,'buy_number'=>intval($count), 'promotion_id'=>$promotionId)));
$sku_list = json_encode(array(array('product_sku' => $sku, 'buy_number' => intval($count), 'promotion_id' => $promotionId)));
$remove = CartData::removeFromCart($uid, $sku_list, $shoppingKey);
if ($remove && isset($remove['code'])) {
$result['code'] = $remove['code'];
... ... @@ -277,7 +279,8 @@ class CartModel
$result['code'] = $modify['code'];
$result['message'] = $modify['message'];
}
} while (0);
}
while (0);
return $result;
}
... ... @@ -307,7 +310,8 @@ class CartModel
$result['code'] = $modify['code'];
$result['message'] = $modify['message'];
}
} while (0);
}
while (0);
return $result;
}
... ... @@ -350,7 +354,8 @@ class CartModel
if ($isLimitGoods) {
$result['error'] = true;
$result['message'] = $pay['message'];
} else {
}
else {
$result['cartUrl'] = Helpers::url('/cart/index/index');
}
... ... @@ -376,7 +381,7 @@ class CartModel
}
// 收货人有关信息
$isSunfengSupport = false;// 是否支持顺丰快递
$isSunfengSupport = false; // 是否支持顺丰快递
if (isset($payReturn['delivery_address']) && !empty($payReturn['delivery_address'])) {
$result['addressId'] = isset($address['address_id']) ? $address['address_id'] : $payReturn['delivery_address']['address_id'];
$result['name'] = isset($address['consignee']) ? $address['consignee'] : $payReturn['delivery_address']['consignee'];
... ... @@ -414,10 +419,10 @@ class CartModel
$oneDeliv['isSelected'] = true;
$isDeliveryId = false;
}
$result['dispatchMode'][$key] = $oneDeliv;
}
if ($isDeliveryId) {
$result['dispatchMode'][$defaultKey]['isSelected'] = true;
}
... ... @@ -442,7 +447,8 @@ class CartModel
if (isset($orderInfo['deliveryTimeId'])) {
$flag = array_search($orderInfo['deliveryTimeId'], $idArr);
$flag !== false && $result['dispatchTime'][$flag]['isSelected'] = true;
} else {
}
else {
$result['dispatchTime'][$defaultKey]['isSelected'] = true;
}
}
... ... @@ -466,7 +472,8 @@ class CartModel
if ($single['goods_type'] == 'gift' && !isset($single['isAdvanceBuy'])) {
$oneGoods['gift'] = true;
$oneGoods['price'] = Helpers::transPrice($single['sale_price']);
} elseif ($single['goods_type'] == 'price_gift') {
}
elseif ($single['goods_type'] == 'price_gift') {
$oneGoods['advanceBuy'] = true;
$oneGoods['price'] = Helpers::transPrice($single['sale_price']);
}
... ... @@ -489,7 +496,7 @@ class CartModel
if ($pay['is_support'] !== 'Y') {
continue;
}
$onePay = array();
$onePay['id'] = $pay['payment_id'];
$onePay['paymentType'] = $pay['payment_type'];
... ... @@ -503,7 +510,7 @@ class CartModel
$result['paymentWay'][] = $onePay;
}
//默认第一个
if ($isPaymentType) {
$result['paymentWay'][0]['recommend'] = true;
... ... @@ -524,11 +531,11 @@ class CartModel
if ($payReturn['shopping_cart_data']['is_multi_package'] == 'Y') {
$result['isJit'] = true;
$jitInfo = array();
if(!empty($orderInfo)){
$jitInfo = array('deliveryId' => $orderInfo['deliveryId'], 'paymentType'=> $orderInfo['paymentType'], 'couponCode' => $orderInfo['couponCode'], 'yohoCoin' => $orderInfo['yohoCoin']);
if (!empty($orderInfo)) {
$jitInfo = array('deliveryId' => $orderInfo['deliveryId'], 'paymentType' => $orderInfo['paymentType'], 'couponCode' => $orderInfo['couponCode'], 'yohoCoin' => $orderInfo['yohoCoin']);
}
//传递相关参数
$param =array_merge(array('cartType' => $cartType, 'skuList' => $skuList), $jitInfo);
$param = array_merge(array('cartType' => $cartType, 'skuList' => $skuList), $jitInfo);
$result['jitDetailUrl'] = Helpers::url('/cart/index/jitDetail', $param);
}
$result['cartPayData'] = isset($orderCompute['promotion_formula_list']) ? $orderCompute['promotion_formula_list'] : $payReturn['shopping_cart_data']['promotion_formula_list'];
... ... @@ -571,8 +578,8 @@ class CartModel
$coupons['couponName'] = $orderInfo['couponName'];
}
$result['coupon'] = $coupons;
} while (false);
}
while (false);
return $result;
}
... ... @@ -643,7 +650,8 @@ class CartModel
if ($coupon && isset($coupon['code'])) {
$result = $coupon;
}
} while (0);
}
while (0);
return $result;
}
... ... @@ -671,7 +679,8 @@ class CartModel
$result['notAvailableCoupons'] = self::procCouponsData($coupons['data']['unusable_coupons']);
// 可用优惠券
$result['coupons'] = self::procCouponsData($coupons['data']['usable_coupons']);
} while (false);
}
while (false);
return $result;
}
... ... @@ -727,13 +736,16 @@ class CartModel
if (empty($addressId)) {
$result['code'] = 401;
$result['message'] = '配送地址不能为空';
} elseif (empty($deliveryTime)) {
}
elseif (empty($deliveryTime)) {
$result['code'] = 402;
$result['message'] = '请选择配送时间';
} elseif (empty($deliveryWay)) {
}
elseif (empty($deliveryWay)) {
$result['code'] = 403;
$result['message'] = '请选择配送方式';
} else {
}
else {
$orderSubRes = CartData::orderSub($uid, $addressId, $cartType, $deliveryTime, $deliveryWay, $invoiceTitle, $invoiceId, $paymentId, $paymentType, $remark, $couponCode, $yohoCoin, $skuList, $qhyUnio, $userAgent);
if ($orderSubRes && isset($orderSubRes['code'])) {
$result = $orderSubRes;
... ... @@ -758,8 +770,8 @@ class CartModel
if (isset($productData['special_price'])) { // 加价购或者赠品的销售价字段
$data['price'] = $productData['format_market_price'];
$data['salePrice'] = $productData['format_sales_price'];
} else { // 购物车商品的销售价字段
}
else { // 购物车商品的销售价字段
$data['price'] = $productData['market_price'] > $productData['sales_price'] ? $productData['format_market_price'] : false;
$data['salePrice'] = '¥' . Helpers::transPrice($productData['sales_price']);
}
... ... @@ -810,9 +822,7 @@ class CartModel
$sizeList[$val['product_skc']][] = $oneSize;
// 所有尺码列表,赋值用于前端展示默认尺码的时候 判断出没有库存则显示灰色
$allSizeList[$sizeName] = empty($allSizeList[$sizeName]['storage'])
? array('storage' => $one['storage_number'], 'id' => $one['size_id'])
: $allSizeList[$sizeName];
$allSizeList[$sizeName] = empty($allSizeList[$sizeName]['storage']) ? array('storage' => $one['storage_number'], 'id' => $one['size_id']) : $allSizeList[$sizeName];
$colorNum += intval($one['storage_number']);
... ... @@ -960,7 +970,8 @@ class CartModel
$result['count'] = $data['shopping_cart_data']['selected_goods_count'];
$result['isAllSelected'] = ($data['shopping_cart_data']['goods_count'] === $data['shopping_cart_data']['selected_goods_count']) && ($data['shopping_cart_data']['selected_goods_count'] > 0);
$result['sumPrice'] = Helpers::transPrice($data['shopping_cart_data']['last_order_amount']);
} while (0);
}
while (0);
return $result;
}
... ... @@ -978,14 +989,13 @@ class CartModel
$result['price'] = $orderInfo['data']['payment_amount'];
}
}
$param = array('order_code'=>$orderCode);
$result['guang'] = Helpers::url('','','guang');
$result['orderDetail'] = Helpers::url('/home/orderDetail',$param);
$param = array('order_code' => $orderCode);
$result['guang'] = Helpers::url('', '', 'guang');
$result['orderDetail'] = Helpers::url('/home/orderDetail', $param);
return $result;
}
/**
* jit拆单数据(结算页和订单详情页)
* @param type $uid 用户uid
... ... @@ -1004,20 +1014,21 @@ class CartModel
$result = array('jitDetailPage' => true, 'packages' => array());
if ($cartType) {
//购物车中结算页拆单
if(isset($deliveryId) && !empty($deliveryId)){
if (isset($deliveryId) && !empty($deliveryId)) {
//购物车选择改变字段,重新运算订单数据
$newcar = CartData::orderCompute($uid, $cartType, $deliveryId, $paymentType, $paymentType, $couponCode, $yohoCoin, $skuList);
if(isset($newcar['data']['package_list'])){
$packageList = $newcar['data']['package_list'];
$result['returnUrl'] = Helpers::url('/cart/index/orderEnsure', array('cartType' => $cartType));
$newcar = CartData::orderCompute($uid, $cartType, $deliveryId, $paymentType, $paymentType, $couponCode, $yohoCoin, $skuList);
if (isset($newcar['data']['package_list'])) {
$packageList = $newcar['data']['package_list'];
$result['returnUrl'] = Helpers::url('/cart/index/orderEnsure', array('cartType' => $cartType));
}
}else{
}
else {
$carpay = CartData::cartPay($uid, $cartType, 0, $skuList);
if (isset($carpay['data']['shopping_cart_data']['package_list'])) {
$packageList = $carpay['data']['shopping_cart_data']['package_list'];
//返回地址跳转
$result['returnUrl'] = Helpers::url('/cart/index/orderEnsure', array('cartType' => $cartType));
}
}
}
}
else {
... ... @@ -1026,7 +1037,7 @@ class CartModel
if (isset($carpay['data']['package_list'])) {
$packageList = $carpay['data']['package_list'];
//返回地址跳转
$result['returnUrl'] = Helpers::url('/home/orderdetail',array('order_code' => $orderCode));
$result['returnUrl'] = Helpers::url('/home/orderdetail', array('order_code' => $orderCode));
}
}
do {
... ... @@ -1036,7 +1047,7 @@ class CartModel
// 拆单数据
foreach ($packageList as $pk => $pv) {
$result['packages'][$pk]['packageType'] = $pk + 1;
$result['packages'][$pk]['dispatchType'] = ($pv['supplier_id'] == 0) ? '总仓' : '异地调拨'; //仓库
$result['packages'][$pk]['dispatchType'] = ($pv['supplier_id'] == 0) ? '总仓发货' : '异地调拨'; //仓库
$goodList = $pv['goods_list'];
foreach ($goodList as $glk => $glv) {
$result['packages'][$pk]['goods'][$glk]['thumb'] = Images::getImageUrl($glv['goods_images'], 235, 314);
... ... @@ -1055,7 +1066,9 @@ class CartModel
}
}
$result['packages'][$pk]['expressCost'] = $pv['shopping_cost']; //运费
$result['packages'][$pk]['discount'] = $pv['shopping_cut_cost']; //已优惠
if ($pv['shopping_cut_cost'] != 0) {
$result['packages'][$pk]['discount'] = $pv['shopping_cut_cost']; //已优惠
}
}
}
while (false);
... ...