Authored by 周少峰

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

... ... @@ -80,39 +80,30 @@ class SearchData
return 'http://192.168.102.216:8087/yohosearch/search.json';
case 'testing':
if ($type == 'sort') {
return 'http://192.168.102.216:8087/yohosearch/sortgroup.json';
// return 'http://10.66.100.4:8080/yohosearch/sortgroup.json';
return 'http://testing.yohoops.org/yohosearch/sortgroup.json';
}
elseif ($type == 'discount') {
return 'http://192.168.102.216:8087/yohosearch/discount.json';
// return 'http://10.66.100.4:8080/yohosearch/discount.json';
return 'http://testing.yohoops.org/yohosearch/discount.json';
}
elseif ($type == 'recent') {
return 'http://192.168.102.216:8087/yohosearch/recent.json';
// return 'http://10.66.100.4:8080/yohosearch/recent.json';
return 'http://testing.yohoops.org/yohosearch/recent.json';
}
elseif ($type == 'suggest') {
return 'http://192.168.102.216:8087/yohosearch/suggest.json';
// return 'http://10.66.100.4:8080/yohosearch/suggest.json';
return 'http://testing.yohoops.org/yohosearch/suggest.json';
}
else if($type == 'new-shelve') {
return 'http://192.168.102.216:8087/yohosearch/new-shelve.json';
// return 'http://10.66.100.4:8080/yohosearch/new-shelve.json';
return 'http://testing.yohoops.org/yohosearch/new-shelve.json';
}
elseif ($type == 'shop') {
return 'http://192.168.102.216:8087/yohosearch/shops.json';
// return 'http://10.66.100.4:8080/yohosearch/shops.json';
return 'http://testing.yohoops.org/yohosearch/shops.json';
}
elseif ($type == 'search') {
return 'http://192.168.102.216:8087/yohosearch/search.json';
// return 'http://10.66.100.4:8080/yohosearch/search.json';
return 'http://testing.yohoops.org/yohosearch/search.json';
}
elseif ($type == 'brand') {
return 'http://192.168.102.216:8087/yohosearch/brand/list.json';
// return 'http://10.66.100.4:8080/yohosearch/brand/list.json';
return 'http://testing.yohoops.org/yohosearch/brand/list.json';
}
return 'http://192.168.102.216:8087/yohosearch/search.json';
// return 'http://10.66.100.4:8080/yohosearch/search.json';
return 'http://testing.yohoops.org/yohosearch/search.json';
case 'developer':
default:
if ($type == 'sort') {
... ... @@ -603,4 +594,18 @@ class SearchData
{
return Yohobuy::get(self::getUrl(), $param);
}
/**
* 根据品牌id查询店铺列表接口
* @param type array $param
* @return type []
*/
public static function getQueryShopsByBrandId($brandId)
{
$param = Yohobuy::param();
$param['method'] = 'app.shop.queryShopsByBrandId';
$param['brand_id'] = $brandId;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param);
}
}
\ No newline at end of file
... ...
... ... @@ -596,7 +596,7 @@ class HelperSearch
//已选中品牌标签名
$existName = array();
foreach ($brand as $key => $v) {
if (!$v['brand_alif']) {
if (empty($v['brand_alif'])) {
$v['brand_alif'] = substr($v['brand_name_en'], 0, 1);
if (!$v['brand_alif']) {
$pinyin = self::pinYin($v['brand_name']);
... ...
... ... @@ -1069,4 +1069,25 @@ class Helpers
'item'
);
}
/**
* 截取字符串长度,超过用省略号表示
* @param type string $str 字符串
* @param type int $len 要截取的长度
* @return type string
*/
public static function substrEllipsis($str, $len)
{
return mb_substr($str, 0, $len, 'utf-8') . ($len >= mb_strlen($str,'utf-8') ? '' : '...');
}
/**
* 判断字符串是否包含中文
* @param type string $str 字符串
* @return type boolean
*/
public static function isChinese($str)
{
return preg_match("/[\x7f-\xff]/", $str);
}
}
... ...
... ... @@ -123,7 +123,7 @@
</ul>
</div>
</li>
<li>
{{#if supportDeliveryPay}}
<input value="2" {{#if deliveryPay.checked}}checked{{/if}} class="radio {{#if deliveryPay.checked}}checked{{/if}}" name="pay-type" type="radio" id="" data-pay="{{deliveryPay.paymentId}}"/>
... ... @@ -147,7 +147,7 @@
<label for="">{{desc}}</label>
</li>
{{/each}}
<li class="pay-dashed-hr pay-type-tips">声明:我们会努力按照您指定的时间配送,但因为天气、交通等各类因素影响,您的订单有可能会有延误现象,敬请谅解!</li>
<li>
... ... @@ -180,7 +180,7 @@
</div>
</div>
<!-- 订单提示-->
{{#if packages}}
<div id="differentOrder" class="differentOrder">
<p class="warn">
... ... @@ -202,7 +202,7 @@
<li >
<a href={{link}}>
<img src={{src}}/>
</a>
{{#if goodsType}}
<p class="{{classname}}" >{{goodsType}}</p>
... ... @@ -214,13 +214,13 @@
<p class="next">
</p>
{{#if fee}}
<p>运费:¥{{fee}}元(原价{{orign}}元,优惠{{count}}元)</p>
<p class="express-fee">运费:¥{{fee}}元(原价{{orign}}元,优惠{{count}}元)</p>
{{else}}
<p>运费:¥0.00元</p>
<p class="express-fee">运费:¥0.00元</p>
{{/if}}
</div>
{{/each}}
</div>
</div>
{{/if}}
... ... @@ -310,7 +310,7 @@
<label for="isPPY">是</label>
<input name="isPP" id="isPPN" type="radio" value="N">
<label for="isPPN">否</label>
(如:送朋友的商品可不打印价格哦!)
(如:送朋友的商品可不打印价格哦!)
</p>
</div>
</dd>
... ... @@ -384,9 +384,9 @@
</div>
{{/if}}
</div>
</div>
</div>
</div>
<div class="to-play">
<p>您需要实际支付金额:<em>{{lastOrderAmount}}</em>元</p>
<div class="btn-group clearfix">
... ... @@ -397,4 +397,4 @@
{{/ orderEnsure}}
<div class="loading"><span></span>请稍后...</div>
</div>
{{> layout/footer}}
\ No newline at end of file
{{> layout/footer}}
... ...
... ... @@ -219,7 +219,7 @@
</p>
</td>
<td>{{price}}</td>
<td>{{coin}}</td>
<td>{{coin}}</td>
<td>{{num}}</td>
<td>{{sum}}</td>
</tr>
... ...
... ... @@ -14722,6 +14722,22 @@ var address = require("js/order/address");
var dialog = require("js/common/dialog");
var accMul = function(arg1, arg2) {
var m = 0,
s1 = arg1.toString(),
s2 = arg2.toString();
try {
m += s1.split(".")[1].length
} catch (e) {
}
try {
m += s2.split(".")[1].length
} catch (e) {
}
return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
}
var Order = {
/*业务数据(人民币)*/
Data: {
... ... @@ -14742,7 +14758,6 @@ var Order = {
$cancel: $('.cancel', '.btn-group'),
$total: $('em', '.to-play'),
$tbody: $('table tbody', '.pay-wapper'),
//请填写并核对一下信息
$orderSelectionSave: $('.address-list h2 span'),
$addAddress: $('.add-address'),
... ... @@ -14757,16 +14772,16 @@ var Order = {
$modityPayInfo: $('.modity-pay-info'),
$payTotal: $('.play-total'),
$toPay: $('.to-play em'),
$redEnvelopes: $('.red-envelopes'),
$useEnvelopes: $('.use-envelopes'),
$hasEnvelopes: $('.has-envelopes span'),
$useEnvelopesInput: $('.use-envelopes').find('input')
$useEnvelopesInput: $('.use-envelopes').find('input'),
$expressFee: $('.express-fee')
},
init: function() {
var e = this.e,
d = Order.Data,
c = Order.Common;
d = Order.Data,
c = Order.Common;
//初始化产品价格(表格中的价格)
e.$tbody.find('tr').each(function(index) {
... ... @@ -14814,9 +14829,9 @@ var Order = {
//请填写并核对一下信息
e.$orderSelectionSave.click(function() {
var i = 0,
$addressLi = $('.exist-address-list li'),
liLen = $addressLi.length,
notSelect = 0;
$addressLi = $('.exist-address-list li'),
liLen = $addressLi.length,
notSelect = 0;
if (!$(this).attr('expand')) {
... ... @@ -14911,16 +14926,16 @@ var Order = {
}
});
},
//渲染价格明细
render: function(data, tips) {
// 下面这段是在服务端算价格
var e = this.e,
i,
dArr = data.promotion_formula_list,
str = '',
isExpress = '';
i,
dArr = data.promotion_formula_list,
packageList = data.package_list,
str = '',
isExpress = '';
var tipsStr;
... ... @@ -14949,16 +14964,16 @@ var Order = {
}
str += '<li class="' + isExpress + '">' +
'<label>' + dArr[i].promotion + '</label>' +
'<em>' + dArr[i].promotion_amount + '</em>' +
'</li>';
'<label>' + dArr[i].promotion + '</label>' +
'<em>' + dArr[i].promotion_amount + '</em>' +
'</li>';
}
e.$payTotal.html(str);
e.$toPay.html((data.last_order_amount).toFixed(2));
//有货币清零状态更新
$('#biprice').val(100 * data.use_yoho_coin);
$('#biprice').val(accMul(100, data.use_yoho_coin));
if (~~data.use_yoho_coin === 0) {
$('.errbitip').text('');
} else {
... ... @@ -14977,6 +14992,20 @@ var Order = {
e.$useEnvelopesInput.prop('checked', false);
}
e.$hasEnvelopes.html('¥' + envelopesVal.toFixed(2));
if (packageList) {
e.$expressFee.each(function(index, expressCost) {
var orignCost = packageList[index].shopping_orig_cost,
disCount = packageList[index].shopping_cut_cost,
realCost = packageList[index].shopping_cost;
var cost = parseInt(orignCost) === 0 ?
'运费:¥0.00元' :
'运费:¥' + realCost + '元(原价' + orignCost + '元,优惠' + disCount + ')元';
$(expressCost).text(cost);
});
}
}
},
/*公共方法*/
... ... @@ -15012,12 +15041,12 @@ var Order = {
pan.find('dd').hide();
/*if (pan.hasClass('play-juan-pan') && $('.juan-modify').length > 0) {
pan.find('dt').hide();
}
pan.find('dt').hide();
}
if (pan.hasClass('play-bi-pan') && $('.bi-modify').length > 0) {
pan.find('dt').hide();
}*/
if (pan.hasClass('play-bi-pan') && $('.bi-modify').length > 0) {
pan.find('dt').hide();
}*/
},
strFixed: function(str) {
return parseFloat(str).toFixed(2);
... ... @@ -15041,10 +15070,10 @@ var Order = {
},
init: function() {
var e = this.e,
u = Order.UI,
options,
c = Order.Common,
envelopesVal;
u = Order.UI,
options,
c = Order.Common,
envelopesVal;
function getSelectData(callback) {
... ... @@ -15340,7 +15369,7 @@ var Order = {
$('.play-juan').removeClass('is-select');
$('#juancode').val('')
.siblings('input[name="juangroup"]').attr('checked', 'checked');
.siblings('input[name="juangroup"]').attr('checked', 'checked');
// $('.use-envelopes input').attr('checked', 'checked');
// $('.red-envelopes').addClass('active');
... ... @@ -15365,7 +15394,7 @@ var Order = {
e.$useEnvelopes.find('input').click(function() {
var $this = $(this),
juanText;
juanText;
e.$loading.show();
... ... @@ -15468,10 +15497,10 @@ $(document).click(function() {
//订单包裹左右切换
function lunBo($pre, $next, $ul, $iWidth) {
var i = 1,
j = 1;
j = 1;
var iSpeed = 0,
isMoving = false;
isMoving = false;
$pre.click(function() {
if (isMoving) {
... ...
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.

48.3 KB | W: | H:

48.3 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

8.64 KB | W: | H:

8.64 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
... ... @@ -9,6 +9,22 @@ var address = require('./address');
var dialog = require('../common/dialog');
var accMul = function(arg1, arg2) {
var m = 0,
s1 = arg1.toString(),
s2 = arg2.toString();
try {
m += s1.split(".")[1].length
} catch (e) {
}
try {
m += s2.split(".")[1].length
} catch (e) {
}
return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
}
var Order = {
/*业务数据(人民币)*/
Data: {
... ... @@ -29,7 +45,6 @@ var Order = {
$cancel: $('.cancel', '.btn-group'),
$total: $('em', '.to-play'),
$tbody: $('table tbody', '.pay-wapper'),
//请填写并核对一下信息
$orderSelectionSave: $('.address-list h2 span'),
$addAddress: $('.add-address'),
... ... @@ -44,16 +59,16 @@ var Order = {
$modityPayInfo: $('.modity-pay-info'),
$payTotal: $('.play-total'),
$toPay: $('.to-play em'),
$redEnvelopes: $('.red-envelopes'),
$useEnvelopes: $('.use-envelopes'),
$hasEnvelopes: $('.has-envelopes span'),
$useEnvelopesInput: $('.use-envelopes').find('input')
$useEnvelopesInput: $('.use-envelopes').find('input'),
$expressFee: $('.express-fee')
},
init: function() {
var e = this.e,
d = Order.Data,
c = Order.Common;
d = Order.Data,
c = Order.Common;
//初始化产品价格(表格中的价格)
e.$tbody.find('tr').each(function(index) {
... ... @@ -101,9 +116,9 @@ var Order = {
//请填写并核对一下信息
e.$orderSelectionSave.click(function() {
var i = 0,
$addressLi = $('.exist-address-list li'),
liLen = $addressLi.length,
notSelect = 0;
$addressLi = $('.exist-address-list li'),
liLen = $addressLi.length,
notSelect = 0;
if (!$(this).attr('expand')) {
... ... @@ -198,16 +213,16 @@ var Order = {
}
});
},
//渲染价格明细
render: function(data, tips) {
// 下面这段是在服务端算价格
var e = this.e,
i,
dArr = data.promotion_formula_list,
str = '',
isExpress = '';
i,
dArr = data.promotion_formula_list,
packageList = data.package_list,
str = '',
isExpress = '';
var tipsStr;
... ... @@ -236,16 +251,16 @@ var Order = {
}
str += '<li class="' + isExpress + '">' +
'<label>' + dArr[i].promotion + '</label>' +
'<em>' + dArr[i].promotion_amount + '</em>' +
'</li>';
'<label>' + dArr[i].promotion + '</label>' +
'<em>' + dArr[i].promotion_amount + '</em>' +
'</li>';
}
e.$payTotal.html(str);
e.$toPay.html((data.last_order_amount).toFixed(2));
//有货币清零状态更新
$('#biprice').val(100 * data.use_yoho_coin);
$('#biprice').val(accMul(100, data.use_yoho_coin));
if (~~data.use_yoho_coin === 0) {
$('.errbitip').text('');
} else {
... ... @@ -264,6 +279,20 @@ var Order = {
e.$useEnvelopesInput.prop('checked', false);
}
e.$hasEnvelopes.html('¥' + envelopesVal.toFixed(2));
if (packageList) {
e.$expressFee.each(function(index, expressCost) {
var orignCost = packageList[index].shopping_orig_cost,
disCount = packageList[index].shopping_cut_cost,
realCost = packageList[index].shopping_cost;
var cost = parseInt(orignCost) === 0 ?
'运费:¥0.00元' :
'运费:¥' + realCost + '元(原价' + orignCost + '元,优惠' + disCount + ')元';
$(expressCost).text(cost);
});
}
}
},
/*公共方法*/
... ... @@ -299,12 +328,12 @@ var Order = {
pan.find('dd').hide();
/*if (pan.hasClass('play-juan-pan') && $('.juan-modify').length > 0) {
pan.find('dt').hide();
}
pan.find('dt').hide();
}
if (pan.hasClass('play-bi-pan') && $('.bi-modify').length > 0) {
pan.find('dt').hide();
}*/
if (pan.hasClass('play-bi-pan') && $('.bi-modify').length > 0) {
pan.find('dt').hide();
}*/
},
strFixed: function(str) {
return parseFloat(str).toFixed(2);
... ... @@ -328,10 +357,10 @@ var Order = {
},
init: function() {
var e = this.e,
u = Order.UI,
options,
c = Order.Common,
envelopesVal;
u = Order.UI,
options,
c = Order.Common,
envelopesVal;
function getSelectData(callback) {
... ... @@ -627,7 +656,7 @@ var Order = {
$('.play-juan').removeClass('is-select');
$('#juancode').val('')
.siblings('input[name="juangroup"]').attr('checked', 'checked');
.siblings('input[name="juangroup"]').attr('checked', 'checked');
// $('.use-envelopes input').attr('checked', 'checked');
// $('.red-envelopes').addClass('active');
... ... @@ -652,7 +681,7 @@ var Order = {
e.$useEnvelopes.find('input').click(function() {
var $this = $(this),
juanText;
juanText;
e.$loading.show();
... ... @@ -755,10 +784,10 @@ $(document).click(function() {
//订单包裹左右切换
function lunBo($pre, $next, $ul, $iWidth) {
var i = 1,
j = 1;
j = 1;
var iSpeed = 0,
isMoving = false;
isMoving = false;
$pre.click(function() {
if (isMoving) {
... ...
... ... @@ -101,7 +101,6 @@ class ShopModel
array('href'=> '', 'name' => $data['brandIntro']['brandName'], 'title' => $data['brandIntro']['brandName'])
)
);
$sort = self::getSort($res['sort'], $parameters['options']['misort'], $shopId);
$searchCondition['userInput'] = empty($searchCondition['userInput']) ? array() : $searchCondition['userInput'];
$param = array_merge($searchCondition['userInput'], array('navBar' => 1));
... ... @@ -110,6 +109,7 @@ class ShopModel
$data['allGoods']['opts'] = $result['opts'];
$data['leftContent'] = isset($result['leftContent']) ? $result['leftContent'] : '';
$data['allGoods']['goodsMenu']['menuList'] = $sort;
$data['allGoods']['goodsMenu']['url'] = self::$shopListUrl . '?'.http_build_query($param);
$data['allGoods']['href'] = self::$shopListUrl . '?'.http_build_query($param);
return $data;
... ... @@ -378,8 +378,10 @@ class ShopModel
foreach ($data['resource_data'] as $resource) {
$result[] = array(
'enName'=> $resource['enName'],
'name'=> $resource['name'],
'enName'=> Helpers::isChinese($resource['enName']) ?
Helpers::substrEllipsis($resource['enName'], 5) : Helpers::substrEllipsis($resource['enName'], 10),
'name'=> Helpers::isChinese($resource['name']) ?
Helpers::substrEllipsis($resource['name'], 5) : Helpers::substrEllipsis($resource['name'], 6),
'img'=> self::imageView2($resource['src'], 50, 50),
'title'=> $resource['title'],
'url'=> $resource['url'],
... ... @@ -443,11 +445,44 @@ class ShopModel
*/
public static function goodsTabBar($data)
{
$result = array();
if (isset($data['resource_data'])) {
$result = $data['resource_data'];
$more = array(
'name' => 'MORE',
'href' => self::$shopListUrl
);
$result = array(
'hot' => array(),
'new' => array()
);
if (empty($data['resource_data'])) {
return $result;
}
if (isset($data['resource_data']['hot'])) {
foreach ($data['resource_data']['hot'] as $val) {
if (empty($val['url'])) {
continue;
}
$result['hot'][] = array(
'name' => $val['name'],
'href' => 'http://' . trim($val['url'], 'http://'),
);
}
}
if (isset($data['resource_data']['new'])) {
foreach ($data['resource_data']['new'] as $val) {
if (empty($val['url'])) {
continue;
}
$result['new'][] = array(
'name' => $val['name'],
'href' => 'http://' . trim($val['url'], 'http://'),
);
}
}
$result['hot'][] = $more;
$result['new'][] = $more;
return $result;
}
... ...
... ... @@ -847,6 +847,8 @@ class CartModel
$promotionFormulaList[0]['promotion_amount'] = '+ ¥' . Helpers::transPrice($miniAmount);
}
$compute['data']['promotion_formula_list'] = $promotionFormulaList;
//JIT拆单
$compute['packages'] = self::getPackageInfo($compute['data']);
}
$result = $compute;
}
... ...