Authored by hf

do fixes bug to version 0.0.6

Too many changes to show.

To preserve performance only 21 of 21+ files are displayed.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Yoho!Buy有货</title>
<meta name="keywords" content="Yoho! 有货官网,潮流志,潮流男装,潮牌,美国潮牌,日本潮牌,香港潮牌,潮牌店,新品首发,欧美潮流,全球购,代购,时尚,流行,特卖,B2C,正品,购物网站,网上购物,货到付款">
<meta name="description" content="YOHO! 有货,年轻人潮流购物中心,中国最大的潮流商品购物网站。100%品牌正品保证,支持货到付款。作为YOHO!旗下的购物平台,汇集了全球潮流时尚商品和中国最流行的商品,也是国内最大的原创文化商品平台,也是香港,台湾地区流行商品的集中地。同时包含日本、韩国等众多国外潮流品牌,带给您全新潮流购物体验。">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<meta http-equiv="cleartype" content="on">
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta content="telephone=no" name="format-detection" />
<meta content="email=no" name="format-detection" />
<script type="text/javascript">
(function(doc, win) {
var docEl = doc.documentElement;
(function() {
var clientWidth = docEl.clientWidth;
if (!clientWidth) {
return;
}
docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
}());
})(document, window);
</script>
<link rel="stylesheet" href="http://static.buy.test.yoho.cn/dist/myohobuy/0.0.6/index.css">
</head>
<body >
<div class="search-page yoho-page">
<div id="search-input" class="search-input">
<form id="search-form" action="http://search.test.yoho.cn" method="get">
<i class="search-icon iconfont">&#xe60f;</i>
<input type="text" placeholder="搜索商品" name="query">
<i class="clear-input iconfont hide">&#xe626;</i>
<button id="search" class="search" type="submit">搜索</button>
</form>
</div>
<div class="search-items">
<div class="hot-search hide">
<h3>热门搜索</h3>
<ul class="hot clearfix">
</ul>
</div>
<div class="history-search">
<h3>历史搜索</h3>
<ul class="history clearfix"></ul>
</div>
<button id="clear-history" class="clear-history hide">清空搜索历史</button>
</div>
</div>
<footer id="yoho-footer" class="yoho-footer hide">
<p class="op-row">
<span class="back-to-top">
Back to top
<i class="iconfont">&#xe608;</i>
</span>
</p>
<address class="copyright">
CopyRight©2007-2016 南京新与力文化传播有限公司
</address>
</footer>
<div class="float-layer hide" id="float-layer-app">
<div class="float-layer-left">
<span class="yoho-icon iconfont">&#xe60d;</span>
<p>新用户首单减10元</p>
</div>
<a href="javascript:void(0);" id="float-layer-close" >
<i class="close-icon iconfont">&#xe623;</i>
<div class="circle-rightbottom"></div>
</a>
<a href="http://m.yohobuy.com/download/hyapp" id="float-layer-btn">
立即下载
</a>
</div>
<script src="http://static.buy.test.yoho.cn/dist/myohobuy/0.0.6/lib.js"></script>
<script src="http://static.buy.test.yoho.cn/dist/myohobuy/0.0.6/index.js"></script>
<script>
seajs.use('js/common');
</script>
<script>
seajs.use('js/index/search');
</script>
</body>
</html>
\ No newline at end of file
... ...
WAP
\ No newline at end of file
PC
\ No newline at end of file
Mobile
\ No newline at end of file
... ...
... ... @@ -63,6 +63,11 @@
//header
{
pageHeader: {
//页面主题标识
boys: true,
girls: true,
kids: true,
lifeStyle: true,
//对应页面有就传,没有就不传
navBack: true,
navTitle: '',
... ... @@ -260,7 +265,8 @@
count: 1
},
collect: {
isCollected: true
isCollected: true,
url: ''
},
share: false,
isFashionMan: true, //标签分类:isTip、isCollocation、isFashionMan、isFashionGood、isTopic
... ... @@ -424,6 +430,8 @@
//列表页
{
ps: {
sName: '',
pName: '',
star: [
{
deps: '',
... ...
... ... @@ -15,6 +15,7 @@ namespace Action;
use Yaf\Controller_Abstract;
use Yaf\Dispatcher;
use Plugin\Cache;
use Plugin\Helpers;
class AbstractAction extends Controller_Abstract
{
... ... @@ -303,7 +304,7 @@ class AbstractAction extends Controller_Abstract
*/
protected function setDescription($description)
{
$this->_view->assign('description', $description);
$this->_view->assign('description', $description . ' ');
}
/**
... ... @@ -327,6 +328,24 @@ class AbstractAction extends Controller_Abstract
if (!empty($homeUrl)) {
$header['navHome'] = $homeUrl;
}
// 根据COOKIE记录的频道进行导航定位
$channel = Helpers::getChannelByCookie();
switch ($channel) {
default:
case 1:
$header['boys'] = true;
break;
case 2:
$header['girls'] = true;
break;
case 3:
$header['kids'] = true;
break;
case 4:
$header['lifeStyle'] = true;
break;
}
$this->_view->assign('pageHeader', $header);
}
... ... @@ -368,16 +387,4 @@ class AbstractAction extends Controller_Abstract
$this->_view->assign('sideNav', \Index\SideModel::getLeftNav($guangChoosed));
}
/**
* 设置首页以及频道页顶部信息
*
* @return void
*/
protected function setHomeChannelHeader()
{
$header['searchUrl'] = '/search';
$this->_view->assign('homeHeader', $header);
}
}
... ...
... ... @@ -18,6 +18,9 @@ class CacheConfig
const KEY_ACTION_GIRLS_INDEX = 'key_action_girls_index'; // 女生首页
const KEY_ACTION_KIDS_INDEX = 'key_action_kids_index'; // 潮童首页
const KEY_ACTION_LIFESTYLE_INDEX = 'key_action_lifestyle_index'; // 创意生活首页
const KEY_ACTION_BOYS_BOTTOM_BANNER = 'key_action_boys_bottom_banner'; // 男生首页底部banner
const KEY_ACTION_GRILS_BOTTOM_BANNER = 'key_action_girls_bottom_banner';// 女生首页底部banner
const KEY_ACTION_GUANG_PLUSSTAR_INDEX = 'key_action_guang_plusstar_index'; // 国际优选
const KEY_ACTION_GUANG_PLUSSTAR_LIST = 'key_action_guang_plusstar_list'; // 明星原创
... ... @@ -35,5 +38,6 @@ class CacheConfig
const KEY_ACTION_PRODUCT_BRAND = 'key_action_product_brand'; // 品类商品列表
const KEY_ACTION_PRODUCT_BRAND_DOMAINS = 'key_action_product_brand_domains'; // 所有品牌域名列表
const KEY_ACTION_PRODUCT_BRAND_NAMES = 'key_action_product_brand_names'; // 所有品牌名称列表
const KEY_ACTION_PRODUCT_BRAND_LOGO = 'key_action_product_brand_logo'; // 品牌信息
}
... ...
... ... @@ -45,9 +45,9 @@ class BrandData
$param['method'] = 'app.brand.brandlist';
$param['yh_channel'] = $channel;
$param['client_secret'] = Sign::getSign($param);
$urlList['brandList'] = Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param, 3600); // 有缓存1小时
$urlList['brandList'] = Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param);
return Yohobuy::getMulti($urlList);
return Yohobuy::getMulti($urlList, array(), 3600); // 有缓存1小时
}
/**
... ... @@ -201,5 +201,16 @@ class BrandData
return Yohobuy::get(Yohobuy::API_URL, $param);
}
/**
* 获取品牌LOGO信息
*
* @param int $id 用户ID
* @return array
*/
public static function getBrandLogo($id)
{
return Yohobuy::yarClient(Yohobuy::SERVICE_URL . '/shops/service/v1/brand', 'getBrandByids', array($id ));
}
}
... ...
... ... @@ -20,8 +20,12 @@ class DetailData
/**
* 逛资讯详情页数据封装
*
* @param int $id 内容ID
* @param bool $isApp 标识是否是APP访问
* @return array
*/
public static function package($id)
public static function package($id, $isApp = false)
{
$result = array();
$result['getAuthor'] = array();
... ... @@ -30,8 +34,11 @@ class DetailData
$result['getBrand'] = array();
$result['getOtherArticle'] = array();
// 客户端类型
$clientType = $isApp ? 'iphone' : 'h5';
// 获取资讯
$article = Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticle', array($id));
$article = Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticle', array($id, $clientType));
if (!isset($article['tag'])) {
return $result;
}
... ... @@ -40,22 +47,22 @@ class DetailData
}
// 获取作者信息
Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URI_PACKAGE_AUTHOR, 'getAuthor', array($article['author_id']), function ($retval) use (&$result) {
Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URI_PACKAGE_AUTHOR, 'getAuthor', array($article['author_id'], $clientType), function ($retval) use (&$result) {
$result['getAuthor'] = empty($retval) ? array() : $retval;
});
// 获取资讯内容
Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticleContent', array($id), function ($retval) use (&$result) {
Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticleContent', array($id, $clientType), function ($retval) use (&$result) {
$result['getArticleContent'] = empty($retval) ? array() : $retval;
});
// 获取资讯相关的品牌
Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getBrand', array($id), function ($retval) use (&$result) {
Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getBrand', array($id, $clientType), function ($retval) use (&$result) {
$result['getBrand'] = empty($retval) ? array() : $retval;
});
// 获取资讯相关的其它资讯
Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getOtherArticle', array($article['tag'], $id, 0, 3), function ($retval) use (&$result) {
Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getOtherArticle', array($article['tag'], $id, 0, 3, $clientType), function ($retval) use (&$result) {
$result['getOtherArticle'] = empty($retval) ? array() : $retval;
});
... ...
... ... @@ -58,7 +58,7 @@ class ListData
if (isset($sortId)) {
$param['sort_id'] = $sortId;
}
if (isset($tag)) {
if (!empty($tag)) {
$param['tag'] = $tag;
}
if (isset($authorId) && is_numeric($authorId)) {
... ... @@ -110,7 +110,7 @@ class ListData
$result = array();
if (is_numeric($id)) {
$result = Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_AUTHOR, 'getAuthor', array($id));
$result = Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_AUTHOR, 'getAuthor', array($id), 3600); // 缓存1小时
}
return $result;
... ...
... ... @@ -82,6 +82,7 @@ class NewsaleData
*/
public static function selectNewSaleProducts($gender, $brand, $sort, $color, $size, $price, $p_d, $channel, $dayLimit = null, $limit = 60, $page = 1, $order = 's_t_desc')
{
$selectItems = array(
'gender' => $gender,
'brand' => $brand,
... ...
... ... @@ -67,14 +67,43 @@ class RecomData
*/
public static function mayLikeLifestyle($page = 1, $limit = 50)
{
$param = Yohobuy::param();
$param['method'] = 'app.search.lifeStyle';
$param['page'] = $page;
$param['limit'] = $limit;
$param['yh_channel'] = '4';
$param['client_secret'] = Sign::getSign($param);
// $param = Yohobuy::param();
// $param['method'] = 'app.search.lifeStyle';
// $param['page'] = $page;
// $param['limit'] = $limit;
// $param['yh_channel'] = '4';
// $param['client_secret'] = Sign::getSign($param);
//
// return Yohobuy::get(Yohobuy::API_URL, $param);
// 人气单品
$param = array(
array(
'stocknumber' => 1,
'status' => 1,
'order' => 's_n_desc',
'viewNum' => $limit,
'msort' => '10',
),
'N', false
);
$result['top'] = Yohobuy::yarClient(Yohobuy::SERVICE_URL . '/search/service/v1/product', 'search', $param, 3600); // 缓存1小时
return Yohobuy::get(Yohobuy::API_URL, $param);
// 新品到着
$param = array(
array('status' => 1, 'stocknumber' => 1, 'gender' => ''),
array(
array('misort' => 103, 'viewNum' => 10), //数码3c
array('misort' => 266, 'viewNum' => 10), //居家
array('misort' => 280, 'viewNum' => 10), //玩具娱乐
array('misort' => 101, 'viewNum' => 10), //办公文具
array('misort' => 259, 'viewNum' => 10), //美妆
),
false
);
$result['new'] = Yohobuy::yarClient(Yohobuy::SERVICE_URL . '/search/service/v1/product', 'searchBySortList', $param, 3600); // 缓存1小时
return $result;
}
}
... ...
... ... @@ -17,7 +17,19 @@ use Api\Sign;
class SearchData
{
/**
* 阿里云外网
*
* @var string
*/
protected static $_searchurl = 'http://101.200.31.165/yohosearch/search.json';
// /**
// * 阿里云内网
// *
// * @var string
// */
// protected static $_searchurl = 'http://100.98.132.63/yohosearch/search.json';
/**
* 模糊搜索提供的关键词
... ... @@ -127,7 +139,9 @@ class SearchData
$param['order'] = $order;
$param['page'] = $page;
$param['limit'] = $limit;
$param += $condition;
if (!empty($condition)) {
$param += $condition;
}
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::get(Yohobuy::API_URL, $param, 600); // 有缓存10分钟
... ...
... ... @@ -9,7 +9,6 @@ use Plugin\Helpers;
*/
class FloorProcess
{
private static $guangUrl = 'http://guang.m.yohobuy.com';
/**
* 频道参数
*
... ... @@ -131,6 +130,7 @@ class FloorProcess
/**
* 女生品类
* 推荐(1T-12F)
*/
private static function recommend_content_three($data, $type)
{
... ... @@ -138,7 +138,7 @@ class FloorProcess
$build = array();
if (!empty($data['big_image'][0])) {
$build['img'] = Helpers::getImageUrl($data['big_image'][0]['src'], 640, 198);
$build['img'] = Helpers::getImageUrl($data['big_image'][0]['src'], 640, 200);
$build['url'] = Helpers::getFilterUrl($data['big_image'][0]['url']);
$result['hotCategory']['banner'] = $build;
}
... ... @@ -150,7 +150,7 @@ class FloorProcess
$build['textCn'] = $one['title'];
$result['hotCategory']['list'][] = $build;
}
if (isset($data['title']['more_url'])) {
$data['title']['more_url'] = Helpers::getFilterUrl($data['title']['more_url']);
}
... ... @@ -180,8 +180,8 @@ class FloorProcess
$data['is_show_name'] = $data['title']['is_show'];
$data['name'] = $data['title']['title'];
unset($data['title']);
if (isset($data['title']['more_url'])) {
if (isset($data['title']['more_url'])) {
$data['title']['more_url'] = Helpers::getFilterUrl($data['title']['more_url']);
}
... ... @@ -206,6 +206,7 @@ class FloorProcess
foreach ($data['list'] as &$one) {
if (isset($one['url'])) {
$one['url'] = Helpers::getFilterUrl($one['url']);
isset(self::$channel[$type]) && $one['url'] .= '?gender='.self::$channel[$type];
}
$one['img'] = Helpers::getImageUrl($one['src'], 158, 174);
unset($one['src']);
... ... @@ -226,12 +227,12 @@ class FloorProcess
{
$result = array();
foreach($data as $key=>&$value){
if($key == 'title'){
$value['more_url'] = Helpers::url('', array('id' => 2, 'gender' => self::$channel[$type]), 'guang');
foreach ($data as $key => &$value) {
if ($key == 'title') {
$value['more_url'] = Helpers::url('', array('id' => 3, 'gender' => self::$channel[$type]), 'guang');
}
if($key == 'article'){
foreach($value as &$one){
if ($key == 'article') {
foreach ($value as &$one) {
if (isset($one['url'])) {
$one['url'] = Helpers::getFilterUrl($one['url']);
}
... ... @@ -239,8 +240,8 @@ class FloorProcess
unset($one['src']);
}
}
if($key == 'recommend_collocation'){
foreach($value as &$one){
if ($key == 'recommend_collocation') {
foreach ($value as &$one) {
if (isset($one['url'])) {
$one['url'] = Helpers::getFilterUrl($one['url']);
}
... ... @@ -264,11 +265,11 @@ class FloorProcess
{
$result = array();
foreach($data as $key=>&$value){
if($key == 'title'){
$value['more_url'] = Helpers::url('', array('id' => 1, 'gender' => self::$channel[$type]), 'guang');
foreach ($data as $key => &$value) {
if ($key == 'title') {
$value['more_url'] = Helpers::url('', array('id' => 4, 'gender' => self::$channel[$type]), 'guang');
}
if($key == 'list'){
if ($key == 'list') {
foreach ($value as &$one) {
if (isset($one['url'])) {
$one['url'] = Helpers::getFilterUrl($one['url']);
... ... @@ -300,7 +301,7 @@ class FloorProcess
$one['img'] = Helpers::getImageUrl($one['src'], 640, 403);
unset($one['src']);
}
$data['banner']['list'] = $data['big_image'];
$result['big_image']['list'] = $data['big_image'];
foreach ($data['list'] as $kk => &$one) {
if ($kk == 0) {
... ... @@ -315,8 +316,8 @@ class FloorProcess
unset($one['src']);
}
if (isset($data['title']['more_url'])) {
if (isset($data['title']['more_url'])) {
$data['title']['more_url'] = Helpers::getFilterUrl($data['title']['more_url']);
}
... ... @@ -337,7 +338,6 @@ class FloorProcess
{
$result = array();
$data['banner'] = array();
foreach ($data['big_image'] as &$one) {
if (isset($one['url'])) {
$one['url'] = Helpers::getFilterUrl($one['url']);
... ... @@ -355,8 +355,8 @@ class FloorProcess
$one['img'] = Helpers::getImageUrl($one['src'], 191, 191);
unset($one['src']);
}
if (isset($data['title']['more_url'])) {
if (isset($data['title']['more_url'])) {
$data['title']['more_url'] = Helpers::getFilterUrl($data['title']['more_url']);
}
$result['creativeLife'] = $data;
... ...
... ... @@ -82,6 +82,9 @@ class ListProcess
$filters['classify'][] = $build;
}
// 按照指定字段进行排序筛选数据
self::sortArrByField($filters['classify'], 'sort_col');
return $filters;
}
... ... @@ -91,6 +94,7 @@ class ListProcess
$result = array(
'title' => '品牌',
'name' => '所有品牌',
'sort_col' => 1,
'dataType' => 'brand',
'subs' => array(
array(
... ... @@ -120,6 +124,7 @@ class ListProcess
$result = array(
'title' => '颜色',
'name' => '所有颜色',
'sort_col' => 3,
'dataType' => 'color',
'subs' => array(
array(
... ... @@ -146,6 +151,7 @@ class ListProcess
$result = array(
'title' => '折扣',
'name' => '所有商品',
'sort_col' => 6,
'dataType' => 'discount',
'subs' => array(
array(
... ... @@ -172,6 +178,7 @@ class ListProcess
$result = array(
'title' => '性别',
'name' => '所有性别',
'sort_col' => 0,
'dataType' => 'gender',
'subs' => array(
array(
... ... @@ -180,12 +187,12 @@ class ListProcess
'name' => '所有性别'
),
array(
'dataId' => 'boys',
'name' => '男'
'dataId' => '1,3',
'name' => 'BOYS'
),
array(
'dataId' => 'girls',
'name' => '女'
'dataId' => '2,3',
'name' => 'GIRLS'
),
)
);
... ... @@ -198,6 +205,7 @@ class ListProcess
$result = array(
'title' => '品类',
'name' => '所有品类',
'sort_col' => 2,
'dataType' => 'sort',
'subs' => array(
array(
... ... @@ -237,6 +245,7 @@ class ListProcess
$result = array(
'title' => '价格',
'name' => '所有价格',
'sort_col' => 5,
'dataType' => 'price',
'subs' => array(
array(
... ... @@ -263,6 +272,7 @@ class ListProcess
$result = array(
'title' => '尺码',
'name' => '所有尺码',
'sort_col' => 4,
'dataType' => 'size',
'subs' => array(
array(
... ...
... ... @@ -35,7 +35,7 @@ class Helpers
case 'index': // 默认
$url = '';
break;
default:
default: // 其它子域名
$url = 'http://' . $module . SUB_DOMAIN;
}
$url .= $uri;
... ... @@ -48,6 +48,7 @@ class Helpers
/**
* 根据尺寸获得图片url
*
* @param string $url 路径
* @param integer $width 图片宽度
* @param integer $height 图片高度
... ... @@ -60,7 +61,7 @@ class Helpers
}
/**
* 获取过滤后的URL链接
* 获取过滤APP里附加参数后的URL链接
*
* @param string $url 路径
* @return string 去除掉如&openby:yohobuy={"action":"go.brand"}这样的APP附加参数
... ... @@ -117,6 +118,57 @@ class Helpers
}
/**
* 获取商品的ICON
*
* @param int $type
* @return array
*/
public static function getProductIcon($type)
{
static $icons = array(
1 => 'cloth',
3 => 'pants',
4 => 'dress',
6 => 'shoe',
7 => 'bag',
10 => 'lamp',
241 => 'headset',
8 => 'watch',
360 => 'swim-suit',
308 => 'under'
);
$type = intval($type);
return isset($icons[$type]) ? $icons[$type] : '';
}
/**
* 根据排序类型和类型值获得正确的排序参数
* @param integer $order 类型值
* @param string $type 排序类型
* @return string 转换之后的排序参数
*/
public static function transOrder($order, $type)
{
$result = '';
switch ($type) {
case 'price':
$result = ($order == 0) ? 's_p_desc' : 's_p_asc';
break;
case 'discount':
$result = ($order == 0) ? 'p_d_desc' : 'p_d_asc';
break;
case 'newest':
default:
$result = ($order == 0) ? 's_t_desc' : 's_t_asc';
break;
}
return $result;
}
/**
* 格式化商品信息
*
* @param array $productData 需要格式化的商品数据
... ... @@ -127,7 +179,6 @@ class Helpers
*/
public static function formatProduct($productData, $showTags = true, $showNew = true, $showSale = true)
{
// 商品信息有问题,则不显示
if (!isset($productData['product_skn']) || !isset($productData['goods_list'][0])) {
return false;
... ... @@ -146,15 +197,14 @@ class Helpers
$result = array();
$result['id'] = $productData['product_skn'];
$result['product_id'] = $productData['product_id'];
$result['thumb'] = Images::getImageUrl($productData['default_images'], 235, 314);
$result['name'] = $productData['product_name'];
$result['price'] = $productData['market_price'];
$result['salePrice'] = $productData['sales_price'];
$result['is_soon_sold_out'] = ($productData['is_soon_sold_out'] === 'Y');
$result['url'] = OLD_MAIN . '/product/pro_' . $productData['product_id'] . '_'
. $productData['goods_list'][0]['goods_id']
. '/'. $productData['cn_alphabet'] . '.html';
$result['url'] = OLD_MAIN . '/product/pro_' . $productData['product_id'] . '_'
. $productData['goods_list'][0]['goods_id']
. '/' . $productData['cn_alphabet'] . '.html';
if ($showTags) {
$result['tags'] = array();
... ... @@ -190,17 +240,26 @@ class Helpers
$result['id'] = $articleData['id'];
$result['showTags'] = $showTag;
$result['img'] = self::getImageUrl($articleData['src'], 640, 640);
$result['url'] = $isApp && !empty($articleData['url']) ? $articleData['url'] : '/info/index?id=' . $articleData['id'];
$result['url'] = $isApp ? $articleData['url'] : self::url('/info/index', array('id' => $articleData['id']), 'guang');
$result['title'] = $articleData['title'];
$result['text'] = $articleData['intro'];
$result['publishTime'] = $articleData['publish_time'];
$result['pageView'] = $articleData['views_num'];
$result['like'] = array();
$result['like']['count'] = $articleData['praise_num'];
$result['like']['isLiked'] = isset($articleData['isPraise']) && $articleData['isPraise'] === 'Y';
// 收藏
// $result['collect'] = array();
// $result['collect']['isCollected'] = isset($articleData['isFavor']) && $articleData['isFavor'] === 'Y';
if ($isApp) {
$result['collect'] = array();
$result['collect']['isCollected'] = isset($articleData['isFavor']) && $articleData['isFavor'] === 'Y';
$result['collect']['url'] = $articleData['url'];
}
// 点赞
else {
$result['like'] = array();
$result['like']['count'] = $articleData['praise_num'];
$result['like']['isLiked'] = isset($articleData['isPraise']) && $articleData['isPraise'] === 'Y';
}
// 分享链接
$result['share'] = $isApp && isset($articleData['share']['url']) ? $articleData['share']['url'] : false;
// 判断是否显示作者信息
... ... @@ -402,29 +461,4 @@ class Helpers
return false;
}
/**
* 获取商品的ICON
*
* @param int $type
* @return array
*/
public static function getProductIcon($type)
{
static $icons = array(
1 => 'cloth',
3 => 'pants',
4 => 'dress',
6 => 'shoe',
7 => 'bag',
10 => 'lamp',
241 => 'headset',
8 => 'watch',
360 => 'swim-suit',
308 => 'under'
);
$type = intval($type);
return isset($icons[$type]) ? $icons[$type] : '';
}
}
... ...
... ... @@ -20,6 +20,7 @@ use Plugin\LightnCandy;
class TemplateLayout implements View_Interface
{
/* 模板变量 */
protected $_tpl_vars;
/* 模板目录 */
protected $_tpl_dir;
... ... @@ -49,7 +50,7 @@ class TemplateLayout implements View_Interface
// 清空指定的变更值
if (isset($this->_tpl_vars[$name])) {
unset($this->_tpl_vars[$name]);
}
}
// 清空整个变量值
else {
$this->_tpl_vars = array();
... ... @@ -118,6 +119,23 @@ class TemplateLayout implements View_Interface
// 应用版本号
$tpl_vars['version'] = $config->version;
// SEO相关的标题、关键词、描述内容信息
if (isset($tpl_vars['title'])) {
$tpl_vars['title'] .= $config->seo->title;
} else {
$tpl_vars['title'] = $config->seo->title;
}
if (isset($tpl_vars['keywords'])) {
$tpl_vars['keywords'] .= $config->seo->keywords;
} else {
$tpl_vars['keywords'] = $config->seo->keywords;
}
if (isset($tpl_vars['description'])) {
$tpl_vars['description'] .= $config->seo->description;
} else {
$tpl_vars['description'] = $config->seo->description;
}
// 取得模板的最后修改时间戳
$lastModifyTime = filemtime($viewName);
// 使用MD5生成唯一的键名
... ... @@ -136,11 +154,11 @@ class TemplateLayout implements View_Interface
else {
$template = file_get_contents($viewName, false, null);
$phpStr = LightnCandy::compile($template, array(
// DEBUG: LightnCandy::FLAG_RENDER_DEBUG | LightnCandy::FLAG_ERROR_EXCEPTION
'flags' => LightnCandy::FLAG_RENDER_DEBUG | LightnCandy::FLAG_ERROR_EXCEPTION | LightnCandy::FLAG_MUSTACHE | LightnCandy::FLAG_HANDLEBARS, // 使用MUSTACHE和HANDLEBARS的模板格式
'basedir' => array($config->template->partials), // 模板里使用 {{> partial_name}} 时查找的目录
'fileext' => array($tplExt), // 允许查找文件的后缀
'lcrun' => 'Plugin\LCRun3', // 指定编译模板的runtime
// DEBUG: LightnCandy::FLAG_RENDER_DEBUG | LightnCandy::FLAG_ERROR_EXCEPTION
'flags' => LightnCandy::FLAG_RENDER_DEBUG | LightnCandy::FLAG_ERROR_EXCEPTION | LightnCandy::FLAG_MUSTACHE | LightnCandy::FLAG_HANDLEBARS, // 使用MUSTACHE和HANDLEBARS的模板格式
'basedir' => array($config->template->partials), // 模板里使用 {{> partial_name}} 时查找的目录
'fileext' => array($tplExt), // 允许查找文件的后缀
'lcrun' => 'Plugin\LCRun3', // 指定编译模板的runtime
));
// 文件流方式读取PHP方法
$renderer = LightnCandy::prepare($phpStr);
... ... @@ -151,8 +169,7 @@ class TemplateLayout implements View_Interface
// 装载内容,调用PHP函数
try {
$result = $renderer($tpl_vars);
}
catch (Exception $e) {
} catch (Exception $e) {
$result = '';
}
... ... @@ -227,12 +244,12 @@ class TemplateLayout implements View_Interface
public function setScriptPath($path)
{
$result = false;
if (is_dir($path)) {
$this->_tpl_dir = $path;
$result = true;
}
return $result;
}
... ...
... ... @@ -13,14 +13,45 @@ server
allow 218.94.75.50;
allow 218.94.75.58;
allow 123.56.138.21;
allow 106.39.86.226;
allow 172.16.0.0/16;
deny all;
# 子域名
if ($host = "sale.test.yoho.cn" ) {
rewrite ^/(.*)$ http://m.yohobuy.com/$1 permanent;
}
if ($host = "cuxiao.test.yoho.cn" ) {
rewrite ^/(.*)$ http://m.yohobuy.com/$1 permanent;
}
# 账号相关
location =/signin.html {
rewrite ^/(.*)$ http://m.yohobuy.com/$1 permanent;
}
location /passport/auth {
rewrite ^/(.*)$ http://m.yohobuy.com/$1 permanent;
}
location /passport/signin {
rewrite ^/(.*)$ http://m.yohobuy.com/$1 permanent;
}
# 个人中心
location /home {
rewrite ^/(.*)$ http://m.yohobuy.com/$1 permanent;
}
# 购物车
location /cart {
rewrite ^/(.*)$ http://m.yohobuy.com/$1 permanent;
}
location ~* \.html$ {
root /Data/code/git/yohobuy/assets;
if (-f $request_filename){
expires 3m;
if (!-f $request_filename){
rewrite ^/(.*)$ http://m.yohobuy.com/$1 permanent;
}
expires 3m;
}
location ~* \.(ico|woff|svg|eot|ttf|otf)$ {
... ...
... ... @@ -224,6 +224,10 @@ var $ = require("zepto"),
var swiper,
$brandList = $('.brand-list');
var searchH = $('.newbrand-search').height(),
headerH = $('.yoho-header').height(),
brandSwipe = parseInt(searchH) + parseInt(headerH);
swiper = new Swiper('.swiper-container', {
lazyLoading: true,
loop: true,
... ... @@ -240,10 +244,7 @@ $('.banner-top').css('padding-top', '90px');
if ($brandList.length > 0) {
$(window).scroll(function() {
var scrTop = $(window).scrollTop(),
searchH = $('.newbrand-search').height(),
headerH = $('.yoho-header').height(),
brandSwipe = parseInt(searchH) + parseInt(headerH);
var scrTop = $(window).scrollTop();
$('.brand-list').each(function() {
var offTop = $(this).offset().top - brandSwipe;
... ... @@ -261,6 +262,15 @@ if ($brandList.length > 0) {
});
}
$('#right-bar .con').find('b').unbind().on('tap', function() {
var index = $(this).index();
if ($('.bar-' + index).size() > 0) {
document.body.scrollTop = parseInt($('.bar-' + index)[0].offsetTop) - parseInt(brandSwipe - 1);
}
});
});
define("js/guang/entry", ["zepto","lazyload","swiper","mlellipsis","iscroll-probe","index"], function(require, exports, module){
/**
... ... @@ -411,12 +421,13 @@ var $ = require("zepto"),
lazyLoad = require("lazyload");
var tip = require("js/plugin/tip");
var loading = require("js/plugin/loading");
var $loadMoreInfo = $('#load-more-info');
var $loading = $(''),
$noMore = $('');
var loading = false;
var searching = false;
ellipsis.init();
... ... @@ -486,7 +497,7 @@ function initInfosEvt($container) {
* 资讯LoadMore
*/
function loadMore($container, opt) {
if (loading) {
if (searching) {
return;
}
... ... @@ -494,7 +505,13 @@ function loadMore($container, opt) {
return;
}
loading = true;
if (opt.page === 0) {
//显示loading
loading.showLoadingMask();
}
searching = true;
$.ajax({
type: 'GET',
url: ' /guang/index/page',
... ... @@ -502,7 +519,7 @@ function loadMore($container, opt) {
success: function(data) {
if (data === ' ') {
opt.end = true;
loading = false;
searching = false;
//
$loading.addClass('hide');
... ... @@ -514,13 +531,17 @@ function loadMore($container, opt) {
setLazyLoadAndMellipsis($container.find('.guang-info'));
if (opt.page === 0) {
loading.hideLoadingMask();
}
opt.page++;
loading = false;
searching = false;
},
error: function() {
tip.show('网络断开连接了~');
loading = false;
searching = false;
}
});
}
... ... @@ -581,6 +602,41 @@ function show(con, dur) {
exports.show = show;
});
define("js/plugin/loading", ["zepto"], function(require, exports, module){
/**
* Loading mask
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/29
*/
var $ = require("zepto");
var $page = $('.yoho-page');
var $loading;
//初始化
(function() {
var html = '<div class="loading-mask hide"><div class="loading"></div></div>';
$page.append(html);
$loading = $page.children('.loading-mask');
}());
//显示loading
function showLoadingMask() {
$loading.removeClass('hide');
}
//隐藏loading
function hideLoadingMask() {
$loading.addClass('hide');
}
exports.showLoadingMask = showLoadingMask;
exports.hideLoadingMask = hideLoadingMask;
});
define("js/guang/home", ["zepto","swiper","mlellipsis","lazyload","index"], function(require, exports, module){
/**
* 逛首页
... ... @@ -592,7 +648,6 @@ var $ = require("zepto"),
Swiper = require("swiper");
var info = require("js/guang/info"),
setLazyLoadAndMellipsis = info.setLazyLoadAndMellipsis,
loadMore = info.loadMore;
var $loadMoreInfo = $('#load-more-info');
... ... @@ -629,10 +684,11 @@ info.initInfosEvt($infoList);
var gender = $('#gender').val();
$nav.children('.guang-nav-item').each(function() {
var type = $(this).data('type');
var type = $(this).data('type'),
focus = $(this).hasClass('focus');
state[type] = {
page: 1,
page: focus ? 1 : 0,
gender: gender,
type: type,
end: false
... ... @@ -649,6 +705,7 @@ $nav.delegate('.guang-nav-item', 'tap', function() {
return;
}
index = $this.index();
$this.addClass('focus');
... ... @@ -659,12 +716,14 @@ $nav.delegate('.guang-nav-item', 'tap', function() {
$content = $infos.eq(index);
$content.removeClass('hide');
//lazyload & mellipsis
setLazyLoadAndMellipsis($content.children('.guang-info'));
$curNav = $this;
curType = $this.data('type');
//当未加载数据时去请求数据
if (state[curType].page === 0) {
loadMore($content, state[curType]);
}
//重置当前Tab的load-more
if (state[curType].end) {
$loading.addClass('hide');
... ... @@ -677,7 +736,7 @@ $nav.delegate('.guang-nav-item', 'tap', function() {
$(document).scroll(function() {
if ($(window).scrollTop() + winH >= $(document).height() - loadMoreH) {
loadMore($infos, state[curType]);
loadMore($infos.not('hide'), state[curType]);
}
});
});
... ... @@ -1147,7 +1206,7 @@ function tsAnimate() {
window.setTimeout(tsAnimate, 3000);
} else {
if (start % 360 === 0) {
window.setTimeout(tsAnimate, 3 * 60 * 1000);
window.setTimeout(tsAnimate, 60 * 1000);
} else {
requestFrame(function () {
tsAnimate();
... ... @@ -1282,18 +1341,20 @@ var $input = $('#search-input input');
var $clear = $('#search-input .clear-input');
var $form = $('#search-form');
var $history = $('.history');
$('#clear-history').bind('tap', function() {
$.ajax({
type: 'POST',
url: '/search/clearHistory',
success: function(data) {
if (data.code === 200) {
$history.html(''); //clear search history items
}
}
});
var $clearHistory = $('#clear-history');
var writeSearch = require("js/index/write-search");
var ranToken = writeSearch.getRanToken();
$clearHistory.bind('tap', function() {
localStorage.removeItem('historys');
$history.html('');
});
$input.bind('input', function() {
... ... @@ -1307,6 +1368,79 @@ $input.bind('input', function() {
$clear.bind('tap', function() {
$input.val('').trigger('input');
});
//初始化历史搜索的内容
(function() {
var html = '',
history,
historys, i;
if (localStorage) {
historys = localStorage.getItem('historys');
if (historys && historys.length > 0) {
historys = historys.split(ranToken);
for (i = 0; i < historys.length; i++) {
history = historys[i];
if (history === '') {
continue;
}
html += '<li><a href="/?query=' + history + '">' + history + '</li>';
}
$history.html(html);
$clearHistory.removeClass('hide');
}
}
}());
writeSearch.bindWirteLocal($form);
});
define("js/index/write-search", [], function(require, exports, module){
/**
* 将搜索结果存localStorage
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/29
*/
var ranToken = ' ??++ ';
//获取分隔符
function getRanToken() {
return ranToken;
}
//绑定提交前的存local操作
function bindWirteLocal($form) {
$form.on('submit', function() {
var query = this.query.value,
historys;
if (localStorage) {
historys = localStorage.getItem('historys');
historys = historys ? historys : '';
if (historys.indexOf(ranToken + query + ranToken) > -1) {
return;
}
if (historys === '') {
query = ranToken + query;
}
historys += query + ranToken;
localStorage.setItem('historys', historys);
}
});
}
exports.getRanToken = getRanToken;
exports.bindWirteLocal = bindWirteLocal;
});
define("js/index/channel", [], function(require, exports, module){
/**
... ... @@ -2316,6 +2450,7 @@ var $ = require("zepto"),
var swiper;
var filter = require("js/plugin/filter");
var loading = require("js/plugin/loading");
var $goodsContainer = $('#goods-container'),
$ngc = $($goodsContainer.children().get(0)),
... ... @@ -2497,6 +2632,7 @@ function search(opt) {
});
searching = true;
loading.showLoadingMask();
$.ajax({
type: 'GET',
... ... @@ -2538,6 +2674,7 @@ function search(opt) {
nav.page = page;
searching = false;
loading.hideLoadingMask();
}
});
... ... @@ -2546,6 +2683,7 @@ function search(opt) {
lazyLoad($('.lazy'));
filter.registerCbFn(search);
// loading.initLoadingMask();
//导航栏点击逻辑说明:
//1.点击非active项时切换active状态
... ... @@ -2553,6 +2691,7 @@ filter.registerCbFn(search);
//3.筛选无active时点击展开筛选面板
//4.筛选有active时点击隐藏筛选面板并恢复点击筛选前active项的active状态
//5.当前active为筛选并且点击其他项时,隐藏筛选面板
$listNav.delegate('li', 'tap', function() {
var $this = $(this),
nav,
... ... @@ -2638,6 +2777,10 @@ $(window).scroll(function() {
}
}
});
//初始请求最新第一页数据
search();
});
define("js/plugin/filter", ["zepto"], function(require, exports, module){
/**
... ... @@ -2649,7 +2792,7 @@ define("js/plugin/filter", ["zepto"], function(require, exports, module){
var $ = require("zepto");
var $filter = $('.filter-mask, .filter-body');
var $filter = $('.filter-mask');
var $classify = $filter.find('.classify'),
$subClassify = $filter.find('.sub-classify');
... ... @@ -2675,9 +2818,11 @@ function registerCbFn(cb) {
$classify.children(':first-child').addClass('active'); //T:不在HTML中使用{{#if @first}}active{{/if}}来初始化active为避免sub设置高度时的闪烁
//classify switch
$classify.delegate('.classify-item', 'tap', function() {
$classify.delegate('.classify-item', 'tap', function(e) {
var $this = $(this);
e.stopPropagation();
if ($this.hasClass('active')) {
return;
}
... ... @@ -2688,7 +2833,7 @@ $classify.delegate('.classify-item', 'tap', function() {
});
//点击Mask隐藏筛选界面
$filter.filter('.filter-mask').tap(function() {
$filter.tap(function() {
hideFilter();
});
... ... @@ -2757,6 +2902,7 @@ var $ = require("zepto"),
var swiper;
var filter = require("js/plugin/filter");
var loading = require("js/plugin/loading");
var $goodsContainer = $('#goods-container'),
$ngc = $($goodsContainer.children().get(0)),
... ... @@ -2911,6 +3057,7 @@ function search(opt) {
});
searching = true;
loading.showLoadingMask();
$.ajax({
type: 'GET',
... ... @@ -2952,6 +3099,7 @@ function search(opt) {
nav.page = page;
searching = false;
loading.hideLoadingMask();
}
});
... ... @@ -2960,6 +3108,7 @@ function search(opt) {
lazyLoad($('.lazy'));
filter.registerCbFn(search);
// loading.initLoadingMask();
//导航栏点击逻辑说明:
//1.点击非active项时切换active状态
... ... @@ -3066,6 +3215,10 @@ $(window).scroll(function() {
}
}
});
//初始请求最新第一页数据
search();
});
define("js/product/list", ["zepto","lazyload"], function(require, exports, module){
/**
... ... @@ -3083,7 +3236,10 @@ var $brandHeader = $('#brand-header'),
var filter = require("js/plugin/filter");
var writeSearch = require("js/index/write-search");
var tip = require("js/plugin/tip");
var loading = require("js/plugin/loading");
var $goodsContainer = $('#goods-container'),
$ngc = $goodsContainer.children('.new-goods'),
... ... @@ -3110,8 +3266,8 @@ var $listNav = $('#list-nav'),
navInfo = {
newest: {
order: 1,
reload: false,
page: 1,
reload: true,
page: 0,
end: false
},
price: {
... ... @@ -3142,6 +3298,10 @@ function search(opt) {
nav, navType,
page;
if (searching) {
return;
}
if (opt) {
//筛选项变更则重置reload为true
... ... @@ -3196,10 +3356,6 @@ function search(opt) {
$.extend(defaultOpt, ext); //扩展筛选项
}
if (searching) {
return;
}
//导航类别
if ($pre.hasClass('new')) {
navType = 'newest';
... ... @@ -3227,6 +3383,7 @@ function search(opt) {
});
searching = true;
loading.showLoadingMask();
$.ajax({
type: 'GET',
... ... @@ -3268,6 +3425,7 @@ function search(opt) {
nav.page = page;
searching = false;
loading.hideLoadingMask();
}
});
... ... @@ -3277,6 +3435,8 @@ lazyLoad($('.lazy'));
filter.registerCbFn(search);
writeSearch.bindWirteLocal($('#search-form'));
//导航栏点击逻辑说明:
//1.点击非active项时切换active状态
//2.价格和折扣active状态时继续点击切换排序
... ... @@ -3426,6 +3586,9 @@ $brandHeader.children('.btn-col').bind('tap', function() {
}
});
});
//初始请求最新第一页数据
search();
});
define("js/product/detail/detail", ["zepto","swiper","lazyload","index"], function(require, exports, module){
/**
... ...
This diff could not be displayed because it is too large.
define("index",["zepto","swiper","lazyload","mlellipsis","iscroll-probe","index"],function(e,a,s){var i;e("js/common"),e("js/category/entry"),e("js/guang/entry"),e("js/home/entry"),e("js/index/entry"),e("js/passport/entry"),e("js/product/entry"),s.exports=i}),define("js/common",["zepto"],function(e,a,s){function i(e){var a,s,i=document.cookie;return document.cookie&&""!==document.cookie&&(s=i.indexOf(e+"="),s>-1&&(s+=e.length+1,a=decodeURIComponent(r.trim(i.substring(s,i.indexOf(";",s)))))),a}function t(e,a,s){var i,t,n,o,l="";"undefined"!=typeof a&&(s=s||{},null===a&&(a="",s.expires=-1),s.expires&&("number"==typeof s.expires||s.expires.toUTCString)&&("number"==typeof s.expires?(o=new Date,o.setTime(o.getTime()+24*s.expires*60*60*1e3)):o=s.expires,l="; expires="+o.toUTCString()),i=s.path?"; path="+s.path:"",t=s.domain?"; domain="+s.domain:"",n=s.secure?"; secure":"",document.cookie=[e,"=",encodeURIComponent(a),l,i,t,n].join(""))}function n(){var e,a=i("_UID");return"undefined"==typeof a?0:(e=a.split("::"),"undefined"==typeof e||e.length<4?0:e)}function o(){var e=n();return 0===e?0:e[1]}function l(){var e=i("_g");return"undefined"==typeof e?"":JSON.parse(e).k}var r=e("zepto");!function(){var e=r("#yoho-footer"),a=e.children(".op-row"),s=n();r("body").height()<r(window).height()&&e.addClass("bottom"),0===s?a.prepend('<a href="http://m.yohobuy.com/signin.html">登录</a><span class="sep-line">|</span><a href="http://m.yohobuy.com/reg.html">注册</a>'):a.prepend('Hi,<a class="user-name" href="http://m.yohobuy.com/home?tmp='+Math.random()+'">'+s[0]+'</a><a href="http://m.yohobuy.com/passport/signout/index?token='+s[3]+'">退出</a>'),e.removeClass("hide")}(),window.cookie=i,window.setCookie=t,window.getUser=n,window.getUid=o,window.getShoppingKey=l}),define("js/category/entry",["zepto","swiper","lazyload","index"],function(e,a,s){e("js/category/index"),e("js/category/brand")}),define("js/category/index",["zepto"],function(e,a,s){var i=e("zepto"),t=i(".category-nav"),n=i(".category-container > .content"),o=n.not(".hide");i("#search-input").focus(function(){i(this).blur()}),t.delegate("li","tap",function(){var e=i(this),a=e.index();e.hasClass("focus")||(t.find("li.focus").removeClass("focus"),e.addClass("focus"),o.addClass("hide"),o=n.eq(a).removeClass("hide"))}),i(".primary-level").delegate("li","tap",function(){var e=i(this),a=e.index(),s=e.closest(".content").find(".sub-level");e.hasClass("focus")||(e.closest(".primary-level").children(".focus").removeClass("focus"),e.addClass("focus"),s.not(".hide").addClass("hide"),s.eq(a).removeClass("hide"))})}),define("js/category/brand",["zepto","swiper","lazyload","index"],function(e,a,s){var i,t=e("zepto"),n=e("swiper"),o=e("lazyload"),l=t(".brand-list");i=new n(".swiper-container",{lazyLoading:!0,loop:!0,autoplay:3e3,pagination:".swiper-pagination .pagination-inner"}),o(t("img.lazy")),t(".yoho-header").css({"z-index":2,position:"fixed"}),t(".banner-top").css("padding-top","90px"),l.length>0&&t(window).scroll(function(){var e=t(window).scrollTop(),a=t(".newbrand-search").height(),s=t(".yoho-header").height(),i=parseInt(a)+parseInt(s);t(".brand-list").each(function(){var a=t(this).offset().top-i;e>=a?(l.find(".title-bar").css("position","static"),t(this).find(".title-bar").css({position:"fixed",top:i})):t(this).find(".title-bar").css("position","static")})})}),define("js/guang/entry",["zepto","lazyload","swiper","mlellipsis","iscroll-probe","index"],function(e,a,s){e("js/guang/plus-star/list"),e("js/guang/plus-star/detail"),e("js/guang/home"),e("js/guang/list"),e("js/guang/detail")}),define("js/guang/plus-star/list",["zepto","lazyload","swiper","index"],function(e,a,s){var i,t=e("zepto"),n=e("lazyload"),o=e("swiper"),l=t("#nav-tab > li"),r=t("#ps-content > .content");n(t("img.lazy")),i=new o(".swiper-container",{lazyLoading:!0,pagination:".swiper-pagination"}),t("#nav-tab").delegate("li","tap",function(){t(this).hasClass("focus")||(l.toggleClass("focus"),r.toggleClass("hide"),t(document).trigger("scroll"))})}),define("js/guang/plus-star/detail",["zepto","mlellipsis","lazyload"],function(e,a,s){var i,t,n=e("zepto"),o=e("mlellipsis"),l=e("lazyload"),r=n("#intro"),d=n("#intro-more-txt"),c=n("#related-infos-container"),p=e("js/guang/info"),u=e("js/plugin/tip"),h=n("#brand-info").data("id");o.init(),l(n("img.lazy")),r[0].mlellipsis(3),setTimeout(function(){i=r.text(),t=r.attr("title")}),p.initInfosEvt(c),n("#more-intro").bind("tap",function(){var e=n(this);e.toggleClass("spread"),e.hasClass("spread")?(r.text(t),d.text("收起")):(r.text(i),d.text("more"))}),n("#brand-like").bind("tap",function(e){var a="ok",s=n(this);e.preventDefault(),s.hasClass("like")&&(a="cancel"),n.ajax({type:"POST",url:"/product/opt/favoriteBrand",data:{id:h,opt:a},success:function(e){200===e.code?s.toggleClass("like"):400===e.code&&u.show("未登录")},error:function(){u.show("网络断开连接了~")}})})}),define("js/guang/info",["zepto","mlellipsis","lazyload"],function(e,a,s){function i(e){r(e.find("img.lazy")),e.each(function(){var e=o(this),a=e.find(".info-title"),s=e.find(".info-text");a[0].mlellipsis(2),s[0].mlellipsis(2)})}function t(e){e.delegate(".like-btn","tap",function(e){var a=o(e.currentTarget),s=a.closest(".guang-info"),i="ok";a.hasClass("like")&&(i="cancel"),o.ajax({type:"POST",url:"/guang/opt/praiseArticle",data:{id:s.data("id"),opt:i},success:function(e){var s=e.code;200===s&&(a.next(".like-count").text(e.data),a.toggleClass("like"))},error:function(){d.show("网络断开连接了~")}})}),i(e.find(".guang-info"))}function n(e,a){h||a.end||(h=!0,o.ajax({type:"GET",url:" /guang/index/page",data:a,success:function(s){return" "===s?(a.end=!0,h=!1,p.addClass("hide"),void u.removeClass("hide")):(e.append(s),i(e.find(".guang-info")),a.page++,void(h=!1))},error:function(){d.show("网络断开连接了~"),h=!1}}))}var o=e("zepto"),l=e("mlellipsis"),r=e("lazyload"),d=e("js/plugin/tip"),c=o("#load-more-info"),p=o(""),u=o(""),h=!1;l.init(),c.length>0&&(p=c.children(".loading"),u=c.children(".no-more")),a.initInfosEvt=t,a.setLazyLoadAndMellipsis=i,a.loadMore=n}),define("js/plugin/tip",["zepto"],function(e,a,s){function i(e,a){var s,i;"undefined"!=typeof e&&(s=e.toString(),i=a&&a>0?a:2e3,t.text(s).show(),n=setTimeout(function(){"block"===t.css("display")&&t.hide()},i))}var t,n,o=e("zepto");!function(){var e='<div id="yoho-tip" class="yoho-tip"></div>';o(".yoho-page").append(e),t=o("#yoho-tip"),t.on("tap",function(){t.hide(),clearTimeout(n)})}(),a.show=i}),define("js/guang/home",["zepto","swiper","mlellipsis","lazyload","index"],function(e,a,s){var i,t=e("zepto"),n=e("swiper"),o=e("js/guang/info"),l=o.setLazyLoadAndMellipsis,r=o.loadMore,d=t("#load-more-info"),c=t(""),p=t(""),u=t(window).height(),h=d.height(),f=t("#info-list"),g=f.children(".info-list"),v=t("#guang-nav"),m=v.children(".focus"),w=m.data("type"),b={};d.length>0&&(c=d.children(".loading"),p=d.children(".no-more")),i=new n(".swiper-container",{lazyLoading:!0,pagination:".swiper-pagination"}),o.initInfosEvt(f),function(){var e=t("#gender").val();v.children(".guang-nav-item").each(function(){var a=t(this).data("type");b[a]={page:1,gender:e,type:a,end:!1}})}(),v.delegate(".guang-nav-item","tap",function(){var e,a,s=t(this);s.hasClass("focus")||(a=s.index(),s.addClass("focus"),m.removeClass("focus"),g.not(".hide").addClass("hide"),e=g.eq(a),e.removeClass("hide"),l(e.children(".guang-info")),m=s,w=s.data("type"),b[w].end?(c.addClass("hide"),p.removeClass("hide")):(c.removeClass("hide"),p.addClass("hide")))}),t(document).scroll(function(){t(window).scrollTop()+u>=t(document).height()-h&&r(g,b[w])})}),define("js/guang/list",["zepto","mlellipsis","lazyload"],function(e,a,s){var i=e("zepto"),t=e("js/guang/info"),n=t.loadMore,o=i(window).height(),l=i("#load-more").height(),r=i("#author-infos"),d=i("#tag"),c={page:1,end:!1},p=i("#info-list");t.initInfosEvt(p),r.length>0&&i.extend(c,{authorId:r.data("id")}),d.length>0&&i.extend(c,{tag:d.val()}),i(document).scroll(function(){i(window).scrollTop()+o>=i(document).height()-l&&n(p,c)})}),define("js/guang/detail",["zepto","mlellipsis","lazyload","iscroll-probe"],function(e,a,s){function i(e){var a=e.offset().left,s=-C+a+w/2+"px";o.css({backgroundPosition:s+" bottom"}),v&&b.css({backgroundPosition:s+" bottom"})}function t(e){var a,s,t,u=p(e.currentTarget),f=u.index();u.hasClass("focus")||(l.filter(".focus").removeClass("focus"),v&&(a=u.closest(".fixed-thumb-container").length>0?o:b,s=a.find(".thumb").eq(f),b.find(".thumb.focus").removeClass("focus"),s.addClass("focus")),u.addClass("focus"),i(u),r.not(".hide").addClass("hide"),t=r.eq(f),t.removeClass("hide"),h(t.find(".lazy")),v?c&&c.scrollToElement(d,400):p("body").animate({scrollTop:n.offset().top},400))}var n,o,l,r,d,c,p=e("zepto"),u=e("mlellipsis"),h=e("lazyload"),f=e("iscroll-probe"),g=p(".author .intro"),v=navigator.userAgent.indexOf("iPhone")>0?!0:!1,m=p(".collocation-block").length>0?!0:!1,w=0,b=p(""),d=document.querySelector("#wrapper .collocation-block"),C=p(window).width();v&&p("#wrapper").addClass("ios"),u.init(),h(p(".lazy")),p(".info-list .title, .one-good .reco-name").each(function(){this.mlellipsis(2)}),parseInt(g.offset().left,10)===parseInt(g.css("margin-left"),10)&&g.css("padding-top",0),m&&(n=p(".collocation-block"),o=n.children(".thumb-container"),l=o.find("li"),r=n.find(".prod"),w=l.width(),v&&(b=p("#wrapper").after(o.clone().addClass("fixed-thumb-container fixed-bottom")).next(".thumb-container"),h(b.find(".lazy"),{event:"sporty"})),i(l.filter(".focus")),o.delegate(".thumb","touchend",t),v&&b.delegate(".thumb","touchend",t)),window.onload=function(){var e,a,s,i,t,l=p("#scroller");if(v){if(c=new f("#wrapper",{probeType:3,mouseWheel:!0,click:!0}),document.addEventListener("touchmove",function(e){e.preventDefault()},!1),!m)return void c.on("scroll",function(){l.trigger("scroll")});e=p(window).height(),t=b[0],a=o.height(),s=n.height(),i=n.offset().top,c.on("scroll",function(){var n=-this.y,o=t.className;i-e+a>=n?-1===o.indexOf("fixed-bottom")&&b.addClass("fixed-bottom").removeClass("hide"):i>=n?-1===o.indexOf("hide")&&b.addClass("hide").removeClass("fixed-bottom fixed-top"):i+s-a>=n?-1===o.indexOf("fixed-top")&&b.addClass("fixed-top").removeClass("hide absolute").css("top",""):i+s>=n?(-1===o.indexOf("absolute")&&b.addClass("absolute").removeClass("fixed-top hide"),t.style.top=i+s-a-n+"px"):n>i+s&&-1===o.indexOf("hide")&&b.addClass("hide").removeClass("absolute"),l.trigger("scroll")})}}}),define("js/home/entry",["zepto","swiper","lazyload","index"],function(e,a,s){e("js/home/home"),e("js/home/maybe-like")}),define("js/home/home",["zepto","swiper","lazyload","index"],function(e,a,s){function i(){m+=10,w.css({transform:"rotateX("+m+"deg)","-webkit-transform":"rotateX("+m+"deg)","-moz-transform":"rotateX("+m+"deg)"}),m/90%2===1&&(b?(w.addClass("animate"),b=!1):(w.removeClass("animate"),b=!0)),m/90%2===0&&m%360!==0?window.setTimeout(i,3e3):m%360===0?window.setTimeout(i,18e4):d(function(){i()})}var t,n,o,l,r,d,c,p,u,h,f=e("zepto"),g=e("swiper"),v=e("lazyload"),m=0,w=f(".home-header .logo"),b=!0;e("js/home/maybe-like"),v(f("img.lazy")),f(".nav-btn").on("tap",function(e){f(this).hasClass("menu-open")||(f(".mobile-wrap").addClass("menu-open"),f(".overlay").addClass("show"),f(".side-nav").addClass("on"),f("body").css({height:f(window).height(),width:"100%",overflow:"hidden"})),e.stopPropagation()}),f(".mobile-wrap").on("tap",function(){f(this).hasClass("menu-open")&&(f(".mobile-wrap").removeClass("menu-open"),f(".overlay").removeClass("show"),f(".sub-nav").removeClass("show"),f(".side-nav").removeClass("on"),f("body").css({height:"auto",overflow:"auto"}))}),f(".side-nav").on("tap","li",function(){f(this).find(".sub-nav").size()>0&&(f(".sub-nav").removeClass("show"),f(this).find(".sub-nav").addClass("show"))}),f(".sub-nav").each(function(){f(this).find("li").eq(0).on("tap",function(e){f(".sub-nav").removeClass("show"),e.stopPropagation()})}),f(".sub-nav").on("mouseenter","li",function(){0!==f(this).index()&&f(this).addClass("current").siblings().removeClass("current")}),f(".banner-swiper").find("li").size()>1&&(t=new g(".banner-swiper",{lazyLoading:!0,lazyLoadingInPrevNext:!0,loop:!0,autoplay:3e3,autoplayDisableOnInteraction:!1,paginationClickable:!0,slideElement:"li",pagination:".banner-top .pagination-inner"})),o=new g(".brands-swiper",{grabCursor:!0,slidesPerView:"auto",wrapperClass:"brands-list",slideElement:"li"}),n=new g(".recommend-swiper",{grabCursor:!0,slidesPerView:"auto",wrapperClass:"recommend-list",slideElement:"li"}),f(".trend-topic-swiper").find("li").size()>1&&(l=new g(".trend-topic-swiper",{loop:!0,autoplay:3e3,autoplayDisableOnInteraction:!1,paginationClickable:!0,slideElement:"li",pagination:".trend-topic-content .pagination-inner"})),f(".category-swiper").each(function(e,a){u="category-swiper"+e,f(this).addClass(u),f("."+u).find(".swiper-slide").size()>1&&(r=new g("."+u,{loop:!0,autoplay:3e3,autoplayDisableOnInteraction:!1,paginationClickable:!0,slideElement:"li",pagination:"."+u+" .pagination-inner"}))}),f(".header-download").on("tap",".close-btn",function(){f(this).parent().remove()}),d=function(){var e=null,a=["webkit","moz","ms"];for(p=0;p<a.length;p++)c=a[p]+"RequestAnimationFrame",window[c]&&(h=!0,e=c);return h?function(a){window[e](a)}:function(e){window.setTimeout(e,67)}}(),i()}),define("js/home/maybe-like",["zepto","lazyload"],function(e,a,s){var i,t,n,o,l=e("zepto"),r=e("js/plugin/tip"),d=e("lazyload"),c=l(window).height(),p=l("#load-more").height(),u=l("#goods-list"),h=!1,f=0,g=l(".mobile-wrap").hasClass("boys-wrap")?"1,3":"2,3",v=l(".mobile-wrap").hasClass("kids-wrap")?!0:!1,m=l(".mobile-wrap").hasClass("lifestyle-wrap")?!0:!1,w=l("#maybe-like-nav");t=v?"/product/recom/maylikekids":m?"/product/recom/maylikelife":"/product/recom/maylike?gender="+g,n=w.children(".focus"),l("#maybe-like-nav").delegate("li","tap",function(){var e,a=l(this),s=l(".goods-list");a.hasClass("focus")||(o=a.index(),a.addClass("focus"),n.removeClass("focus"),s.not(".hide").addClass("hide"),e=s.eq(o),e.removeClass("hide"),n=a,l(document).trigger("scroll"))}),l(window).scroll(function(){if(l(window).scrollTop()+c>=l(document).height()-p){if(h)return;h=!0,i=u.children(".good-info").length,l.ajax({type:"GET",url:t,data:{page:f+1},success:function(e){return" "===e?void(h=!0):(u.append(e),d(l(".good-info").find("img.lazy")),h=!1,void f++)},error:function(){r.show("网络断开连接了~"),h=!1}})}})}),define("js/index/entry",["zepto"],function(e,a,s){e("js/index/search"),e("js/index/channel"),e("js/index/footer")}),define("js/index/search",["zepto"],function(e,a,s){var i=e("zepto"),t=i("#search-input input"),n=i("#search-input .clear-input"),o=i(".history");i("#clear-history").bind("tap",function(){i.ajax({type:"POST",url:"/search/clearHistory",success:function(e){200===e.code&&o.html("")}})}),t.bind("input",function(){""===t.val()?n.addClass("hide"):n.removeClass("hide")}),n.bind("tap",function(){t.val("").trigger("input")})}),define("js/index/channel",[],function(e,a,s){}),define("js/index/footer",["zepto"],function(e,a,s){function i(){var e="http://a.app.qq.com/o/simple.jsp?pkgname=com.yoho&g_f=995445",a=new Date;setTimeout(function(){new Date-a<2e3&&(window.location=e)},500)}var t=e("zepto"),n=t(".search-box"),o=t(".index-search"),l=t(".index-logo");t("#float-layer-close").bind("tap",function(){t("#float-layer-app").hide(),window.setCookie("_float-layer-app","id490655927",{domain:".yohobuy.com"}),window.setCookie("_float-layer-app-close",1,{domain:".yohobuy.com",expires:1})}),t("#float-layer-btn").tap(function(){i("bottom")}),window.cookie("_float-layer-app")?t("#float-layer-app").hide():t("#float-layer-app").show(),n.find("input").on("focus",function(){l.css({width:0,display:"none"}),n.css({width:"12.8rem"}),o.css({width:"15.5rem"}),t(".clear-text, .no-search").show()}).on("blur",function(){l.css({width:"5.4rem",display:"block"}),n.css({width:"8.8rem"}),o.css({width:"9.6rem"}),t(".clear-text, .no-search").hide()}),n.find(".clear-text").tap(function(){n.find("input").val("").trigger("focus")}),n.find(".search-icon").tap(function(){o.submit()})}),define("js/passport/entry",["zepto"],function(e,a,s){e("js/passport/register/register"),e("js/passport/register/code"),e("js/passport/register/password"),e("js/passport/login/login"),e("js/passport/login/international"),e("js/passport/back/mobile"),e("js/passport/back/code"),e("js/passport/back/email"),e("js/passport/back/email-success"),e("js/passport/back/new-password")}),define("js/passport/register/register",["zepto"],function(e,a,s){var i=e("zepto"),t=i("#phone-num"),n=i("#country-select"),o=i("#area-code"),l=i("#btn-next"),r=e("js/passport/api"),d=e("js/plugin/tip"),c=i.trim,p=d.show;r.selectCssHack(i("#country-select")),r.bindClearEvt(),t.bind("input",function(){""===c(t.val())?l.addClass("disable"):l.removeClass("disable")}),n.change(function(){o.text(n.val())}),l.on("tap",function(){var e=c(t.val()),a=n.val();l.hasClass("disable")||(r.phoneRegx[a].test(e)?i.ajax({url:"/passport/reg/verifymobile",type:"POST",data:{areaCode:a.replace("+",""),phoneNum:e},success:function(e){200===e.code?location.href=e.data:p(e.message)}}):p("手机号格式不正确,请重新输入"))})}),define("js/passport/api",["zepto"],function(e,a,s){function i(e){var a,s=l(".has-eye");e&&"open"===e.status?s.append('<div class="eye"></div>'):s.append('<div class="eye close"></div>'),a=s.children(".eye"),a.on("tap",function(e){var a=l(this),s=a.siblings(".pwd");e.preventDefault(),a.toggleClass("close"),a.hasClass("close")?s.attr("type","password"):s.attr("type","text"),s.focus()})}function t(){var e,a=l(".has-clear");a.append('<div class="clear-input"></div>'),e=a.children(".clear-input"),e.on("tap",function(a){var s=e.siblings(".input");s.val("").trigger("input").focus(),a.preventDefault()}),a.children(".input").bind("input",function(){var e=l(this),a=e.siblings(".clear-input"),s=r(e.val());""===s?a.hide():a.show()})}function n(e){return e.length>=6&&e.length<=20?!0:!1}function o(e){function a(){var a=e.find("option:selected").text().length;switch(a){case 2:e.outerWidth(90);break;case 3:e.outerWidth(110);break;default:e.outerWidth(130)}}var s=navigator.userAgent;s.match(/uc/i)&&s.match(/android/i)?e.change(function(){a()}):e.removeClass("in-android-uc")}var l=e("zepto"),r=l.trim,d=/^([a-zA-Z0-9]+[_|\_|\.|-]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.|-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/,c={"+86":/^1[35847]{1}[0-9]{9}$/,"+852":/^[965]{1}[0-9]{7}$/,"+853":/^[0-9]{8}$/,"+886":/^[0-9]{10}$/,"+65":/^[98]{1}[0-9]{7}$/,"+60":/^1[1234679]{1}[0-9]{8}$/,"+1":/^[0-9]{10}$/,"+82":/^01[0-9]{9}$/,"+44":/^7[789][0-9]{8}$/,"+81":/^0[9|8|7][0-9]{9}$/,"+61":/^[0-9]{11}$/};s.exports={emailRegx:d,phoneRegx:c,bindEyesEvt:i,bindClearEvt:t,pwdValidate:n,selectCssHack:o}}),define("js/passport/register/code",["zepto"],function(e,a,s){e("js/passport/code")(!0)}),define("js/passport/code",["zepto"],function(e,a,s){var i=e("zepto");s.exports=function(a){function s(){var e,a=59;e=setInterval(function(){0===a?(o.text("重发验证码").removeClass("disable"),clearInterval(e)):o.text("重发验证码 ("+a--+"秒)")},1e3)}var t=i("#captcha"),n=i("#btn-next"),o=i("#captcha-tip"),l=i("#phone-num").val(),r=i("#area-code").val().replace("+",""),d=e("js/passport/api"),c=e("js/plugin/tip"),p=i.trim,u=c.show,h=a?"reg":"back";d.bindClearEvt(),t.bind("input",function(){""!==p(t.val())?n.removeClass("disable"):n.addClass("disable")}),o.on("tap",function(){o.hasClass("disable")||i.ajax({type:"POST",url:"/passport/"+h+"/sendcode",data:{phoneNum:l,areaCode:r},success:function(e){200===e.code?(o.text("重发验证码 (60秒)").addClass("disable"),s()):u(e.message)}})}),n.on("tap",function(){n.hasClass("disable")||i.ajax({type:"POST",url:"/passport/"+h+"/verifycode",data:{phoneNum:l,areaCode:r,code:p(t.val()),token:i("#token").val()},success:function(e){200===e.code?location.href=e.data:u(e.message)}})}),s()}}),define("js/passport/register/password",["zepto"],function(e,a,s){var i=e("zepto"),t=i("#pwd"),n=i("#btn-sure"),o=e("js/passport/api"),l=e("js/plugin/tip"),r=i.trim,d=l.show;o.bindEyesEvt({status:"open"}),t.bind("input",function(){""===r(t.val())?n.addClass("disable"):n.removeClass("disable")}),n.on("tap",function(){var e=r(t.val());n.hasClass("disable")||(o.pwdValidate(e)===!1?d("密码6-20位,请重新输入"):i.ajax({type:"POST",url:"/passport/reg/setpassword",data:{password:e,phoneNum:i("#phone-num").val(),areaCode:i("#area-code").val(),token:i("#token").val()},success:function(e){200===e.code?(d("注册成功"),setTimeout(function(){location.href=e.data},1e3)):401===e.code||404===e.code||505===e.code?d(e.message):(d(e.message),setTimeout(function(){location.href=e.data},1e3))}}))})}),define("js/passport/login/login",["zepto"],function(e,a,s){function i(){u&&h?d.removeClass("disable"):d.addClass("disable")}function t(){c.show(),p.show()}function n(){c.hide(),p.hide()}var o=e("zepto"),l=o("#account"),r=o("#pwd"),d=o("#btn-login"),c=o("#retrive-pwd-mask"),p=o("#retrive-pwd-ways"),u=!1,h=!1,f=e("js/passport/api"),g=e("js/plugin/tip"),v=o.trim,m=g.show;f.bindEyesEvt(),f.bindClearEvt(),l.bind("input",function(){u=""!==v(l.val())?!0:!1,i()}),r.bind("input",function(){h=""===v(r.val())?!1:!0,i()}),d.on("tap",function(){var e=v(l.val()),a=v(r.val());d.hasClass("disable")||((/^[0-9]+$/.test(e)||f.emailRegx.test(e))&&f.pwdValidate(a)?o.ajax({type:"POST",url:"/passport/login/auth",data:{account:e,password:a},success:function(e){200===e.code?(m("登录成功"),setTimeout(function(){location.href=e.data},1e3)):m(e.message)},error:function(){m("网络断开连接啦~")}}):m("账号或密码有错误,请重新输入"))}),o("#forget-pwd").on("tap",function(){t()}),c.on("tap",function(){n()}),o("#cancel-retrive").on("tap",function(e){e.preventDefault(),n()}),l.trigger("input"),r.trigger("input")}),define("js/passport/login/international",["zepto"],function(e,a,s){function i(){c&&p?d.removeClass("disable"):d.addClass("disable")}var t=e("zepto"),n=t("#phone-num"),o=t("#country-select"),l=t("#area-code"),r=t("#pwd"),d=t("#btn-login"),c=!1,p=!1,u=e("js/passport/api"),h=e("js/plugin/tip"),f=t.trim,g=h.show;u.selectCssHack(o),u.bindEyesEvt(),u.bindClearEvt(),n.bind("input",function(){c=""===f(n.val())?!1:!0,i()}),r.bind("input",function(){var e=f(r.val());p=""===e?!1:!0,i()}),o.change(function(){l.text(o.val())}),d.on("tap",function(){var e=f(n.val()),a=o.val(),s=f(r.val());d.hasClass("disable")||(u.phoneRegx[a].test(e)&&u.pwdValidate(s)?t.ajax({type:"POST",url:"/passport/login/auth",data:{areaCode:a.replace("+",""),account:e,password:s},success:function(e){200===e.code?(g("登录成功"),setTimeout(function(){location.href=e.data},1e3)):g(e.message)},error:function(){g("网络断开连接啦~")}}):g("账号或密码有错误,请重新输入"))}),n.trigger("input"),r.trigger("input")}),define("js/passport/back/mobile",["zepto"],function(e,a,s){var i=e("zepto"),t=i("#phone-num"),n=i("#country-select"),o=i("#area-code"),l=i("#btn-next"),r=e("js/passport/api"),d=e("js/plugin/tip"),c=i.trim,p=d.show;r.selectCssHack(i("#country-select")),r.bindClearEvt(),t.bind("input",function(){""===c(t.val())?l.addClass("disable"):l.removeClass("disable")}),n.change(function(){o.text(n.val())}),l.on("tap",function(){var e=c(t.val()),a=n.val();l.hasClass("disable")||(r.phoneRegx[a].test(e)?i.ajax({url:"/passport/back/sendcode",type:"POST",data:{areaCode:a.replace("+",""),phoneNum:e},success:function(e){200===e.code?location.href=e.data:p(e.message)}}):p("手机号格式不正确,请重新输入"))})}),define("js/passport/back/code",["zepto"],function(e,a,s){e("js/passport/code")(!1)}),define("js/passport/back/email",["zepto"],function(e,a,s){var i=e("zepto"),t=i("#email"),n=i("#btn-sure"),o=e("js/passport/api"),l=e("js/plugin/tip"),r=i.trim,d=l.show;o.bindClearEvt(),t.bind("input",function(){""===r(t.val())?n.addClass("disable"):n.removeClass("disable")}),n.on("tap",function(){var e=r(t.val());n.hasClass("disable")||(o.emailRegx.test(e)?i.ajax({url:"/passport/back/sendemail",type:"POST",data:{email:e},success:function(e){200===e.code?location.href=e.data:d(e.message)}}):d("邮箱格式不正确,请重新输入"))})}),define("js/passport/back/email-success",["zepto"],function(e,a,s){var i=e("zepto"),t=i("#resend"),n=e("js/plugin/tip"),o=n.show;t.on("tap",function(e){e.preventDefault(),i.ajax({url:t.data("url"),type:"GET",success:function(e){o(200===e.code?e.message:e.message)}})})}),define("js/passport/back/new-password",["zepto"],function(e,a,s){var i=e("zepto"),t=i("#pwd"),n=i("#btn-ok"),o=e("js/passport/api"),l=e("js/plugin/tip"),r=i.trim,d=l.show,c=i("#phone-num");o.bindEyesEvt(),t.bind("input",function(){""===r(t.val())?n.addClass("disable"):n.removeClass("disable")}),n.on("tap",function(){var e,a,s=r(t.val()),l=!0;n.hasClass("disable")||(e={password:s},0===c.length&&(l=!1),l?(i.extend(e,{phoneNum:c.val(),areaCode:i("#areaCode").val(),token:i("#token").val()}),a="/passport/back/passwordByMobile"):(i.extend(e,{code:i("#email-code").val()}),a="/passport/back/passwordByEmail"),o.pwdValidate(s)?i.ajax({type:"POST",url:a,data:e,success:function(e){200===e.code?(d("密码修改成功"),setTimeout(function(){location.href=e.data},1e3)):d(e.message)}}):d("密码6-20位,请重新输入"))})}),define("js/product/entry",["zepto","swiper","lazyload","index"],function(e,a,s){e("js/product/newsale/newarrival"),e("js/product/newsale/discount"),e("js/product/list"),e("js/product/detail/detail")}),define("js/product/newsale/newarrival",["zepto","swiper","lazyload","index"],function(e,a,s){function i(e){var a,s,i,t,l,d,c={};if(e){for(s in C)C.hasOwnProperty(s)&&(C[s].reload=!0);switch(b.children(".active").removeClass("active"),y.addClass("active"),e.type){case"gender":a={gender:e.id};break;case"brand":a={brand:e.id};break;case"sort":a={sort:e.id};break;case"color":a={color:e.id};break;case"size":a={size:e.id};break;case"price":a={price:e.id};break;case"discount":a={discount:e.id};break;case"limit":a={limit:e.id};break;case"channel":a={channel:e.id};break;case"p_d":a={p_d:e.id}}o.extend(g,a)}if(!n){if(y.hasClass("today")?(t="today",l=1):y.hasClass("week")?(t="week",l=2):y.hasClass("sale")&&(t="sale",l=3),i=C[t],d=i.page+1,i.reload)d=1;else if(i.end)return;o.extend(c,g,{dayLimit:l,page:d}),n=!0,o.ajax({type:"GET",url:"/product/newsale/selectNewSale",data:c,success:function(e){var a,s='<p class="no-result">未找到相关搜索结果</p>';switch(t){case"today":a=p;break;case"week":a=u;break;case"sale":a=h}" "===e?(i.end=!0,i.reload&&a.html(s)):(i.reload?a.html(e):a.append(e),r(a.find(".lazy"))),i.reload=!1,i.page=d,n=!1}})}}var t,n,o=e("zepto"),l=e("swiper"),r=e("lazyload"),d=e("js/plugin/filter"),c=o("#goods-container"),p=o(c.children().get(0)),u=o(c.children().get(1)),h=o(c.children().get(2)),f=o(window).height(),g={gender:o("#gender").val(),brand:o("#brand").val(),sort:o("#sort").val(),color:o("#color").val(),size:o("#size").val(),price:o("#price").val(),discount:o("#discount").val(),limit:o("#limit").val(),channel:o("#channel").val(),p_d:o("#p_d").val()},v=new Date,m=v.getMonth()+1,w=v.getDate(),b=o("#list-nav"),C={today:{reload:!0,page:0,end:!1},week:{reload:!0,page:0,end:!1},sale:{reload:!0,page:0,end:!1}},y=b.find(".active");u.addClass("hide"),h.addClass("hide"),o("#today a").text(m+"月"+w+"号"),o(".swiper-container .swiper-slide").length>1&&(t=new l(".swiper-container",{lazyLoading:!0,lazyLoadingInPrevNext:!0,loop:!0,autoplay:3e3,autoplayDisableOnInteraction:!1,paginationClickable:!0,pagination:".swiper-pagination"})),r(o(".lazy")),d.registerCbFn(i),b.delegate("li","tap",function(){var e,a,s,t=o(this);if(t.hasClass("filter"))t.hasClass("active")?(d.hideFilter(),y.addClass("active"),t.removeClass("active")):(y=t.siblings(".active"),y.removeClass("active"),t.addClass("active"),d.showFilter());else{if(t.hasClass("today")?a="today":t.hasClass("week")?a="week":t.hasClass("sale")&&(a="sale"),e=C[a],!t.hasClass("active")){if(s=t.siblings(".active"),y=t,s.hasClass("filter"))d.hideFilter();else switch(c.children(".container:not(.hide)").addClass("hide"),a){case"today":p.removeClass("hide");break;case"week":u.removeClass("hide");break;case"sale":h.removeClass("hide")}s.removeClass("active"),t.addClass("active")}e.reload&&i()}}),o(window).scroll(function(){o(window).scrollTop()+f>o(document).height()-.25*c.height()&&void 0!==y&&i()})}),define("js/plugin/filter",["zepto"],function(e,a,s){function i(){r.addClass("hide")}function t(){r.removeClass("hide")}function n(e){o=e}var o,l=e("zepto"),r=l(".filter-mask, .filter-body"),d=r.find(".classify"),c=r.find(".sub-classify");d.children(":first-child").addClass("active"),d.delegate(".classify-item","tap",function(){var e=l(this);e.hasClass("active")||(e.siblings(".active").removeClass("active"),e.addClass("active"))}),r.filter(".filter-mask").tap(function(){i()}),c.delegate("li","tap",function(e){var a,s,t=l(this),n=t.data("id"),r=t.closest(".sub-classify"),d=r.siblings(".shower");e.stopPropagation(),t.hasClass("chosed")||(r.children(".chosed").removeClass("chosed"),t.addClass("chosed"),a=l.trim(t.html()),s=l.trim(d.html()),d.html(s.substring(0,s.indexOf("</span>")+7)+a.substring(0,a.indexOf("<i"))),0===t.index()?d.addClass("default"):d.removeClass("default"),o&&o({type:r.data("type"),id:n}),i())}),a.showFilter=t,a.hideFilter=i,a.registerCbFn=n}),define("js/product/newsale/discount",["zepto","swiper","lazyload","index"],function(e,a,s){function i(e){var a,s,i,t,l,d={};if(e){for(s in m)m.hasOwnProperty(s)&&(m[s].reload=!0);switch(v.children(".active").removeClass("active"),w.addClass("active"),e.type){case"gender":a={gender:e.id};break;case"brand":a={brand:e.id};break;case"sort":a={sort:e.id};break;case"color":a={color:e.id};break;case"size":a={size:e.id};break;case"price":a={price:e.id};break;case"discount":a={discount:e.id}}o.extend(g,a)}if(!n){if(w.hasClass("new")?t="newest":w.hasClass("price")?t="price":w.hasClass("discount")&&(t="discount"),i=m[t],l=i.page+1,i.reload)l=1;else if(i.end)return;o.extend(d,g,{type:t,order:i.order,page:l}),n=!0,o.ajax({type:"GET",url:"/product/newsale/selectNewSale",data:d,success:function(e){var a,s='<p class="no-result">未找到相关搜索结果</p>';switch(t){case"newest":a=p;break;case"price":a=u;break;case"discount":a=h}" "===e?(i.end=!0,i.reload&&a.html(s)):(i.reload?a.html(e):a.append(e),r(a.find(".lazy"))),i.reload=!1,i.page=l,n=!1}})}}var t,n,o=e("zepto"),l=e("swiper"),r=e("lazyload"),d=e("js/plugin/filter"),c=o("#goods-container"),p=o(c.children().get(0)),u=o(c.children().get(1)),h=o(c.children().get(2)),f=o(window).height(),g={gender:o("#gender").val(),brand:o("#brand").val(),sort:o("#sort").val(),color:o("#color").val(),size:o("#size").val(),price:o("#price").val(),discount:o("#discount").val()},v=o("#list-nav"),m={newest:{order:1,reload:!0,page:0,end:!1},price:{order:0,reload:!0,page:0,end:!1},discount:{order:0,reload:!0,page:0,end:!1}},w=v.find(".active");o(".swiper-container .swiper-slide").length>1&&(t=new l(".swiper-container",{lazyLoading:!0,lazyLoadingInPrevNext:!0,loop:!0,autoplay:3e3,autoplayDisableOnInteraction:!1,paginationClickable:!0,pagination:".swiper-pagination"})),r(o(".lazy")),d.registerCbFn(i),v.delegate("li","tap",function(){var e,a,s,t=o(this);if(t.hasClass("filter"))t.hasClass("active")?(d.hideFilter(),w.addClass("active"),t.removeClass("active")):(w=t.siblings(".active"),w.removeClass("active"),t.addClass("active"),d.showFilter());else{if(t.hasClass("new")?a="newest":t.hasClass("price")?a="price":t.hasClass("discount")&&(a="discount"),e=m[a],t.hasClass("active")){if(t.hasClass("new"))return;(t.hasClass("price")||t.hasClass("discount"))&&(t.find(".icon > .iconfont").toggleClass("cur"),w=t,e.reload=!0,e.order=0===e.order?1:0)}else{if(s=t.siblings(".active"),w=t,s.hasClass("filter"))d.hideFilter();else switch(c.children(".container:not(.hide)").addClass("hide"),a){case"newest":p.removeClass("hide");break;case"price":u.removeClass("hide");break;case"discount":h.removeClass("hide")}s.removeClass("active"),t.addClass("active")}e.reload&&i()}}),o(window).scroll(function(){o(window).scrollTop()+f>o(document).height()-.25*c.height()&&void 0!==w&&i()})}),define("js/product/list",["zepto","lazyload"],function(e,a,s){function i(e){var a,s,i,l,r,d={};if(e){for(s in w)w.hasOwnProperty(s)&&(w[s].reload=!0);switch(m.children(".active").removeClass("active"),b.addClass("active"),
e.type){case"gender":a={gender:e.id};break;case"brand":a={brand:e.id};break;case"sort":a={sort:e.id};break;case"color":a={color:e.id};break;case"size":a={size:e.id};break;case"price":a={price:e.id};break;case"discount":a={discount:e.id}}n.extend(v,a)}if(!t){if(b.hasClass("new")?l="newest":b.hasClass("price")?l="price":b.hasClass("discount")&&(l="discount"),i=w[l],r=i.page+1,i.reload)r=1;else if(i.end)return;n.extend(d,v,{type:l,order:i.order,page:r}),t=!0,n.ajax({type:"GET",url:"/index/search/search",data:d,success:function(e){var a,s='<p class="no-result">未找到相关搜索结果</p>';switch(l){case"newest":a=u;break;case"price":a=h;break;case"discount":a=f}" "===e?(i.end=!0,i.reload&&a.html(s)):(i.reload?a.html(e):a.append(e),o(a.find(".lazy"))),i.reload=!1,i.page=r,t=!1}})}}var t,n=e("zepto"),o=e("lazyload"),l=n("#brand-header"),r=n("#intro-box"),d=e("js/plugin/filter"),c=e("js/plugin/tip"),p=n("#goods-container"),u=p.children(".new-goods"),h=p.children(".price-goods"),f=p.children(".discount-goods"),g=n(window).height(),v={gender:n("#gender").val(),brand:n("#brand").val(),sort:n("#sort").val(),color:n("#color").val(),size:n("#size").val(),price:n("#price").val(),discount:n("#discount").val(),query:n("#query").val()},m=n("#list-nav"),w={newest:{order:1,reload:!1,page:1,end:!1},price:{order:0,reload:!0,page:0,end:!1},discount:{order:0,reload:!0,page:0,end:!1}},b=m.find(".active");o(n(".lazy")),d.registerCbFn(i),m.delegate("li","tap",function(){var e,a,s,t=n(this);if(t.hasClass("filter"))t.hasClass("active")?(d.hideFilter(),b.addClass("active"),t.removeClass("active")):(b=t.siblings(".active"),b.removeClass("active"),t.addClass("active"),d.showFilter());else{if(t.hasClass("new")?a="newest":t.hasClass("price")?a="price":t.hasClass("discount")&&(a="discount"),e=w[a],t.hasClass("active")){if(t.hasClass("new"))return;(t.hasClass("price")||t.hasClass("discount"))&&(t.find(".icon > .iconfont").toggleClass("cur"),b=t,e.reload=!0,e.order=0===e.order?1:0)}else{if(s=t.siblings(".active"),b=t,s.hasClass("filter"))d.hideFilter();else switch(p.children(".container:not(.hide)").addClass("hide"),a){case"newest":u.removeClass("hide");break;case"price":h.removeClass("hide");break;case"discount":f.removeClass("hide")}s.removeClass("active"),t.addClass("active")}e.reload&&i()}}),n(window).scroll(function(){n(window).scrollTop()+g>n(document).height()-.25*p.height()&&i()}),l.children(".btn-intro").bind("tap",function(){r.removeClass("hide")}),n(".close-intro, .brand-intro-box").tap(function(){r.addClass("hide")}),n("#brand-intro").tap(function(e){e.stopPropagation()}),l.children(".btn-col").bind("tap",function(){var e,a=n(this),s=l.data("id");e=a.hasClass("coled")?"cancel":"ok",n.ajax({type:"POST",url:"/product/opt/favoriteBrand",data:{id:s,opt:e},success:function(e){200===e.code?a.toggleClass("coled"):400===e.code&&c.show("未登录")},error:function(){c.show("网络断开连接了~")}})})}),define("js/product/detail/detail",["zepto","swiper","lazyload","index"],function(e,a,s){var i,t=e("zepto"),n=e("swiper"),o=e("lazyload");o(t("img.lazy")),i=new n(".banner-swiper",{loop:!0,pagination:".banner-top .pagination-inner",slideElement:"div",nextButton:".swiper-button-next",prevButton:".swiper-button-prev"})});
\ No newline at end of file
define("index",["zepto","swiper","lazyload","mlellipsis","iscroll-probe","index"],function(e,a,s){var i;e("js/common"),e("js/category/entry"),e("js/guang/entry"),e("js/home/entry"),e("js/index/entry"),e("js/passport/entry"),e("js/product/entry"),s.exports=i}),define("js/common",["zepto"],function(e,a,s){function i(e){var a,s,i=document.cookie;return document.cookie&&""!==document.cookie&&(s=i.indexOf(e+"="),s>-1&&(s+=e.length+1,a=decodeURIComponent(r.trim(i.substring(s,i.indexOf(";",s)))))),a}function t(e,a,s){var i,t,n,o,l="";"undefined"!=typeof a&&(s=s||{},null===a&&(a="",s.expires=-1),s.expires&&("number"==typeof s.expires||s.expires.toUTCString)&&("number"==typeof s.expires?(o=new Date,o.setTime(o.getTime()+24*s.expires*60*60*1e3)):o=s.expires,l="; expires="+o.toUTCString()),i=s.path?"; path="+s.path:"",t=s.domain?"; domain="+s.domain:"",n=s.secure?"; secure":"",document.cookie=[e,"=",encodeURIComponent(a),l,i,t,n].join(""))}function n(){var e,a=i("_UID");return"undefined"==typeof a?0:(e=a.split("::"),"undefined"==typeof e||e.length<4?0:e)}function o(){var e=n();return 0===e?0:e[1]}function l(){var e=i("_g");return"undefined"==typeof e?"":JSON.parse(e).k}var r=e("zepto");!function(){var e=r("#yoho-footer"),a=e.children(".op-row"),s=n();r("body").height()<r(window).height()&&e.addClass("bottom"),0===s?a.prepend('<a href="http://m.yohobuy.com/signin.html">登录</a><span class="sep-line">|</span><a href="http://m.yohobuy.com/reg.html">注册</a>'):a.prepend('Hi,<a class="user-name" href="http://m.yohobuy.com/home?tmp='+Math.random()+'">'+s[0]+'</a><a href="http://m.yohobuy.com/passport/signout/index?token='+s[3]+'">退出</a>'),e.removeClass("hide")}(),window.cookie=i,window.setCookie=t,window.getUser=n,window.getUid=o,window.getShoppingKey=l}),define("js/category/entry",["zepto","swiper","lazyload","index"],function(e,a,s){e("js/category/index"),e("js/category/brand")}),define("js/category/index",["zepto"],function(e,a,s){var i=e("zepto"),t=i(".category-nav"),n=i(".category-container > .content"),o=n.not(".hide");i("#search-input").focus(function(){i(this).blur()}),t.delegate("li","tap",function(){var e=i(this),a=e.index();e.hasClass("focus")||(t.find("li.focus").removeClass("focus"),e.addClass("focus"),o.addClass("hide"),o=n.eq(a).removeClass("hide"))}),i(".primary-level").delegate("li","tap",function(){var e=i(this),a=e.index(),s=e.closest(".content").find(".sub-level");e.hasClass("focus")||(e.closest(".primary-level").children(".focus").removeClass("focus"),e.addClass("focus"),s.not(".hide").addClass("hide"),s.eq(a).removeClass("hide"))})}),define("js/category/brand",["zepto","swiper","lazyload","index"],function(e,a,s){var i,t=e("zepto"),n=e("swiper"),o=e("lazyload"),l=t(".brand-list"),r=t(".newbrand-search").height(),d=t(".yoho-header").height(),c=parseInt(r)+parseInt(d);i=new n(".swiper-container",{lazyLoading:!0,loop:!0,autoplay:3e3,pagination:".swiper-pagination .pagination-inner"}),o(t("img.lazy")),t(".yoho-header").css({"z-index":2,position:"fixed"}),t(".banner-top").css("padding-top","90px"),l.length>0&&t(window).scroll(function(){var e=t(window).scrollTop();t(".brand-list").each(function(){var a=t(this).offset().top-c;e>=a?(l.find(".title-bar").css("position","static"),t(this).find(".title-bar").css({position:"fixed",top:c})):t(this).find(".title-bar").css("position","static")})}),t("#right-bar .con").find("b").unbind().on("tap",function(){var e=t(this).index();t(".bar-"+e).size()>0&&(document.body.scrollTop=parseInt(t(".bar-"+e)[0].offsetTop)-parseInt(c-1))})}),define("js/guang/entry",["zepto","lazyload","swiper","mlellipsis","iscroll-probe","index"],function(e,a,s){e("js/guang/plus-star/list"),e("js/guang/plus-star/detail"),e("js/guang/home"),e("js/guang/list"),e("js/guang/detail")}),define("js/guang/plus-star/list",["zepto","lazyload","swiper","index"],function(e,a,s){var i,t=e("zepto"),n=e("lazyload"),o=e("swiper"),l=t("#nav-tab > li"),r=t("#ps-content > .content");n(t("img.lazy")),i=new o(".swiper-container",{lazyLoading:!0,pagination:".swiper-pagination"}),t("#nav-tab").delegate("li","tap",function(){t(this).hasClass("focus")||(l.toggleClass("focus"),r.toggleClass("hide"),t(document).trigger("scroll"))})}),define("js/guang/plus-star/detail",["zepto","mlellipsis","lazyload"],function(e,a,s){var i,t,n=e("zepto"),o=e("mlellipsis"),l=e("lazyload"),r=n("#intro"),d=n("#intro-more-txt"),c=n("#related-infos-container"),p=e("js/guang/info"),u=e("js/plugin/tip"),h=n("#brand-info").data("id");o.init(),l(n("img.lazy")),r[0].mlellipsis(3),setTimeout(function(){i=r.text(),t=r.attr("title")}),p.initInfosEvt(c),n("#more-intro").bind("tap",function(){var e=n(this);e.toggleClass("spread"),e.hasClass("spread")?(r.text(t),d.text("收起")):(r.text(i),d.text("more"))}),n("#brand-like").bind("tap",function(e){var a="ok",s=n(this);e.preventDefault(),s.hasClass("like")&&(a="cancel"),n.ajax({type:"POST",url:"/product/opt/favoriteBrand",data:{id:h,opt:a},success:function(e){200===e.code?s.toggleClass("like"):400===e.code&&u.show("未登录")},error:function(){u.show("网络断开连接了~")}})})}),define("js/guang/info",["zepto","mlellipsis","lazyload"],function(e,a,s){function i(e){r(e.find("img.lazy")),e.each(function(){var e=o(this),a=e.find(".info-title"),s=e.find(".info-text");a[0].mlellipsis(2),s[0].mlellipsis(2)})}function t(e){e.delegate(".like-btn","tap",function(e){var a=o(e.currentTarget),s=a.closest(".guang-info"),i="ok";a.hasClass("like")&&(i="cancel"),o.ajax({type:"POST",url:"/guang/opt/praiseArticle",data:{id:s.data("id"),opt:i},success:function(e){var s=e.code;200===s&&(a.next(".like-count").text(e.data),a.toggleClass("like"))},error:function(){d.show("网络断开连接了~")}})}),i(e.find(".guang-info"))}function n(e,a){f||a.end||(0===a.page&&c.showLoadingMask(),f=!0,o.ajax({type:"GET",url:" /guang/index/page",data:a,success:function(s){return" "===s?(a.end=!0,f=!1,u.addClass("hide"),void h.removeClass("hide")):(e.append(s),i(e.find(".guang-info")),0===a.page&&c.hideLoadingMask(),a.page++,void(f=!1))},error:function(){d.show("网络断开连接了~"),f=!1}}))}var o=e("zepto"),l=e("mlellipsis"),r=e("lazyload"),d=e("js/plugin/tip"),c=e("js/plugin/loading"),p=o("#load-more-info"),u=o(""),h=o(""),f=!1;l.init(),p.length>0&&(u=p.children(".loading"),h=p.children(".no-more")),a.initInfosEvt=t,a.setLazyLoadAndMellipsis=i,a.loadMore=n}),define("js/plugin/tip",["zepto"],function(e,a,s){function i(e,a){var s,i;"undefined"!=typeof e&&(s=e.toString(),i=a&&a>0?a:2e3,t.text(s).show(),n=setTimeout(function(){"block"===t.css("display")&&t.hide()},i))}var t,n,o=e("zepto");!function(){var e='<div id="yoho-tip" class="yoho-tip"></div>';o(".yoho-page").append(e),t=o("#yoho-tip"),t.on("tap",function(){t.hide(),clearTimeout(n)})}(),a.show=i}),define("js/plugin/loading",["zepto"],function(e,a,s){function i(){n.removeClass("hide")}function t(){n.addClass("hide")}var n,o=e("zepto"),l=o(".yoho-page");!function(){var e='<div class="loading-mask hide"><div class="loading"></div></div>';l.append(e),n=l.children(".loading-mask")}(),a.showLoadingMask=i,a.hideLoadingMask=t}),define("js/guang/home",["zepto","swiper","mlellipsis","lazyload","index"],function(e,a,s){var i,t=e("zepto"),n=e("swiper"),o=e("js/guang/info"),l=o.loadMore,r=t("#load-more-info"),d=t(""),c=t(""),p=t(window).height(),u=r.height(),h=t("#info-list"),f=h.children(".info-list"),g=t("#guang-nav"),v=g.children(".focus"),m=v.data("type"),w={};r.length>0&&(d=r.children(".loading"),c=r.children(".no-more")),i=new n(".swiper-container",{lazyLoading:!0,pagination:".swiper-pagination"}),o.initInfosEvt(h),function(){var e=t("#gender").val();g.children(".guang-nav-item").each(function(){var a=t(this).data("type"),s=t(this).hasClass("focus");w[a]={page:s?1:0,gender:e,type:a,end:!1}})}(),g.delegate(".guang-nav-item","tap",function(){var e,a,s=t(this);s.hasClass("focus")||(a=s.index(),s.addClass("focus"),v.removeClass("focus"),f.not(".hide").addClass("hide"),e=f.eq(a),e.removeClass("hide"),v=s,m=s.data("type"),0===w[m].page&&l(e,w[m]),w[m].end?(d.addClass("hide"),c.removeClass("hide")):(d.removeClass("hide"),c.addClass("hide")))}),t(document).scroll(function(){t(window).scrollTop()+p>=t(document).height()-u&&l(f.not("hide"),w[m])})}),define("js/guang/list",["zepto","mlellipsis","lazyload"],function(e,a,s){var i=e("zepto"),t=e("js/guang/info"),n=t.loadMore,o=i(window).height(),l=i("#load-more").height(),r=i("#author-infos"),d=i("#tag"),c={page:1,end:!1},p=i("#info-list");t.initInfosEvt(p),r.length>0&&i.extend(c,{authorId:r.data("id")}),d.length>0&&i.extend(c,{tag:d.val()}),i(document).scroll(function(){i(window).scrollTop()+o>=i(document).height()-l&&n(p,c)})}),define("js/guang/detail",["zepto","mlellipsis","lazyload","iscroll-probe"],function(e,a,s){function i(e){var a=e.offset().left,s=-C+a+w/2+"px";o.css({backgroundPosition:s+" bottom"}),v&&b.css({backgroundPosition:s+" bottom"})}function t(e){var a,s,t,u=p(e.currentTarget),f=u.index();u.hasClass("focus")||(l.filter(".focus").removeClass("focus"),v&&(a=u.closest(".fixed-thumb-container").length>0?o:b,s=a.find(".thumb").eq(f),b.find(".thumb.focus").removeClass("focus"),s.addClass("focus")),u.addClass("focus"),i(u),r.not(".hide").addClass("hide"),t=r.eq(f),t.removeClass("hide"),h(t.find(".lazy")),v?c&&c.scrollToElement(d,400):p("body").animate({scrollTop:n.offset().top},400))}var n,o,l,r,d,c,p=e("zepto"),u=e("mlellipsis"),h=e("lazyload"),f=e("iscroll-probe"),g=p(".author .intro"),v=navigator.userAgent.indexOf("iPhone")>0?!0:!1,m=p(".collocation-block").length>0?!0:!1,w=0,b=p(""),d=document.querySelector("#wrapper .collocation-block"),C=p(window).width();v&&p("#wrapper").addClass("ios"),u.init(),h(p(".lazy")),p(".info-list .title, .one-good .reco-name").each(function(){this.mlellipsis(2)}),parseInt(g.offset().left,10)===parseInt(g.css("margin-left"),10)&&g.css("padding-top",0),m&&(n=p(".collocation-block"),o=n.children(".thumb-container"),l=o.find("li"),r=n.find(".prod"),w=l.width(),v&&(b=p("#wrapper").after(o.clone().addClass("fixed-thumb-container fixed-bottom")).next(".thumb-container"),h(b.find(".lazy"),{event:"sporty"})),i(l.filter(".focus")),o.delegate(".thumb","touchend",t),v&&b.delegate(".thumb","touchend",t)),window.onload=function(){var e,a,s,i,t,l=p("#scroller");if(v){if(c=new f("#wrapper",{probeType:3,mouseWheel:!0,click:!0}),document.addEventListener("touchmove",function(e){e.preventDefault()},!1),!m)return void c.on("scroll",function(){l.trigger("scroll")});e=p(window).height(),t=b[0],a=o.height(),s=n.height(),i=n.offset().top,c.on("scroll",function(){var n=-this.y,o=t.className;i-e+a>=n?-1===o.indexOf("fixed-bottom")&&b.addClass("fixed-bottom").removeClass("hide"):i>=n?-1===o.indexOf("hide")&&b.addClass("hide").removeClass("fixed-bottom fixed-top"):i+s-a>=n?-1===o.indexOf("fixed-top")&&b.addClass("fixed-top").removeClass("hide absolute").css("top",""):i+s>=n?(-1===o.indexOf("absolute")&&b.addClass("absolute").removeClass("fixed-top hide"),t.style.top=i+s-a-n+"px"):n>i+s&&-1===o.indexOf("hide")&&b.addClass("hide").removeClass("absolute"),l.trigger("scroll")})}}}),define("js/home/entry",["zepto","swiper","lazyload","index"],function(e,a,s){e("js/home/home"),e("js/home/maybe-like")}),define("js/home/home",["zepto","swiper","lazyload","index"],function(e,a,s){function i(){m+=10,w.css({transform:"rotateX("+m+"deg)","-webkit-transform":"rotateX("+m+"deg)","-moz-transform":"rotateX("+m+"deg)"}),m/90%2===1&&(b?(w.addClass("animate"),b=!1):(w.removeClass("animate"),b=!0)),m/90%2===0&&m%360!==0?window.setTimeout(i,3e3):m%360===0?window.setTimeout(i,6e4):d(function(){i()})}var t,n,o,l,r,d,c,p,u,h,f=e("zepto"),g=e("swiper"),v=e("lazyload"),m=0,w=f(".home-header .logo"),b=!0;e("js/home/maybe-like"),v(f("img.lazy")),f(".nav-btn").on("tap",function(e){f(this).hasClass("menu-open")||(f(".mobile-wrap").addClass("menu-open"),f(".overlay").addClass("show"),f(".side-nav").addClass("on"),f("body").css({height:f(window).height(),width:"100%",overflow:"hidden"})),e.stopPropagation()}),f(".mobile-wrap").on("tap",function(){f(this).hasClass("menu-open")&&(f(".mobile-wrap").removeClass("menu-open"),f(".overlay").removeClass("show"),f(".sub-nav").removeClass("show"),f(".side-nav").removeClass("on"),f("body").css({height:"auto",overflow:"auto"}))}),f(".side-nav").on("tap","li",function(){f(this).find(".sub-nav").size()>0&&(f(".sub-nav").removeClass("show"),f(this).find(".sub-nav").addClass("show"))}),f(".sub-nav").each(function(){f(this).find("li").eq(0).on("tap",function(e){f(".sub-nav").removeClass("show"),e.stopPropagation()})}),f(".sub-nav").on("mouseenter","li",function(){0!==f(this).index()&&f(this).addClass("current").siblings().removeClass("current")}),f(".banner-swiper").find("li").size()>1&&(t=new g(".banner-swiper",{lazyLoading:!0,lazyLoadingInPrevNext:!0,loop:!0,autoplay:3e3,autoplayDisableOnInteraction:!1,paginationClickable:!0,slideElement:"li",pagination:".banner-top .pagination-inner"})),o=new g(".brands-swiper",{grabCursor:!0,slidesPerView:"auto",wrapperClass:"brands-list",slideElement:"li"}),n=new g(".recommend-swiper",{grabCursor:!0,slidesPerView:"auto",wrapperClass:"recommend-list",slideElement:"li"}),f(".trend-topic-swiper").find("li").size()>1&&(l=new g(".trend-topic-swiper",{loop:!0,autoplay:3e3,autoplayDisableOnInteraction:!1,paginationClickable:!0,slideElement:"li",pagination:".trend-topic-content .pagination-inner"})),f(".category-swiper").each(function(e,a){u="category-swiper"+e,f(this).addClass(u),f("."+u).find(".swiper-slide").size()>1&&(r=new g("."+u,{loop:!0,autoplay:3e3,autoplayDisableOnInteraction:!1,paginationClickable:!0,slideElement:"li",pagination:"."+u+" .pagination-inner"}))}),f(".header-download").on("tap",".close-btn",function(){f(this).parent().remove()}),d=function(){var e=null,a=["webkit","moz","ms"];for(p=0;p<a.length;p++)c=a[p]+"RequestAnimationFrame",window[c]&&(h=!0,e=c);return h?function(a){window[e](a)}:function(e){window.setTimeout(e,67)}}(),i()}),define("js/home/maybe-like",["zepto","lazyload"],function(e,a,s){var i,t,n,o,l=e("zepto"),r=e("js/plugin/tip"),d=e("lazyload"),c=l(window).height(),p=l("#load-more").height(),u=l("#goods-list"),h=!1,f=0,g=l(".mobile-wrap").hasClass("boys-wrap")?"1,3":"2,3",v=l(".mobile-wrap").hasClass("kids-wrap")?!0:!1,m=l(".mobile-wrap").hasClass("lifestyle-wrap")?!0:!1,w=l("#maybe-like-nav");t=v?"/product/recom/maylikekids":m?"/product/recom/maylikelife":"/product/recom/maylike?gender="+g,n=w.children(".focus"),l("#maybe-like-nav").delegate("li","tap",function(){var e,a=l(this),s=l(".goods-list");a.hasClass("focus")||(o=a.index(),a.addClass("focus"),n.removeClass("focus"),s.not(".hide").addClass("hide"),e=s.eq(o),e.removeClass("hide"),n=a,l(document).trigger("scroll"))}),l(window).scroll(function(){if(l(window).scrollTop()+c>=l(document).height()-p){if(h)return;h=!0,i=u.children(".good-info").length,l.ajax({type:"GET",url:t,data:{page:f+1},success:function(e){return" "===e?void(h=!0):(u.append(e),d(l(".good-info").find("img.lazy")),h=!1,void f++)},error:function(){r.show("网络断开连接了~"),h=!1}})}})}),define("js/index/entry",["zepto"],function(e,a,s){e("js/index/search"),e("js/index/channel"),e("js/index/footer")}),define("js/index/search",["zepto"],function(e,a,s){var i=e("zepto"),t=i("#search-input input"),n=i("#search-input .clear-input"),o=i("#search-form"),l=i(".history"),r=i("#clear-history"),d=e("js/index/write-search"),c=d.getRanToken();r.bind("tap",function(){localStorage.removeItem("historys"),l.html("")}),t.bind("input",function(){""===t.val()?n.addClass("hide"):n.removeClass("hide")}),n.bind("tap",function(){t.val("").trigger("input")}),function(){var e,a,s,i="";if(localStorage&&(a=localStorage.getItem("historys"),a&&a.length>0)){for(a=a.split(c),s=0;s<a.length;s++)e=a[s],""!==e&&(i+='<li><a href="/?query='+e+'">'+e+"</li>");l.html(i),r.removeClass("hide")}}(),d.bindWirteLocal(o)}),define("js/index/write-search",[],function(e,a,s){function i(){return n}function t(e){e.on("submit",function(){var e,a=this.query.value;if(localStorage){if(e=localStorage.getItem("historys"),e=e?e:"",e.indexOf(n+a+n)>-1)return;""===e&&(a=n+a),e+=a+n,localStorage.setItem("historys",e)}})}var n=" ??++ ";a.getRanToken=i,a.bindWirteLocal=t}),define("js/index/channel",[],function(e,a,s){}),define("js/index/footer",["zepto"],function(e,a,s){function i(){var e="http://a.app.qq.com/o/simple.jsp?pkgname=com.yoho&g_f=995445",a=new Date;setTimeout(function(){new Date-a<2e3&&(window.location=e)},500)}var t=e("zepto"),n=t(".search-box"),o=t(".index-search"),l=t(".index-logo");t("#float-layer-close").bind("tap",function(){t("#float-layer-app").hide(),window.setCookie("_float-layer-app","id490655927",{domain:".yohobuy.com"}),window.setCookie("_float-layer-app-close",1,{domain:".yohobuy.com",expires:1})}),t("#float-layer-btn").tap(function(){i("bottom")}),window.cookie("_float-layer-app")?t("#float-layer-app").hide():t("#float-layer-app").show(),n.find("input").on("focus",function(){l.css({width:0,display:"none"}),n.css({width:"12.8rem"}),o.css({width:"15.5rem"}),t(".clear-text, .no-search").show()}).on("blur",function(){l.css({width:"5.4rem",display:"block"}),n.css({width:"8.8rem"}),o.css({width:"9.6rem"}),t(".clear-text, .no-search").hide()}),n.find(".clear-text").tap(function(){n.find("input").val("").trigger("focus")}),n.find(".search-icon").tap(function(){o.submit()})}),define("js/passport/entry",["zepto"],function(e,a,s){e("js/passport/register/register"),e("js/passport/register/code"),e("js/passport/register/password"),e("js/passport/login/login"),e("js/passport/login/international"),e("js/passport/back/mobile"),e("js/passport/back/code"),e("js/passport/back/email"),e("js/passport/back/email-success"),e("js/passport/back/new-password")}),define("js/passport/register/register",["zepto"],function(e,a,s){var i=e("zepto"),t=i("#phone-num"),n=i("#country-select"),o=i("#area-code"),l=i("#btn-next"),r=e("js/passport/api"),d=e("js/plugin/tip"),c=i.trim,p=d.show;r.selectCssHack(i("#country-select")),r.bindClearEvt(),t.bind("input",function(){""===c(t.val())?l.addClass("disable"):l.removeClass("disable")}),n.change(function(){o.text(n.val())}),l.on("tap",function(){var e=c(t.val()),a=n.val();l.hasClass("disable")||(r.phoneRegx[a].test(e)?i.ajax({url:"/passport/reg/verifymobile",type:"POST",data:{areaCode:a.replace("+",""),phoneNum:e},success:function(e){200===e.code?location.href=e.data:p(e.message)}}):p("手机号格式不正确,请重新输入"))})}),define("js/passport/api",["zepto"],function(e,a,s){function i(e){var a,s=l(".has-eye");e&&"open"===e.status?s.append('<div class="eye"></div>'):s.append('<div class="eye close"></div>'),a=s.children(".eye"),a.on("tap",function(e){var a=l(this),s=a.siblings(".pwd");e.preventDefault(),a.toggleClass("close"),a.hasClass("close")?s.attr("type","password"):s.attr("type","text"),s.focus()})}function t(){var e,a=l(".has-clear");a.append('<div class="clear-input"></div>'),e=a.children(".clear-input"),e.on("tap",function(a){var s=e.siblings(".input");s.val("").trigger("input").focus(),a.preventDefault()}),a.children(".input").bind("input",function(){var e=l(this),a=e.siblings(".clear-input"),s=r(e.val());""===s?a.hide():a.show()})}function n(e){return e.length>=6&&e.length<=20?!0:!1}function o(e){function a(){var a=e.find("option:selected").text().length;switch(a){case 2:e.outerWidth(90);break;case 3:e.outerWidth(110);break;default:e.outerWidth(130)}}var s=navigator.userAgent;s.match(/uc/i)&&s.match(/android/i)?e.change(function(){a()}):e.removeClass("in-android-uc")}var l=e("zepto"),r=l.trim,d=/^([a-zA-Z0-9]+[_|\_|\.|-]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.|-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/,c={"+86":/^1[35847]{1}[0-9]{9}$/,"+852":/^[965]{1}[0-9]{7}$/,"+853":/^[0-9]{8}$/,"+886":/^[0-9]{10}$/,"+65":/^[98]{1}[0-9]{7}$/,"+60":/^1[1234679]{1}[0-9]{8}$/,"+1":/^[0-9]{10}$/,"+82":/^01[0-9]{9}$/,"+44":/^7[789][0-9]{8}$/,"+81":/^0[9|8|7][0-9]{9}$/,"+61":/^[0-9]{11}$/};s.exports={emailRegx:d,phoneRegx:c,bindEyesEvt:i,bindClearEvt:t,pwdValidate:n,selectCssHack:o}}),define("js/passport/register/code",["zepto"],function(e,a,s){e("js/passport/code")(!0)}),define("js/passport/code",["zepto"],function(e,a,s){var i=e("zepto");s.exports=function(a){function s(){var e,a=59;e=setInterval(function(){0===a?(o.text("重发验证码").removeClass("disable"),clearInterval(e)):o.text("重发验证码 ("+a--+"秒)")},1e3)}var t=i("#captcha"),n=i("#btn-next"),o=i("#captcha-tip"),l=i("#phone-num").val(),r=i("#area-code").val().replace("+",""),d=e("js/passport/api"),c=e("js/plugin/tip"),p=i.trim,u=c.show,h=a?"reg":"back";d.bindClearEvt(),t.bind("input",function(){""!==p(t.val())?n.removeClass("disable"):n.addClass("disable")}),o.on("tap",function(){o.hasClass("disable")||i.ajax({type:"POST",url:"/passport/"+h+"/sendcode",data:{phoneNum:l,areaCode:r},success:function(e){200===e.code?(o.text("重发验证码 (60秒)").addClass("disable"),s()):u(e.message)}})}),n.on("tap",function(){n.hasClass("disable")||i.ajax({type:"POST",url:"/passport/"+h+"/verifycode",data:{phoneNum:l,areaCode:r,code:p(t.val()),token:i("#token").val()},success:function(e){200===e.code?location.href=e.data:u(e.message)}})}),s()}}),define("js/passport/register/password",["zepto"],function(e,a,s){var i=e("zepto"),t=i("#pwd"),n=i("#btn-sure"),o=e("js/passport/api"),l=e("js/plugin/tip"),r=i.trim,d=l.show;o.bindEyesEvt({status:"open"}),t.bind("input",function(){""===r(t.val())?n.addClass("disable"):n.removeClass("disable")}),n.on("tap",function(){var e=r(t.val());n.hasClass("disable")||(o.pwdValidate(e)===!1?d("密码6-20位,请重新输入"):i.ajax({type:"POST",url:"/passport/reg/setpassword",data:{password:e,phoneNum:i("#phone-num").val(),areaCode:i("#area-code").val(),token:i("#token").val()},success:function(e){200===e.code?(d("注册成功"),setTimeout(function(){location.href=e.data},1e3)):401===e.code||404===e.code||505===e.code?d(e.message):(d(e.message),setTimeout(function(){location.href=e.data},1e3))}}))})}),define("js/passport/login/login",["zepto"],function(e,a,s){function i(){u&&h?d.removeClass("disable"):d.addClass("disable")}function t(){c.show(),p.show()}function n(){c.hide(),p.hide()}var o=e("zepto"),l=o("#account"),r=o("#pwd"),d=o("#btn-login"),c=o("#retrive-pwd-mask"),p=o("#retrive-pwd-ways"),u=!1,h=!1,f=e("js/passport/api"),g=e("js/plugin/tip"),v=o.trim,m=g.show;f.bindEyesEvt(),f.bindClearEvt(),l.bind("input",function(){u=""!==v(l.val())?!0:!1,i()}),r.bind("input",function(){h=""===v(r.val())?!1:!0,i()}),d.on("tap",function(){var e=v(l.val()),a=v(r.val());d.hasClass("disable")||((/^[0-9]+$/.test(e)||f.emailRegx.test(e))&&f.pwdValidate(a)?o.ajax({type:"POST",url:"/passport/login/auth",data:{account:e,password:a},success:function(e){200===e.code?(m("登录成功"),setTimeout(function(){location.href=e.data},1e3)):m(e.message)},error:function(){m("网络断开连接啦~")}}):m("账号或密码有错误,请重新输入"))}),o("#forget-pwd").on("tap",function(){t()}),c.on("tap",function(){n()}),o("#cancel-retrive").on("tap",function(e){e.preventDefault(),n()}),l.trigger("input"),r.trigger("input")}),define("js/passport/login/international",["zepto"],function(e,a,s){function i(){c&&p?d.removeClass("disable"):d.addClass("disable")}var t=e("zepto"),n=t("#phone-num"),o=t("#country-select"),l=t("#area-code"),r=t("#pwd"),d=t("#btn-login"),c=!1,p=!1,u=e("js/passport/api"),h=e("js/plugin/tip"),f=t.trim,g=h.show;u.selectCssHack(o),u.bindEyesEvt(),u.bindClearEvt(),n.bind("input",function(){c=""===f(n.val())?!1:!0,i()}),r.bind("input",function(){var e=f(r.val());p=""===e?!1:!0,i()}),o.change(function(){l.text(o.val())}),d.on("tap",function(){var e=f(n.val()),a=o.val(),s=f(r.val());d.hasClass("disable")||(u.phoneRegx[a].test(e)&&u.pwdValidate(s)?t.ajax({type:"POST",url:"/passport/login/auth",data:{areaCode:a.replace("+",""),account:e,password:s},success:function(e){200===e.code?(g("登录成功"),setTimeout(function(){location.href=e.data},1e3)):g(e.message)},error:function(){g("网络断开连接啦~")}}):g("账号或密码有错误,请重新输入"))}),n.trigger("input"),r.trigger("input")}),define("js/passport/back/mobile",["zepto"],function(e,a,s){var i=e("zepto"),t=i("#phone-num"),n=i("#country-select"),o=i("#area-code"),l=i("#btn-next"),r=e("js/passport/api"),d=e("js/plugin/tip"),c=i.trim,p=d.show;r.selectCssHack(i("#country-select")),r.bindClearEvt(),t.bind("input",function(){""===c(t.val())?l.addClass("disable"):l.removeClass("disable")}),n.change(function(){o.text(n.val())}),l.on("tap",function(){var e=c(t.val()),a=n.val();l.hasClass("disable")||(r.phoneRegx[a].test(e)?i.ajax({url:"/passport/back/sendcode",type:"POST",data:{areaCode:a.replace("+",""),phoneNum:e},success:function(e){200===e.code?location.href=e.data:p(e.message)}}):p("手机号格式不正确,请重新输入"))})}),define("js/passport/back/code",["zepto"],function(e,a,s){e("js/passport/code")(!1)}),define("js/passport/back/email",["zepto"],function(e,a,s){var i=e("zepto"),t=i("#email"),n=i("#btn-sure"),o=e("js/passport/api"),l=e("js/plugin/tip"),r=i.trim,d=l.show;o.bindClearEvt(),t.bind("input",function(){""===r(t.val())?n.addClass("disable"):n.removeClass("disable")}),n.on("tap",function(){var e=r(t.val());n.hasClass("disable")||(o.emailRegx.test(e)?i.ajax({url:"/passport/back/sendemail",type:"POST",data:{email:e},success:function(e){200===e.code?location.href=e.data:d(e.message)}}):d("邮箱格式不正确,请重新输入"))})}),define("js/passport/back/email-success",["zepto"],function(e,a,s){var i=e("zepto"),t=i("#resend"),n=e("js/plugin/tip"),o=n.show;t.on("tap",function(e){e.preventDefault(),i.ajax({url:t.data("url"),type:"GET",success:function(e){o(200===e.code?e.message:e.message)}})})}),define("js/passport/back/new-password",["zepto"],function(e,a,s){var i=e("zepto"),t=i("#pwd"),n=i("#btn-ok"),o=e("js/passport/api"),l=e("js/plugin/tip"),r=i.trim,d=l.show,c=i("#phone-num");o.bindEyesEvt(),t.bind("input",function(){""===r(t.val())?n.addClass("disable"):n.removeClass("disable")}),n.on("tap",function(){var e,a,s=r(t.val()),l=!0;n.hasClass("disable")||(e={password:s},0===c.length&&(l=!1),l?(i.extend(e,{phoneNum:c.val(),areaCode:i("#areaCode").val(),token:i("#token").val()}),a="/passport/back/passwordByMobile"):(i.extend(e,{code:i("#email-code").val()}),a="/passport/back/passwordByEmail"),o.pwdValidate(s)?i.ajax({type:"POST",url:a,data:e,success:function(e){200===e.code?(d("密码修改成功"),setTimeout(function(){location.href=e.data},1e3)):d(e.message)}}):d("密码6-20位,请重新输入"))})}),define("js/product/entry",["zepto","swiper","lazyload","index"],function(e,a,s){e("js/product/newsale/newarrival"),e("js/product/newsale/discount"),e("js/product/list"),e("js/product/detail/detail")}),define("js/product/newsale/newarrival",["zepto","swiper","lazyload","index"],function(e,a,s){function i(e){var a,s,i,t,l,d,p={};if(e){for(s in y)y.hasOwnProperty(s)&&(y[s].reload=!0);switch(C.children(".active").removeClass("active"),z.addClass("active"),e.type){case"gender":a={gender:e.id};break;case"brand":a={brand:e.id};break;case"sort":a={sort:e.id};break;case"color":a={color:e.id};break;case"size":a={size:e.id};break;case"price":a={price:e.id};break;case"discount":a={discount:e.id};break;case"limit":a={limit:e.id};break;case"channel":a={channel:e.id};break;case"p_d":a={p_d:e.id}}o.extend(v,a)}if(!n){if(z.hasClass("today")?(t="today",l=1):z.hasClass("week")?(t="week",l=2):z.hasClass("sale")&&(t="sale",l=3),i=y[t],d=i.page+1,i.reload)d=1;else if(i.end)return;o.extend(p,v,{dayLimit:l,page:d}),n=!0,c.showLoadingMask(),o.ajax({type:"GET",url:"/product/newsale/selectNewSale",data:p,success:function(e){var a,s='<p class="no-result">未找到相关搜索结果</p>';switch(t){case"today":a=u;break;case"week":a=h;break;case"sale":a=f}" "===e?(i.end=!0,i.reload&&a.html(s)):(i.reload?a.html(e):a.append(e),r(a.find(".lazy"))),i.reload=!1,i.page=d,n=!1,c.hideLoadingMask()}})}}var t,n,o=e("zepto"),l=e("swiper"),r=e("lazyload"),d=e("js/plugin/filter"),c=e("js/plugin/loading"),p=o("#goods-container"),u=o(p.children().get(0)),h=o(p.children().get(1)),f=o(p.children().get(2)),g=o(window).height(),v={gender:o("#gender").val(),brand:o("#brand").val(),sort:o("#sort").val(),color:o("#color").val(),size:o("#size").val(),price:o("#price").val(),discount:o("#discount").val(),limit:o("#limit").val(),channel:o("#channel").val(),p_d:o("#p_d").val()},m=new Date,w=m.getMonth()+1,b=m.getDate(),C=o("#list-nav"),y={today:{reload:!0,page:0,end:!1},week:{reload:!0,page:0,end:!1},sale:{reload:!0,page:0,end:!1}},z=C.find(".active");h.addClass("hide"),f.addClass("hide"),o("#today a").text(w+"月"+b+"号"),o(".swiper-container .swiper-slide").length>1&&(t=new l(".swiper-container",{lazyLoading:!0,lazyLoadingInPrevNext:!0,loop:!0,autoplay:3e3,autoplayDisableOnInteraction:!1,paginationClickable:!0,pagination:".swiper-pagination"})),r(o(".lazy")),d.registerCbFn(i),C.delegate("li","tap",function(){var e,a,s,t=o(this);if(t.hasClass("filter"))t.hasClass("active")?(d.hideFilter(),z.addClass("active"),t.removeClass("active")):(z=t.siblings(".active"),z.removeClass("active"),t.addClass("active"),d.showFilter());else{if(t.hasClass("today")?a="today":t.hasClass("week")?a="week":t.hasClass("sale")&&(a="sale"),e=y[a],!t.hasClass("active")){if(s=t.siblings(".active"),z=t,s.hasClass("filter"))d.hideFilter();else switch(p.children(".container:not(.hide)").addClass("hide"),a){case"today":u.removeClass("hide");break;case"week":h.removeClass("hide");break;case"sale":f.removeClass("hide")}s.removeClass("active"),t.addClass("active")}e.reload&&i()}}),o(window).scroll(function(){o(window).scrollTop()+g>o(document).height()-.25*p.height()&&void 0!==z&&i()}),i()}),define("js/plugin/filter",["zepto"],function(e,a,s){function i(){r.addClass("hide")}function t(){r.removeClass("hide")}function n(e){o=e}var o,l=e("zepto"),r=l(".filter-mask"),d=r.find(".classify"),c=r.find(".sub-classify");d.children(":first-child").addClass("active"),d.delegate(".classify-item","tap",function(e){var a=l(this);e.stopPropagation(),a.hasClass("active")||(a.siblings(".active").removeClass("active"),a.addClass("active"))}),r.tap(function(){i()}),c.delegate("li","tap",function(e){var a,s,t=l(this),n=t.data("id"),r=t.closest(".sub-classify"),d=r.siblings(".shower");e.stopPropagation(),t.hasClass("chosed")||(r.children(".chosed").removeClass("chosed"),t.addClass("chosed"),a=l.trim(t.html()),s=l.trim(d.html()),d.html(s.substring(0,s.indexOf("</span>")+7)+a.substring(0,a.indexOf("<i"))),0===t.index()?d.addClass("default"):d.removeClass("default"),o&&o({type:r.data("type"),id:n}),i())}),a.showFilter=t,a.hideFilter=i,a.registerCbFn=n}),define("js/product/newsale/discount",["zepto","swiper","lazyload","index"],function(e,a,s){function i(e){var a,s,i,t,l,d={};if(e){for(s in w)w.hasOwnProperty(s)&&(w[s].reload=!0);switch(m.children(".active").removeClass("active"),b.addClass("active"),e.type){case"gender":a={gender:e.id};break;case"brand":a={brand:e.id};break;case"sort":a={sort:e.id};break;case"color":a={color:e.id};break;case"size":a={size:e.id};break;case"price":a={price:e.id};break;case"discount":a={discount:e.id}}o.extend(v,a)}if(!n){if(b.hasClass("new")?t="newest":b.hasClass("price")?t="price":b.hasClass("discount")&&(t="discount"),i=w[t],l=i.page+1,i.reload)l=1;else if(i.end)return;o.extend(d,v,{type:t,order:i.order,page:l}),n=!0,c.showLoadingMask(),o.ajax({type:"GET",url:"/product/newsale/selectNewSale",data:d,success:function(e){var a,s='<p class="no-result">未找到相关搜索结果</p>';switch(t){case"newest":a=u;break;case"price":a=h;break;case"discount":a=f}" "===e?(i.end=!0,i.reload&&a.html(s)):(i.reload?a.html(e):a.append(e),r(a.find(".lazy"))),i.reload=!1,i.page=l,n=!1,c.hideLoadingMask()}})}}var t,n,o=e("zepto"),l=e("swiper"),r=e("lazyload"),d=e("js/plugin/filter"),c=e("js/plugin/loading"),p=o("#goods-container"),u=o(p.children().get(0)),h=o(p.children().get(1)),f=o(p.children().get(2)),g=o(window).height(),v={gender:o("#gender").val(),brand:o("#brand").val(),sort:o("#sort").val(),color:o("#color").val(),size:o("#size").val(),price:o("#price").val(),discount:o("#discount").val()},m=o("#list-nav"),w={newest:{order:1,reload:!0,page:0,end:!1},price:{order:0,reload:!0,page:0,end:!1},discount:{order:0,reload:!0,page:0,end:!1}},b=m.find(".active");o(".swiper-container .swiper-slide").length>1&&(t=new l(".swiper-container",{lazyLoading:!0,lazyLoadingInPrevNext:!0,
loop:!0,autoplay:3e3,autoplayDisableOnInteraction:!1,paginationClickable:!0,pagination:".swiper-pagination"})),r(o(".lazy")),d.registerCbFn(i),m.delegate("li","tap",function(){var e,a,s,t=o(this);if(t.hasClass("filter"))t.hasClass("active")?(d.hideFilter(),b.addClass("active"),t.removeClass("active")):(b=t.siblings(".active"),b.removeClass("active"),t.addClass("active"),d.showFilter());else{if(t.hasClass("new")?a="newest":t.hasClass("price")?a="price":t.hasClass("discount")&&(a="discount"),e=w[a],t.hasClass("active")){if(t.hasClass("new"))return;(t.hasClass("price")||t.hasClass("discount"))&&(t.find(".icon > .iconfont").toggleClass("cur"),b=t,e.reload=!0,e.order=0===e.order?1:0)}else{if(s=t.siblings(".active"),b=t,s.hasClass("filter"))d.hideFilter();else switch(p.children(".container:not(.hide)").addClass("hide"),a){case"newest":u.removeClass("hide");break;case"price":h.removeClass("hide");break;case"discount":f.removeClass("hide")}s.removeClass("active"),t.addClass("active")}e.reload&&i()}}),o(window).scroll(function(){o(window).scrollTop()+g>o(document).height()-.25*p.height()&&void 0!==b&&i()}),i()}),define("js/product/list",["zepto","lazyload"],function(e,a,s){function i(e){var a,s,i,l,r,d={};if(!t){if(e){for(s in C)C.hasOwnProperty(s)&&(C[s].reload=!0);switch(b.children(".active").removeClass("active"),y.addClass("active"),e.type){case"gender":a={gender:e.id};break;case"brand":a={brand:e.id};break;case"sort":a={sort:e.id};break;case"color":a={color:e.id};break;case"size":a={size:e.id};break;case"price":a={price:e.id};break;case"discount":a={discount:e.id}}n.extend(w,a)}if(y.hasClass("new")?l="newest":y.hasClass("price")?l="price":y.hasClass("discount")&&(l="discount"),i=C[l],r=i.page+1,i.reload)r=1;else if(i.end)return;n.extend(d,w,{type:l,order:i.order,page:r}),t=!0,u.showLoadingMask(),n.ajax({type:"GET",url:"/index/search/search",data:d,success:function(e){var a,s='<p class="no-result">未找到相关搜索结果</p>';switch(l){case"newest":a=f;break;case"price":a=g;break;case"discount":a=v}" "===e?(i.end=!0,i.reload&&a.html(s)):(i.reload?a.html(e):a.append(e),o(a.find(".lazy"))),i.reload=!1,i.page=r,t=!1,u.hideLoadingMask()}})}}var t,n=e("zepto"),o=e("lazyload"),l=n("#brand-header"),r=n("#intro-box"),d=e("js/plugin/filter"),c=e("js/index/write-search"),p=e("js/plugin/tip"),u=e("js/plugin/loading"),h=n("#goods-container"),f=h.children(".new-goods"),g=h.children(".price-goods"),v=h.children(".discount-goods"),m=n(window).height(),w={gender:n("#gender").val(),brand:n("#brand").val(),sort:n("#sort").val(),color:n("#color").val(),size:n("#size").val(),price:n("#price").val(),discount:n("#discount").val(),query:n("#query").val()},b=n("#list-nav"),C={newest:{order:1,reload:!0,page:0,end:!1},price:{order:0,reload:!0,page:0,end:!1},discount:{order:0,reload:!0,page:0,end:!1}},y=b.find(".active");o(n(".lazy")),d.registerCbFn(i),c.bindWirteLocal(n("#search-form")),b.delegate("li","tap",function(){var e,a,s,t=n(this);if(t.hasClass("filter"))t.hasClass("active")?(d.hideFilter(),y.addClass("active"),t.removeClass("active")):(y=t.siblings(".active"),y.removeClass("active"),t.addClass("active"),d.showFilter());else{if(t.hasClass("new")?a="newest":t.hasClass("price")?a="price":t.hasClass("discount")&&(a="discount"),e=C[a],t.hasClass("active")){if(t.hasClass("new"))return;(t.hasClass("price")||t.hasClass("discount"))&&(t.find(".icon > .iconfont").toggleClass("cur"),y=t,e.reload=!0,e.order=0===e.order?1:0)}else{if(s=t.siblings(".active"),y=t,s.hasClass("filter"))d.hideFilter();else switch(h.children(".container:not(.hide)").addClass("hide"),a){case"newest":f.removeClass("hide");break;case"price":g.removeClass("hide");break;case"discount":v.removeClass("hide")}s.removeClass("active"),t.addClass("active")}e.reload&&i()}}),n(window).scroll(function(){n(window).scrollTop()+m>n(document).height()-.25*h.height()&&i()}),l.children(".btn-intro").bind("tap",function(){r.removeClass("hide")}),n(".close-intro, .brand-intro-box").tap(function(){r.addClass("hide")}),n("#brand-intro").tap(function(e){e.stopPropagation()}),l.children(".btn-col").bind("tap",function(){var e,a=n(this),s=l.data("id");e=a.hasClass("coled")?"cancel":"ok",n.ajax({type:"POST",url:"/product/opt/favoriteBrand",data:{id:s,opt:e},success:function(e){200===e.code?a.toggleClass("coled"):400===e.code&&p.show("未登录")},error:function(){p.show("网络断开连接了~")}})}),i()}),define("js/product/detail/detail",["zepto","swiper","lazyload","index"],function(e,a,s){var i,t=e("zepto"),n=e("swiper"),o=e("lazyload");o(t("img.lazy")),i=new n(".banner-swiper",{loop:!0,pagination:".banner-top .pagination-inner",slideElement:"div",nextButton:".swiper-button-next",prevButton:".swiper-button-prev"})});
\ No newline at end of file
... ...