Authored by hf

merge fixes bug 2015/10/26

Showing 77 changed files with 980 additions and 454 deletions
... ... @@ -37,12 +37,13 @@ class NewsaleData
* 获取新品到着商品数据
*
* @param string $gender "1,3"表示男, "2,3"表示女, "1,2,3"表示全部
* @param string $channel 1表示男, 2表示女
* @param integer $limit 查询返回的最大限制数, 默认为50
* @param string $channel 1表示男, 2表示女
* @param string $order 排序方式,默认s_t_desc表示按照时间倒序排列
* @param integer $limit 查询返回的最大限制数, 默认为60
* @param integer $page 分页第几页, 默认第1页
* @return array 新品到着商品数据
*/
public static function getNewProducts($gender, $channel, $limit = 50, $page = 1)
public static function getNewProducts($gender, $channel, $order = 's_t_desc', $limit = 60, $page = 1)
{
// 构建url地址列表
$urlList = array();
... ... @@ -50,6 +51,7 @@ class NewsaleData
$param = Yohobuy::param();
$param['method'] = 'app.search.newProduct';
$param['gender'] = $gender;
$param['order'] = $order;
$param['page'] = $page;
$param['limit'] = $limit;
$param['yh_channel'] = $channel;
... ... @@ -89,9 +91,11 @@ class NewsaleData
* @param integer $dayLimit 限制读取多少天,默认为1天
* @param integer $limit 查询返回的最大限制数, 默认为50
* @param integer $page 分页第几页, 默认第1页
* @param string $order 排序方式,默认s_t_desc表示按照时间倒序排列
*
* @return array 根据指定条件筛选出来的商品
*/
public static function selectNewSaleProducts($gender, $brand, $sort, $color, $size, $price, $p_d, $channel, $dayLimit = null, $limit = 50, $page = 1)
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,
... ... @@ -109,9 +113,14 @@ class NewsaleData
});
$param = Yohobuy::param();
$param['method'] = 'app.search.newProduct';
if(!is_null($dayLimit)) {
$param['method'] = 'app.search.newProduct';
}else {
$param['method'] = 'app.search.sales';
}
$param['page'] = $page;
$param['limit'] = $limit;
$param['order'] = $order;
$param['yh_channel'] = $channel;
$param = array_merge($param, $queriedParams);
... ... @@ -140,22 +149,7 @@ class NewsaleData
// 构建url地址列表
$urlList = array();
$param['p_d'] = '0.1,0.3';
$param['client_secret'] = Sign::getSign($param);
$urlList['1-3折'] = Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param);
$param['p_d'] = '0.4,0.6';
unset($param['client_secret']);
$param['client_secret'] = Sign::getSign($param);
$urlList['4-6折'] = Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param);
$param['p_d'] = '0.7,0.9';
unset($param['client_secret']);
$param['client_secret'] = Sign::getSign($param);
$urlList['7-9折'] = Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param);
$param['p_d'] = '0.1,0.9';
unset($param['client_secret']);
$param['client_secret'] = Sign::getSign($param);
$urlList['ALL'] = Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param);
... ...
... ... @@ -146,7 +146,7 @@ class FloorProcess
$build = array();
foreach ($data['list'] as $one) {
$build['url'] = Helpers::getFilterUrl($one['url']);
$build['img'] = Helpers::getImageUrl($one['src'], 140, 140);
$build['img'] = Helpers::getImageUrl($one['src'], 128, 140);
$build['textCn'] = $one['title'];
$result['hotCategory']['list'][] = $build;
}
... ... @@ -314,7 +314,7 @@ class FloorProcess
if (isset($one['url'])) {
$one['url'] = Helpers::getFilterUrl($one['url']);
}
$one['img'] = Helpers::getImageUrl($one['src'], 640, 400);
$one['img'] = Helpers::getImageUrl($one['src'], 640, 403);
unset($one['src']);
}
$data['banner'] = $data['big_image'];
... ... @@ -324,7 +324,7 @@ class FloorProcess
if (isset($one['url'])) {
$one['url'] = Helpers::getFilterUrl($one['url']);
}
$one['img'] = Helpers::getImageUrl($one['src'], 212, 192);
$one['img'] = Helpers::getImageUrl($one['src'], 191, 191);
unset($one['src']);
}
$result['creativeLife'] = $data;
... ...
... ... @@ -150,15 +150,15 @@ class ListProcess
'subs' => array(
array(
'chosed' => true,
'dataId' => 0,
'dataId' => '0.1,0.9',
'name' => '所有商品'
)
)
);
foreach ($data as $one) {
foreach ($data as $key => $one) {
$discount = array();
$discount['dataId'] = $one['count'];
$discount['dataId'] = $key;
$discount['name'] = $one['name'] .'折商品';
$result['subs'][] = $discount;
... ...
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
Created by FontForge 20120731 at Fri Oct 23 16:38:57 2015
By Ads
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
panose-1="2 0 6 3 0 0 0 0 0 0"
ascent="812"
descent="-212"
x-height="792"
bbox="-0.75 -224 3943 812.871"
underline-thickness="50"
underline-position="-100"
unicode-range="U+0078-E628"
/>
<missing-glyph horiz-adv-x="374"
d="M34 0v682h272v-682h-272zM68 34h204v614h-204v-614z" />
<glyph glyph-name=".notdef" horiz-adv-x="374"
d="M34 0v682h272v-682h-272zM68 34h204v614h-204v-614z" />
<glyph glyph-name=".null" horiz-adv-x="0"
/>
<glyph glyph-name="nonmarkingreturn" horiz-adv-x="341"
/>
<glyph glyph-name="x" unicode="x" horiz-adv-x="1001"
d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
<glyph glyph-name="uniE600" unicode="&#xe600;" horiz-adv-x="1463"
d="M798 -160q0 -46 25 -58t61 16l537 420q36 28 36 68t-36 68l-537 424q-36 29 -61 16.5t-25 -57.5v-238q-138 0 -252.5 -24.5t-192 -63.5t-137.5 -94t-94.5 -109t-57.5 -117t-31.5 -109.5t-11 -94t-1.5 -63.5t2 -25q47 62 87 104t90 78t103.5 57.5t127 36.5t161.5 21t207 6
v-262z" />
<glyph glyph-name="uniE601" unicode="&#xe601;"
d="M281 372q-9 -6 -16.5 -14.5t-11.5 -18t-4 -18.5v-7v-483h1q4 -15 13.5 -28t24 -20t30.5 -7h582q28 0 48.5 20t20.5 49t-20.5 49t-48.5 20h41q35 0 59 24.5t24 58.5t-24 58.5t-59 24.5q35 0 59 24t24 59q0 16 -6.5 31.5t-17.5 26.5t-26.5 17.5t-32.5 6.5h-48q21 0 38 10.5
t27.5 27.5t10.5 38v-13q0 31 -22.5 54t-53.5 24q-125 6 -259 9q40 148 16 278q-4 25 -13.5 44.5t-22 31.5t-27 19.5t-29.5 8t-29.5 -2.5t-27.5 -12t-23 -21t-15.5 -30t-5.5 -38q-3 -19 -4.5 -36.5t-2.5 -28.5v-22q-1 -11 -2 -18.5t-2 -16t-3 -16.5t-5.5 -18t-8.5 -23
q-24 -60 -133 -115q-4 -1 -7 -2.5t-6 -3.5l-2 -1v0zM60 356q-25 0 -42.5 -17.5t-17.5 -42.5v-405q0 -25 17.5 -42.5t42.5 -17.5h134v525h-134z" />
<glyph glyph-name="uniE602" unicode="&#xe602;" horiz-adv-x="1323"
d="M643 472q0 -68 -47.5 -116t-113.5 -48q0 -68 47 -116t113.5 -48t113.5 48t47 116t-47 116t-113 48zM643 800q-68 0 -139.5 -21.5t-133 -57t-119 -80.5t-102.5 -93t-79 -94t-52 -84t-18 -62q0 -28 25 -75t68 -102t105 -111t131 -101.5t152 -74.5t161.5 -29t161.5 29
t152 74.5t131 101.5t105 111t68 102t25 75t-25 75t-68 101.5t-105 110.5t-131 102t-152 74.5t-161 28.5zM643 -21q-88 0 -162 44t-117 120t-43 165q0 66 25.5 127t68.5 105t102.5 70t125.5 26q131 0 225 -94q94 -99 96 -234q0 -30 -5.5 -59t-15 -55.5t-23.5 -51.5t-32 -46
t-38.5 -39.5t-44.5 -32.5t-50 -24t-54.5 -15.5t-57.5 -5.5z" />
<glyph glyph-name="uniE603" unicode="&#xe603;"
d="M512 286v343h85v-426h-81v-2h-256v85h252zM512 -224q139 0 257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5t-257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5z" />
<glyph glyph-name="uniE604" unicode="&#xe604;"
d="M774 324q6 -9 9.5 -19t2.5 -20.5t-5.5 -20.5t-12.5 -18l-1 -1l-427 -428q-18 -17 -42.5 -17t-41.5 17q-12 12 -16 27t0 30.5t15 26.5l387 387l-387 387q-17 17 -17 41.5t17.5 42t42 17.5t42.5 -17l427 -428q1 0 1 -1q2 -1 3.5 -2.5t2.5 -3.5z" />
<glyph glyph-name="uniE605" unicode="&#xe605;"
d="M707 748q-55 0 -105 -20.5t-90 -56.5q-40 36 -90 56.5t-105 20.5q-34 0 -67 -8t-62 -23t-54.5 -35.5t-45.5 -46.5t-34.5 -55.5t-22 -63t-7.5 -68.5q0 -110 69 -194l2 -2l344 -391q30 -33 73 -33t73 33l344 391q0 1 1 2h1q22 27 37.5 58.5t23.5 66t8 69.5q0 49 -14.5 94.5
t-42 82.5t-63.5 64.5t-80.5 43t-92.5 15.5z" />
<glyph glyph-name="uniE606" unicode="&#xe606;" horiz-adv-x="1000"
d="M109 415q19 0 35.5 -7t28.5 -19t19.5 -29t7.5 -35q0 -25 -12.5 -45.5t-33 -32.5t-45.5 -12q-37 0 -63.5 26.5t-26.5 63.5t26.5 63.5t63.5 26.5zM515.5 415q37.5 0 63.5 -26.5t26 -63.5t-26 -63.5t-63.5 -26.5t-64 26.5t-26.5 63.5t26.5 63.5t64 26.5zM921 415
q37 0 63.5 -26.5t26.5 -63.5t-26.5 -63.5t-63.5 -26.5t-63.5 26.5t-26.5 63.5t26.5 63.5t63.5 26.5z" />
<glyph glyph-name="uniE607" unicode="&#xe607;" horiz-adv-x="1643"
d="M547 190h-1l45 -46l248 239l-45 46l-201 -194l-195 201l-46 -44z" />
<glyph glyph-name="uniE608" unicode="&#xe608;" horiz-adv-x="1821"
d="M930 135q-14 -13 -33.5 -13t-33.5 13l-252 242q-14 13 -14 32t14 32t34 13t34 -13l251 -242q6 -5 9.5 -11.5t4.5 -13.5t0 -14t-4.5 -13.5t-9.5 -11.5zM360 135q-14 13 -14 32t14 32l251 242q14 13 34 13t34 -13q6 -6 9.5 -15t3.5 -17.5t-3.5 -17t-9.5 -14.5l-252 -242
q-14 -13 -33.5 -13t-33.5 13z" />
<glyph glyph-name="uniE609" unicode="&#xe609;" horiz-adv-x="1821"
d="M930 377l-251 -242q-14 -13 -34 -13t-34 13q-9 9 -12 20.5t0 23.5t12 20l252 242q14 13 33.5 13t33.5 -13t14 -32t-14 -32zM427 441l252 -242q9 -8 12 -20t0 -23.5t-12 -20.5q-14 -13 -34 -13t-34 13l-251 242q-14 13 -14 32t14 32q6 7 15 10.5t18 3.5t18 -3.5t16 -10.5z
" />
<glyph glyph-name="uniE60A" unicode="&#xe60a;"
d="M1024 288q0 -139 -68.5 -257t-186.5 -186.5t-257 -68.5t-257 68.5t-186.5 186.5t-68.5 257t68.5 257t186.5 186.5t257 68.5t257 -68.5t186.5 -186.5t68.5 -257zM801 498l-365 -366l-156 156l-37 -37l193 -193l403 403z" />
<glyph glyph-name="uniE60B" unicode="&#xe60b;" horiz-adv-x="1344"
d="M1280 236h-1216q-27 0 -45.5 18.5t-18.5 45.5t18.5 45.5t45.5 18.5h1216q27 0 45.5 -18.5t18.5 -45.5t-18.5 -45.5t-45.5 -18.5zM1280 -212h-1216q-27 0 -45.5 18.5t-18.5 45.5t18.5 45.5t45.5 18.5h1216q27 0 45.5 -18.5t18.5 -45.5t-18.5 -45.5t-45.5 -18.5zM1280 684
h-1216q-27 0 -45.5 18.5t-18.5 45.5t18.5 45.5t45.5 18.5h1216q27 0 45.5 -18.5t18.5 -45.5t-18.5 -45.5t-45.5 -18.5z" />
<glyph glyph-name="uniE60C" unicode="&#xe60c;"
d="M1024 300q0 -139 -68.5 -257t-186.5 -186.5t-257 -68.5t-257 68.5t-186.5 186.5t-68.5 257t68.5 257t186.5 186.5t257 68.5t257 -68.5t186.5 -186.5t68.5 -257z" />
<glyph glyph-name="uniE60D" unicode="&#xe60d;" horiz-adv-x="1685"
d="M1229 -77l289 -135l58 124l-281 131q-7 -18 -18 -39.5t-23 -41.5t-25 -39zM944 475v-134h137v258q42 47 62 81l-118 69q-2 -4 -8 -12t-24.5 -30.5t-41 -45.5t-60.5 -54.5t-81 -59.5l75 -114q6 4 12.5 8t12.5 8.5t11.5 8.5t11.5 8t11 9zM1524 19v304h-605v-304h137v167
h332v-167h136zM1283 169h-137v-66q0 -26 -13.5 -48.5t-37 -40t-52 -32t-63 -25.5t-64 -19t-60.5 -14l74 -124q55 14 103 30.5t95.5 43t80.5 58t53.5 75.5t20.5 96v66zM1088 570l31 -133q42 9 85 21q19 -49 59 -78q49 -36 120 -36q26 0 49.5 4t42.5 10q69 21 133 78l-67 125
q-7 -7 -17 -16t-24 -20.5t-31 -21t-34 -14.5q-29 -9 -53.5 -8.5t-37.5 9.5q-4 3 -8 9q147 51 240 103l-81 111q-74 -38 -173 -74v85h-137v-129q-50 -14 -97 -25zM755 477v137h-348q11 42 19 84l-134 26q-4 -19 -8 -37.5t-9.5 -36.5t-10.5 -36h-200v-137h142
q-79 -149 -206 -260l90 -103q43 38 85 83v-389h137v165h260v-24h-124l48 -137h83q54 0 92 38t38 92v490h-373q11 22 21 45h398zM312 134h260v-24h-260v24zM312 295h260v-24h-260v24zM1683 732q0 -33 -22.5 -56t-55.5 -23q-22 0 -40 10.5t-28.5 28.5t-10.5 40q0 16 6 30.5
t16.5 25t25.5 16.5t31 6q33 0 55.5 -22.5t22.5 -55.5zM1545 732q0 -10 3 -20t8.5 -17.5t13 -13.5t16.5 -9t19 -3q25 0 41.5 18t16.5 44q0 27 -16.5 45.5t-42.5 18.5q-25 0 -42 -18.5t-17 -44.5zM1592 691h-17v79q17 2 29 2q18 0 26 -6q2 -1 3.5 -3t2.5 -4t1.5 -4.5t0.5 -5.5
q0 -7 -4.5 -11.5t-11.5 -7.5v-1q10 -3 14 -19q1 -8 2.5 -12t3.5 -7h-19q-2 3 -6 19q-2 12 -16 12h-9v-31zM1593 735h8q18 0 18 12q0 5 -4 8.5t-12 3.5q-4 0 -6 -0.5t-4 -0.5v-23z" />
<glyph glyph-name="uniE60E" unicode="&#xe60e;" horiz-adv-x="3958"
d="M611 639h-177l-150 -222l-95 222h-178l168 -395v-2l-31 -243h156l30 231zM699 481q-100 0 -179.5 -72.5t-92.5 -175.5q-13 -105 51 -178q61 -68 157 -68q99 0 178.5 72.5t92.5 175.5q13 104 -51 177q-60 69 -156 69zM759 233q-2 -16 -8.5 -31.5t-16.5 -27.5t-22.5 -21.5
t-27 -14.5t-29.5 -5q-12 0 -23 3t-20.5 9t-16.5 15q-13 14 -18.5 33.5t-2.5 41.5q2 16 8.5 31t16.5 27.5t22.5 21.5t27.5 14.5t30 5.5q36 0 59 -27q27 -30 21 -75zM1656 481q-65 0 -124.5 -33t-99 -90.5t-48.5 -124.5q-13 -105 51 -178q20 -22 44.5 -37t53 -23t59.5 -8
q99 0 178.5 72.5t92.5 175.5q3 25 1.5 49.5t-8 47t-17.5 43t-27 37.5q-29 34 -69.5 51.5t-86.5 17.5zM1717 233q-4 -27 -19 -50t-38 -36.5t-48 -13.5q-18 0 -33.5 7t-26.5 20q-13 14 -18.5 33.5t-2.5 41.5q5 41 36 70.5t69 29.5q8 0 16.5 -2t16 -5.5t14.5 -8.5t13 -11
q26 -30 21 -75zM1332 418q-44 50 -114 50q-13 0 -25.5 -1.5t-24.5 -5t-24 -9t-23 -11.5l-10 -6l26 204h-156l-80 -640h155l37 288q3 24 22 41t43 17q12 0 22.5 -4.5t17.5 -12.5q16 -18 12 -42l-36 -287h156l37 298q2 13 1.5 26.5t-3 26.5t-7 25t-11 23t-15.5 20zM2949 460
l-37 -288q-3 -24 -22 -41t-44 -17q-24 0 -39 17q-5 6 -8.5 12.5t-4.5 14t0 15.5l37 287h-156l-38 -298q-9 -71 36 -121q21 -25 50.5 -37.5t63.5 -12.5q25 0 49.5 7t47.5 20l9 6l-3 -25h156l58 461h-155zM1951 639l-55 -432h156l55 432h-156zM1970 168q-18 0 -36 -7.5
t-31.5 -19.5t-22.5 -28.5t-12 -34.5q-4 -37 19 -63q11 -13 26 -19.5t33 -6.5q37 0 67 26.5t34 63.5q5 37 -18 63q-4 5 -9.5 9t-11 7t-12 5.5t-13 3.5t-13.5 1zM2608 178q4 34 -3.5 64.5t-26.5 55t-47 39.5l-8 5l8 5q19 10 35.5 25t28.5 32.5t19.5 37t10.5 40.5q8 63 -30 108
q-37 44 -97 48l-6 1h-314l-81 -640h317q72 3 128.5 55t65.5 124zM2451 200q-3 -27 -25 -46.5t-50 -19.5h-106l17 134h107q27 -1 43.5 -20.5t13.5 -47.5zM2483 447q-2 -16 -12 -30t-25 -22.5t-31 -8.5h-113l15 124h112q25 0 41.5 -18.5t12.5 -44.5zM3132 -211q65 0 124 37.5
t89 99.5l264 534h-156l-127 -258l-63 258h-156l113 -471l-7 -14q-8 -18 -25 -29t-36 -11q-5 0 -10 1t-10 3l-29 11l-67 -139l29 -10q31 -12 67 -12zM3943 646q0 -16 -3 -31.5t-9 -29.5t-14.5 -26.5t-19 -23t-23 -19t-26.5 -14.5t-29.5 -9t-31.5 -3q-32 0 -61 12t-50 33
t-33 50t-12 61q0 43 20.5 79t57 56.5t79.5 20.5q65 0 110 -45t45 -111zM3670 646q0 -25 9 -48t24.5 -40t37.5 -26.5t47 -9.5q24 0 46 9.5t37 26t24 39.5t9 48q0 53 -33.5 89.5t-84.5 36.5q-32 0 -59 -17t-42 -45.5t-15 -62.5zM3763 566h-35v155q11 2 16.5 2.5t18 1.5t23.5 1
q21 0 32.5 -3t19.5 -9q7 -6 11.5 -14.5t4.5 -19.5q0 -13 -8.5 -22.5t-23.5 -14.5v-2q20 -6 27 -37q2 -9 3.5 -15.5t3 -11t2.5 -7t2 -4.5h-37q-4 5 -12 38q-2 12 -9.5 17.5t-21.5 5.5h-17v-61zM3764 653h17q35 0 35 23t-32 23q-7 0 -12 -0.5t-8 -0.5v-45z" />
<glyph glyph-name="uniE60F" unicode="&#xe60f;"
d="M682 74q-108 -89 -249 -89q-53 0 -104.5 14.5t-94.5 39.5t-79.5 61.5t-61.5 79.5t-39.5 94t-14.5 105q0 107 53 197.5t143.5 143.5t197.5 53t197.5 -53t143.5 -143.5t53 -197.5q0 -141 -89 -249l286 -286l-56 -56zM433 64q131 0 223 92t92 222.5t-92 223t-223 92.5
t-223 -93q-91 -93 -92 -222q0 -86 42 -158.5t115 -114.5t158 -42z" />
<glyph glyph-name="uniE610" unicode="&#xe610;"
d="M245 300l-9 9l472 472l80 -80l-400 -401l400 -401l-80 -80l-472 472z" />
<glyph glyph-name="uniE611" unicode="&#xe611;"
d="M509 780q-4 -2 -245 -245q-221 -224 -235 -245q-6 -9 -6 -15q0 -35 42 -33q7 0 233 227l225 228l226 -228q105 -106 167 -166.5t65 -60.5q21 -1 31.5 7.5t10.5 25.5q0 12 -32 46q-33 36 -206 212q-241 243 -246 246q-15 8 -30 1zM171 245q-12 -8 -14 -38.5t-2 -188
t2 -188t14 -38.5q7 -6 352.5 -6t352.5 6q11 8 13 36q2 30 2 190q0 158 -2 188.5t-13 38.5q-8 7 -21.5 5.5t-21.5 -10.5l-10 -9v-381h-600v381l-10 9q-15 16 -36 9q-4 -2 -6 -4zM398 202l-11 -12v-215l11 -12q6 -8 11 -10.5t14 -2.5q16 0 26 13l10 12v175h128v-175l11 -12
q7 -9 16 -12t18.5 0t16.5 12l10 12v215l-20 24h-231z" />
<glyph glyph-name="uniE612" unicode="&#xe612;"
d="M951 -7h-878l439 614z" />
<glyph glyph-name="uniE613" unicode="&#xe613;"
d="M512 -7l-439 614h878z" />
<glyph glyph-name="uniE614" unicode="&#xe614;"
d="M313 -49l349 349l-349 349q-7 7 -7 16.5t6.5 16t16 6.5t16.5 -6l345 -345q16 -15 21 -20q7 -7 7 -17t-7 -17q-4 -4 -25.5 -25t-22.5 -22l-318 -318q-7 -6 -16.5 -6t-16 6.5t-6.5 16t7 16.5z" />
<glyph glyph-name="uniE615" unicode="&#xe615;"
d="M527.5 475q2.5 0 4.5 -1l6 -2q2 -1 3 -3l293 -288q3 -3 5 -6.5t2 -7.5t-1.5 -8t-4.5 -7q-6 -6 -14.5 -6t-14.5 6l-279 273l-278 -273q-7 -6 -15 -6t-14 6t-6 14.5t6 14.5l293 288q2 2 4 3t5 2t5.5 1z" />
<glyph glyph-name="uniE616" unicode="&#xe616;"
d="M527 146q-4 0 -7.5 1.5t-6.5 4.5l-293 288q-6 6 -6 14t6 14.5t14 6.5t15 -6l278 -274l279 274q6 6 14.5 6t14.5 -6.5t5.5 -14.5t-6.5 -14l-293 -288q-5 -6 -14 -6z" />
<glyph glyph-name="uniE617" unicode="&#xe617;" horiz-adv-x="1030"
d="M-195 162zM520 770q-98 0 -187.5 -38t-154 -102.5t-102.5 -154t-38 -187.5q0 -79 24 -152.5t69 -132.5t104 -103.5t132.5 -69t152.5 -24.5q98 0 187.5 38t154 102.5t102.5 154t38 187.5t-38 187.5t-102.5 154t-154 102.5t-187.5 38zM857 485l-339 -451l-328 238
q-12 9 -14 23.5t7 26.5q5 8 13.5 11.5t18 2.5t17.5 -6l271 -198l297 396q6 8 14.5 11.5t18 2.5t17.5 -7q12 -9 14 -23.5t-7 -26.5z" />
<glyph glyph-name="uniE618" unicode="&#xe618;"
d="M224 192q-40 0 -68 28t-28 68t28 68t68 28t68 -28t28 -68t-28 -68t-68 -28zM512 192q-40 0 -68 28t-28 68t28 68t68 28t68 -28t28 -68t-28 -68t-68 -28zM800 192q-40 0 -68 28t-28 68t28 68t68 28t68 -28t28 -68t-28 -68t-68 -28z" />
<glyph glyph-name="uniE619" unicode="&#xe619;"
d="M126 225q30 0 50.5 21.5t20.5 52.5q0 33 -20.5 54.5t-51 21.5t-51.5 -21.5t-21 -54.5q0 -45 38 -66q17 -8 35 -8zM512 225q15 0 28.5 5.5t23 15.5t15 24t5.5 29q0 9 -2 18t-5.5 16.5t-8 14t-10.5 11.5t-13.5 9t-15.5 5.5t-17 1.5q-30 0 -51 -21.5t-21 -54.5q0 -45 38 -66
q16 -8 34 -8zM899.5 225q30.5 0 51 21.5t20.5 52.5q0 9 -2 18t-5.5 16.5t-8 14t-11 11.5t-13.5 9t-15 5.5t-17 1.5q-20 0 -36.5 -9.5t-26 -27t-9.5 -39.5q0 -31 21 -52.5t51.5 -21.5z" />
<glyph glyph-name="uniE61A" unicode="&#xe61a;"
d="M512 -146q-91 0 -173.5 35.5t-142 95t-95 142t-35.5 173.5q0 61 16 118.5t45 106.5t70 90t90 70t106.5 45t118.5 16q91 0 173.5 -35.5t142 -95t95 -142t35.5 -173.5q0 -61 -16 -118.5t-45 -106.5t-70 -90t-90 -70t-106.5 -45t-118.5 -16zM512 682q-104 0 -192 -51
t-139 -139t-51 -192t51 -192t139 -139t192 -51t192 51t139 139t51 192t-51 192t-139 139t-192 51zM512 508zM464 508q0 20 14 34t34 14t34 -14t14 -34t-14 -34t-34 -14t-34 14t-14 34zM512 44q-13 0 -22.5 9.5t-9.5 22.5v288q0 13 9.5 22.5t22.5 9.5t22.5 -9.5t9.5 -22.5
v-288q0 -13 -9.5 -22.5t-22.5 -9.5z" />
<glyph glyph-name="uniE61B" unicode="&#xe61b;"
d="M437 41h-193q-27 2 -41.5 22.5t-17.5 45.5q3 25 17.5 41t41.5 18h193v63l-193 1q-27 2 -41.5 19t-17.5 43q3 25 17.5 41t41.5 18h144l-134 236q-10 12 -19 30.5t-8 40.5q5 28 20 45.5t56 22.5q24 -2 43 -16.5t31 -31.5l152 -278l167 280q12 17 31 30t43 16q15 -1 27.5 -4
t22 -10t16 -20t9.5 -34q0 -29 -20 -55l-155 -252h147q26 -2 41 -18t17 -41q-2 -26 -17.5 -44t-41.5 -20l-191 -1v-61h192q26 -2 41 -20t17 -43q-2 -26 -17 -43.5t-41 -19.5l-192 1v-106q-4 -85 -93 -85q-44 0 -68.5 21t-26.5 64v104z" />
<glyph glyph-name="uniE61C" unicode="&#xe61c;"
d="M946 -196h-868q-26 0 -44 18t-18 44v868q0 26 18 44t44 18h868q26 0 44 -18t18 -44v-868q0 -26 -18 -44t-44 -18zM946 703q0 13 -9 22t-22 9h-806q-13 0 -22 -9t-9 -22v-806q0 -13 9 -22t22 -9h806q13 0 22 9t9 22v806z" />
<glyph glyph-name="uniE61D" unicode="&#xe61d;"
d="M939 -202h-876q-17 0 -31.5 8.5t-23 23t-8.5 31.5v876q0 26 18.5 44.5t44.5 18.5h876q26 0 44.5 -18.5t18.5 -44.5v-876q0 -39 -35 -57q-14 -6 -28 -6zM814 612l-376 -438l-250 188l-63 -126l313 -250l439 501z" />
<glyph glyph-name="uniE61E" unicode="&#xe61e;"
d="M224 211l416 410l179 -179l-416 -410zM659 525l-19 19l-333 -333l19 -19zM698 486l-20 20l-332 -333l19 -19zM736 448l-19 19l-333 -333l19 -19zM717 704q14 14 38 14t39 -14l102 -102q6 -6 9.5 -14t4.5 -16.5t0 -17t-4.5 -16.5t-9.5 -13l-64 -58l-173 173zM211 186
l167 -167l-148 -51l-70 70zM205 -45l-83 -32l32 83z" />
<glyph glyph-name="uniE61F" unicode="&#xe61f;"
d="M512 812q-138 0 -256 -69t-187 -187t-69 -256t69 -256t187 -187t256 -69t256 69t187 187t69 256t-69 256t-187 187t-256 69zM563 44h-102v307h102v-307zM563 454h-102v102h102v-102z" />
<glyph glyph-name="uniE620" unicode="&#xe620;"
d="M938 276h-400v274h-50v-274h-399q-15 0 -29 5.5t-24 15.5t-16 24t-6 29v175q0 31 22 53t53 22h90q-18 21 -29 46t-11 54q0 27 10 47.5t25 30t29.5 15t24.5 6.5l11 1q53 0 100 -15.5t81 -42t56 -50t39 -50.5q17 27 39.5 51t56 50t79.5 41.5t98 15.5h4q2 0 8.5 -1.5
t13.5 -3t16 -5.5t16.5 -9t15.5 -13t13.5 -17.5t9 -23.5t3.5 -30q0 -28 -9.5 -52t-25.5 -45h85q31 0 53 -22t22 -53v-175q0 -44 -39 -65q-17 -9 -36 -9zM264 725q-15 0 -26 -2.5t-15.5 -6t-6.5 -7.5t-2 -6v-3q0 -49 66 -100h173q-14 30 -30 52.5t-34 35.5t-33 21t-34.5 11.5
t-30 4t-27.5 0.5zM763 723q-13 0 -20 -0.5t-21.5 -1.5t-24.5 -4.5t-24 -9t-25.5 -14.5t-24 -21.5t-24.5 -30.5t-22 -41h177q59 50 59 97v3q0 2 -2 6.5t-7 7.5t-15.5 6t-25.5 3zM488 -224h-349q-15 0 -29 6t-24 16t-16 24t-6 29v375h424v-450zM538 226h400v-375
q0 -31 -22 -53t-53 -22h-325v450z" />
<glyph glyph-name="uniE621" unicode="&#xe621;"
d="M160 492v-640q0 -26 19 -45t45 -19h576q26 0 45 19t19 45v640h-704zM352 -84h-64v448h64v-448zM480 -84h-64v448h64v-448zM608 -84h-64v448h64v-448zM736 -84h-64v448h64v-448zM880 684h-208v80q0 20 -14 34t-34 14h-224q-8 0 -15 -2.5t-13 -7t-10.5 -10.5t-7 -13
t-2.5 -15v-80h-208q-20 0 -34 -14t-14 -34v-80h832v80q0 6 -1.5 11t-3.5 10t-5.5 9t-7.5 7.5t-9 5.5t-10 3.5t-11 1.5zM608 684h-192v63h192v-63z" />
<glyph glyph-name="uniE622" unicode="&#xe622;" horiz-adv-x="1173"
d="M586 588q-64 150 -188 203q-114 47 -222 -7q-112 -56 -155 -192q-20 -67 -21 -144q0 -41 9 -78.5t24 -66.5t39 -57.5t47 -48.5t55.5 -43t56.5 -38t58.5 -35.5t53.5 -33.5q63 -42 118 -94.5t86.5 -95t39.5 -69.5q4 19 25.5 50t53.5 66t75 74t88 71q21 15 53.5 35.5t58 36
t57 38t55 43t47 48t39 56.5t25 66.5t8.5 78.5q0 75 -19.5 138t-52.5 105.5t-76.5 70.5t-91 37.5t-98 1t-96 -34.5t-85.5 -72.5t-67 -108.5z" />
<glyph glyph-name="uniE623" unicode="&#xe623;"
d="M835 576l-60 63l-263 -275v0l-263 275l-60 -63l262 -276l-262 -276l60 -63l263 275v0l263 -275l60 63l-262 276z" />
<glyph glyph-name="uniE624" unicode="&#xe624;" horiz-adv-x="1000"
d="M459 754h22h23h20h22h22v-191v-191h191h191v-109h-191h-191v-191v-190h-109v190v191h-191h-190q-1 37 -1 109h128h127h127v116v150v116z" />
<glyph glyph-name="uniE625" unicode="&#xe625;" horiz-adv-x="1000"
d="M77 372h873v-109h-873v109z" />
<glyph glyph-name="uniE626" unicode="&#xe626;"
d="M866.5 663.5q-97.5 97.5 -228 132t-261.5 0t-228.5 -132t-132 -228.5t0 -261.5t132 -228t228.5 -132t261.5 0t228 132t132 228t0 261.5t-132 228.5zM798 115l-101 -101l-187 186l-186 -186l-101 101l186 186l-186 187l101 101l186 -186l187 186l101 -101l-186 -187z" />
<glyph glyph-name="uniE628" unicode="&#xe628;"
d="M505 776q77 0 148.5 -23.5t129 -67t101 -101.5t67.5 -129.5t24 -147.5q0 -64 -17 -125t-47.5 -112t-74 -94.5t-94.5 -74t-112 -47.5t-125 -17q-95 0 -182 37.5t-150 100.5t-100 150t-37 182t37 182t100 150t150 100t182 37zM505 -104q112 0 206.5 55t149.5 149.5
t55 206.5q0 37 -6.5 73.5t-19.5 69.5t-30.5 64t-40.5 57.5t-49.5 49.5t-57.5 40.5t-64 30t-69.5 19t-73.5 6.5q-111 0 -205.5 -55t-149.5 -149.5t-55 -206t55 -206t149.5 -149.5t205.5 -55zM528 138v-59h-58v59h58zM470 564h58v-349h-58v349z" />
</font>
</defs></svg>
/**
* 分类
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/14
* 品牌一览
* @author: liangzhifeng<zhifeng.liang@yoho.cn>
* @date: 2015/10/23
*/
var $ = require('yoho.zepto'),
... ... @@ -17,4 +17,9 @@ swiper = new Swiper('.swiper-container', {
pagination: '.swiper-pagination'
});
lazyLoad($('img.lazy'));
\ No newline at end of file
lazyLoad($('img.lazy'));
$('.yoho-header').css({
'z-index': 2,
position: 'fixed'
});
$('.banner-top').css('padding-top', '90px');
\ No newline at end of file
... ...
... ... @@ -24,23 +24,6 @@ $('#clear-history').bind('touchstart', function() {
});
});
$('#search').bind('touchstart', function() {
var val = $input.val();
$.ajax({
type: 'POST',
url: '/search',
data: {
val: val
},
success: function(data) {
if (data.code === 200) {
location.href = data.data;
}
}
});
});
$input.bind('input', function() {
if ($input.val() === '') {
$clear.addClass('hide');
... ...
... ... @@ -191,7 +191,7 @@ function search(opt) {
lazyLoad($container.find('.lazy'));
}
nav.reload = true;
nav.reload = false;
nav.page = page;
searching = false;
... ...
/**
* 商品列表页
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2015/10/20
*/
var $ = require('yoho.zepto'),
Swiper = require('yoho.iswiper'),
lazyLoad = require('yoho.zeptolazyload');
var $curNav,
$navList = $('#discount-nav'),
$newArrivalList = $('#discount-goods-list'),
$goods = $newArrivalList.children('.goods-list'),
$goodList = $('.goods-list');
var swiper;
var index = 0,
winH = $(window).height(),
loadMoreH = $('#load-more').height(),
loading = false,
page = 0,
pd = "";
var filter = require('../../plugin/filter');
var $goodsContainer = $('#goods-container'),
$ngc = $goodsContainer.children('.new-goods'),
$pgc = $goodsContainer.children('.price-goods'),
$dgc = $goodsContainer.children('.discount-goods');
var winH = $(window).height();
//默认筛选条件
var defaultOpt = {
gender: $('#gender').val(),
brand: $('#brand').val(),
msort: $('#msort').val(),
color: $('#color').val(),
size: $('#size').val(),
price: $('#price').val(),
discount: $('#discount').val()
};
var $listNav = $('#list-nav'),
//导航数据信息
navInfo = {
newest: {
order: 1,
reload: true,
page: 0,
end: false
},
price: {
order: 0,
reload: true,
page: 0,
end: false
},
discount: {
order: 0,
reload: true,
page: 0,
end: false
}
},
$pre, //纪录进入筛选前的active项
searching;
swiper = new Swiper('.swiper-container', {
lazyLoading: true,
pagination: '.swiper-pagination'
});
lazyLoad($('img.lazy'));
$curNav = $navList.children('.focus');
/**
* 筛选注册的回调,筛选子项点击后逻辑
* 需要执行search的场景:1.点选筛选项;2.relaod为true时切换导航;3.下拉加载
* @param opt {type, id}
*/
function search(opt) {
var setting = {},
ext,
att,
nav, navType,
page;
$('#discount-nav').delegate('li', 'touchstart', function() {
var $this = $(this),
$content;
if (opt) {
//筛选项变更则重置reload为true
for (att in navInfo) {
if (navInfo.hasOwnProperty(att)) {
navInfo[att].reload = true;
}
}
//处理active状态
$listNav.children('.active').removeClass('active');
$pre.addClass('active');
if ($this.hasClass('focus')) {
switch (opt.type) {
case 'gender':
ext = {
gender: opt.id
};
break;
case 'brand':
ext = {
brand: opt.id
};
break;
case 'msort':
ext = {
msort: opt.id
};
break;
case 'color':
ext = {
color: opt.id
};
break;
case 'size':
ext = {
size: opt.id
};
break;
case 'price':
ext = {
price: opt.id
};
break;
case 'discount':
ext = {
discount: opt.id
};
break;
}
$.extend(defaultOpt, ext); //扩展筛选项
}
if (searching) {
return;
}
index = $this.index();
pd = getSalePdByChoose(index);
//导航类别
if ($pre === undefined || $pre.hasClass('new')) {
navType = 'newest';
} else if ($pre.hasClass('price')) {
navType = 'price';
} else if ($pre.hasClass('discount')) {
navType = 'discount';
}
$this.addClass('focus');
$curNav.removeClass('focus');
nav = navInfo[navType];
$goods.not('.hide').addClass('hide');
$content = $goods.eq(index);
$content.removeClass('hide');
page = nav.page + 1;
if (nav.reload) {
page = 1;
} else if (nav.end) {
$curNav = $this;
//不需要重新加载并且数据请求结束
return;
}
$(document).trigger('scroll'); //Trigger lazyLoad
});
$.extend(setting, defaultOpt, {
type: navType,
order: nav.order,
page: page
});
//srcoll to load more
$(window).scroll(function () {
if ($(window).scrollTop() + winH >= $(document).height() - loadMoreH) {
if (loading) {
return;
}
loading = true;
// num = $goodList.children('.good-info').length;
$.ajax({
type: 'GET',
url: '/product/newsale/selectNewSale',
data: {
p_d: pd,
page: page + 1
},
success: function(data) {
if (data === ' ') {
//opt.end = true;
loading = false;
return;
searching = true;
$.ajax({
type: 'GET',
url: '/product/newsale/selectNewSale',
data: setting,
success: function(data) {
var noResult = '<p class="no-result">未找到相关搜索结果</p>',
$container;
switch (navType) {
case 'newest':
$container = $ngc;
break;
case 'price':
$container = $pgc;
break;
case 'discount':
$container = $dgc;
break;
}
if (data === ' ') {
nav.end = true;
if (nav.reload) {
$container.html(noResult);
}
} else {
if (nav.reload) {
$container.html(data);
} else {
$container.append(data);
}
lazyLoad($container.find('.lazy'));
}
nav.reload = false;
nav.page = page;
$goodList.append(data);
searching = false;
}
});
}
lazyLoad($('.lazy'));
filter.registerCbFn(search);
//导航栏点击逻辑说明:
//1.点击非active项时切换active状态
//2.价格和折扣active状态时继续点击切换排序
//3.筛选无active时点击展开筛选面板
//4.筛选有active时点击隐藏筛选面板并恢复点击筛选前active项的active状态
//5.当前active为筛选并且点击其他项时,隐藏筛选面板
$listNav.delegate('li', 'touchstart', function() {
var $this = $(this),
nav,
navType,
$active;
if ($this.hasClass('filter')) {
//筛选面板切换状态
if ($this.hasClass('active')) {
filter.hideFilter();
//点击筛选钱的active项回复active
$pre.addClass('active');
$this.removeClass('active');
} else {
$pre = $this.siblings('.active');
//lazyLoad
//lazyLoad($goodList.children('.good-info:gt(' + (num - 1) + ')').find('img.lazy'));
lazyLoad($('.good-info').find('img.lazy'));
$pre.removeClass('active');
$this.addClass('active');
loading = false;
page++;
},
error: function() {
tip.show('网络断开连接了~');
loading = false;
filter.showFilter();
}
} else {
if ($this.hasClass('new')) {
navType = 'newest';
} else if ($this.hasClass('price')) {
navType = 'price';
} else if ($this.hasClass('discount')) {
navType = 'discount';
}
nav = navInfo[navType];
if ($this.hasClass('active')) {
//最新无排序切换
if ($this.hasClass('new')) {
return;
}
});
}
if ($this.hasClass('price') || $this.hasClass('discount')) {
// 价格/折扣切换排序状态
$this.find('.icon > .iconfont').toggleClass('cur');
$pre = $this; //更新pre为当前项
nav.reload = true; //重置reload,HTML会被替换为逆序的HTML
nav.order = nav.order === 0 ? 1 : 0; //切换排序
}
} else {
$active = $this.siblings('.active');
$pre = $this; //$pre为除筛选导航的其他导航项,若当前active的为筛选,则把$pre置为当前点击项
if ($active.hasClass('filter')) {
//若之前active项为筛选,则隐藏筛选面板
filter.hideFilter();
} else {
//切换container显示
$goodsContainer.children('.container:not(.hide)').addClass('hide');
switch (navType) {
case 'newest':
$ngc.removeClass('hide');
break;
case 'price':
$pgc.removeClass('hide');
break;
case 'discount':
$dgc.removeClass('hide');
break;
}
}
$active.removeClass('active');
$this.addClass('active');
}
if (nav.reload) {
search();
}
}
});
/**
* 根据用户的选择获取商品折扣值
*
* @param int index
* @return string
*/
function getSalePdByChoose(index) {
var pd = "0.1,0.3";
switch (index) {
case 0:
pd = "0.1,0.3";
break;
case 1:
pd = "0.4,0.6";
break;
case 2:
pd = "0.7,0.9";
break;
case 3:
pd = "0.1,0.9";
break;
$(window).scroll(function() {
//当scroll到1/4$goodsContainer高度后继续请求下一页数据
if ($(window).scrollTop() + winH >
$(document).height() - 0.25 * $goodsContainer.height()) {
search();
}
return pd;
}
\ No newline at end of file
});
... ...
/**
* 新品到着
* @author: liangzhifeng<zhifeng.liang@yoho.cn>
* @date: 2015/10/24
*/
var $ = require('yoho.zepto'),
tip = require('../../plugin/tip'),
Swiper = require('yoho.iswiper'),
lazyLoad = require('yoho.zeptolazyload');
var $curNav,
$navList = $('#newarrival-nav'),
$newArrivalList = $('#newarrival-goods-list'),
$goods = $newArrivalList.children('.goods-list');
var swiper;
var filter = require('../../plugin/filter');
var winH = $(window).height(),
loadMoreH = $('#load-more').height(),
$goodList = $('.goods-list'),
loading = false,
page = 0,
index = 0;
var $goodsContainer = $('#goods-container'),
$ngc = $($goodsContainer.children().get(0)),
$pgc = $($goodsContainer.children().get(1)),
$dgc = $($goodsContainer.children().get(2));
var swiper;
var winH = $(window).height();
//默认筛选条件
var defaultOpt = {
gender: $('#gender').val(),
brand: $('#brand').val(),
msort: $('#msort').val(),
color: $('#color').val(),
size: $('#size').val(),
price: $('#price').val(),
discount: $('#discount').val(),
limit: $('#limit').val(),
channel: $('#channel').val(),
p_d: $('#p_d').val()
};
var $listNav = $('#list-nav'),
//导航数据信息
navInfo = {
today: {
reload: true,
page: 0,
end: false
},
week: {
reload: true,
page: 0,
end: false
},
sale: {
reload: true,
page: 0,
end: false
}
},
$pre, //纪录进入筛选前的active项
searching;
$pgc.addClass('hide');
$dgc.addClass('hide');
swiper = new Swiper('.swiper-container', {
lazyLoading: true,
pagination: '.swiper-pagination'
});
lazyLoad($('img.lazy'));
$curNav = $navList.children('.focus');
/**
* 筛选注册的回调,筛选子项点击后逻辑
* 需要执行search的场景:1.点选筛选项;2.relaod为true时切换导航;3.下拉加载
* @param opt {type, id}
*/
function search(opt) {
var setting = {},
ext,
att,
nav, navType,
dayLimit,
page;
$('#newarrival-nav').delegate('li', 'touchstart', function() {
var $this = $(this),
$content;
if (opt) {
//筛选项变更则重置reload为true
for (att in navInfo) {
if (navInfo.hasOwnProperty(att)) {
navInfo[att].reload = true;
}
}
//处理active状态
$listNav.children('.active').removeClass('active');
$pre.addClass('active');
switch (opt.type) {
case 'gender':
ext = {
gender: opt.id
};
break;
case 'brand':
ext = {
brand: opt.id
};
break;
case 'msort':
ext = {
msort: opt.id
};
break;
case 'color':
ext = {
color: opt.id
};
break;
case 'size':
ext = {
size: opt.id
};
break;
case 'price':
ext = {
price: opt.id
};
break;
case 'discount':
ext = {
discount: opt.id
};
break;
case 'limit':
ext = {
limit: opt.id
};
break;
case 'channel':
ext = {
channel: opt.id
};
break;
case 'p_d':
ext = {
p_d: opt.id
};
break;
}
if ($this.hasClass('focus')) {
$.extend(defaultOpt, ext); //扩展筛选项
}
if (searching) {
return;
}
index = $this.index();
//导航类别
if ($pre === undefined || $pre.hasClass('today')) {
navType = 'today';
dayLimit = 1;
} else if ($pre.hasClass('week')) {
navType = 'week';
dayLimit = 2;
} else if ($pre.hasClass('sale')) {
navType = 'sale';
dayLimit = 3;
}
nav = navInfo[navType];
$this.addClass('focus');
$curNav.removeClass('focus');
page = nav.page + 1;
if (nav.reload) {
page = 1;
} else if (nav.end) {
$goods.not('.hide').addClass('hide');
$content = $goods.eq(index);
$content.removeClass('hide');
//不需要重新加载并且数据请求结束
return;
}
$curNav = $this;
$.extend(setting, defaultOpt, {
dayLimit: dayLimit,
page: page
});
$(document).trigger('scroll'); //Trigger lazyLoad
});
searching = true;
//srcoll to load more
$(window).scroll(function () {
if ($(window).scrollTop() + winH >= $(document).height() - loadMoreH) {
if (loading) {
return;
}
loading = true;
//num = $goodList.children('.good-info').length;
$.ajax({
type: 'GET',
url: '/product/newsale/selectNewSale',
data: {
dayLimit: index + 1,
page: page + 1
},
success: function(data) {
if (data === ' ') {
loading = true;
return;
$.ajax({
type: 'GET',
url: '/product/newsale/selectNewSale',
data: setting,
success: function(data) {
var noResult = '<p class="no-result">未找到相关搜索结果</p>',
$container;
switch (navType) {
case 'today':
$container = $ngc;
break;
case 'week':
$container = $pgc;
break;
case 'sale':
$container = $dgc;
break;
}
if (data === ' ') {
nav.end = true;
if (nav.reload) {
$container.html(noResult);
}
} else {
if (nav.reload) {
$container.html(data);
} else {
$container.append(data);
}
$goodList.append(data);
lazyLoad($container.find('.lazy'));
}
//lazyLoad
//lazyLoad($goodList.children('.good-info:gt(' + (num - 1) + ')').find('img.lazy'));
lazyLoad($('.good-info').find('img.lazy'));
nav.reload = false;
nav.page = page;
loading = false;
page++;
},
error: function() {
tip.show('网络断开连接了~');
loading = false;
searching = false;
}
});
}
lazyLoad($('.lazy'));
filter.registerCbFn(search);
//导航栏点击逻辑说明:
//1.点击非active项时切换active状态
//2.价格和折扣active状态时继续点击切换排序
//3.筛选无active时点击展开筛选面板
//4.筛选有active时点击隐藏筛选面板并恢复点击筛选前active项的active状态
//5.当前active为筛选并且点击其他项时,隐藏筛选面板
$listNav.delegate('li', 'touchstart', function() {
var $this = $(this),
nav,
navType,
$active;
if ($this.hasClass('filter')) {
//筛选面板切换状态
if ($this.hasClass('active')) {
filter.hideFilter();
//点击筛选钱的active项回复active
$pre.addClass('active');
$this.removeClass('active');
} else {
$pre = $this.siblings('.active');
$pre.removeClass('active');
$this.addClass('active');
filter.showFilter();
}
} else {
if ($this.hasClass('today')) {
navType = 'today';
} else if ($this.hasClass('week')) {
navType = 'week';
} else if ($this.hasClass('sale')) {
navType = 'sale';
}
nav = navInfo[navType];
if ($this.hasClass('hide')) {
$active = $this.siblings('.active');
$pre = $this; //$pre为除筛选导航的其他导航项,若当前active的为筛选,则把$pre置为当前点击项
if ($active.hasClass('filter')) {
//若之前active项为筛选,则隐藏筛选面板
filter.hideFilter();
} else {
//切换container显示
$goodsContainer.children('.container:not(.hide)').addClass('hide');
switch (navType) {
case 'today':
$ngc.removeClass('hide');
break;
case 'week':
$pgc.removeClass('hide');
break;
case 'sale':
$dgc.removeClass('hide');
break;
}
}
});
$active.removeClass('active');
$this.addClass('active');
}
if (nav.reload) {
search();
}
}
});
$(window).scroll(function() {
//当scroll到1/4$goodsContainer高度后继续请求下一页数据
if ($(window).scrollTop() + winH >
$(document).height() - 0.25 * $goodsContainer.height()) {
search();
}
});
\ No newline at end of file
... ...
... ... @@ -6,7 +6,9 @@
padding: 7px 3.125%;
background-color: #f8f8f8;
left: 0;
z-index: 10;
top: 44px;
position: fixed;
z-index: 2;
.search-box {
position: relative;
height: 30px;
... ... @@ -114,5 +116,4 @@
.con {
padding-top: 5px;
}
}
\ No newline at end of file
... ...
... ... @@ -71,6 +71,10 @@
}
}
.info-list-container {
overflow-x: hidden;
}
.info-list.hide {
display: none;
}
... ...
... ... @@ -9,6 +9,7 @@
font-size: 12px;
top: 16px;
left: 24px;
color: #b2b2b2;
}
input {
... ... @@ -24,6 +25,7 @@
position: absolute;
top: 12px;
right: 50px;
color: #b2b2b2;
}
.search {
... ...
... ... @@ -42,9 +42,84 @@
color: #000;
}
}
.list-nav {
> li {
float: left;
width: 25%;
height: 33px;
line-height: 33px;
text-align: center;
font-size: 14px;
}
a {
display: block;
box-sizing: border-box;
width: 100%;
height: 100%;
color: #999;
}
.active > a {
border-bottom: 2px solid #000;
color: #000;
.goods-list.hide {
display: none;
.iconfont {
color: #999;
&.cur {
color: #000;
}
}
}
.new .iconfont {
@include scale(0.8);
font-weight: bold;
}
.filter .iconfont {
font-size: 12px;
@include transition(transform 0.1 ease-in);
}
.filter.active .iconfont {
@include rotate(-180deg);
}
.icon {
position: relative;
i {
position: absolute;
@include scale(0.8);
font-weight: bold;
}
.up {
top: -11px;
}
.down {
top: -4px;
}
}
}
.no-result {
text-align: center;
vertical-align: middle;
color: #ccc;
font-size: 1.2em;
margin-top: 220px;
}
.goods-container {
position: relative;
min-height: 440px;
}
}
... ...
... ... @@ -26,12 +26,20 @@
height: 60rem / $pxConvertRem;
padding: 10rem / $pxConvertRem 0;
background-color: #fff;
a {
display: block;
box-sizing: border-box;
width: 100%;
height: 100%;
color: #999;
}
}
.newarrival-nav-item {
box-sizing: border-box;
float: left;
width: 33.333333%;
width: 25%;
height: 60rem / $pxConvertRem;
line-height: 60rem / $pxConvertRem;
text-align: center;
... ... @@ -42,9 +50,5 @@
color: #000;
}
}
.goods-list.hide {
display: none;
}
}
... ...
{{> layout/header}}
<div class="brand-page yoho-page">
<div class="newbrand-search" style="position: fixed; top: 44px;">
<div class="newbrand-search">
<div class="search-box clearfix">
<a href="/index/search/index" >
<input type="text" class="search-input" placeholder="查找品牌" name="query" id="query" value="" disabled="">
<i class="search-icon iconfont clearfix"></i>
<a href="/index/search/index" >
<input type="text" class="search-input" placeholder="查找品牌">
<i class="search-icon iconfont">&#xe60f;</i>
</a>
</div>
</div>
... ... @@ -85,5 +85,18 @@
</div>
</div>
<div class="float_layer" id="float_layer_app">
<div class="float_layer_left">
<img src="http://static.yohobuy.com/m/v1/img/yohobuy_new.png" alt="">
<p>新用户首单减10元</p>
</div>
<a href="javascript:void(0);" id="float_layer_close" onclick="appLayer();">
<img src="http://static.yohobuy.com/m/v1/img/close_new.png" width="22">
</a>
<a href="http://m.yohobuy.com/download/hyapp" id="float_layer_btn">立即下载</a>
</div>
</div>
{{> layout/footer}}
\ No newline at end of file
... ...
... ... @@ -35,7 +35,7 @@
{{/ navs}}
</ul>
<div id="info-list">
<div id="info-list" class="info-list-container">
{{# infos}}
<div class="info-list {{^show}}hide{{/show}}">
{{# info}}
... ...
... ... @@ -2,10 +2,12 @@
<div class="search-page yoho-page">
{{# search}}
<div id="search-input" class="search-input">
<i class="search-icon iconfont">&#xe60f;</i>
<input type="text" placeholder="搜索商品">
<i class="clear-input iconfont hide">&#xe61a;</i>
<button id="search" class="search">搜索</button>
<form action="/product/list/index" 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">
... ...
... ... @@ -3,10 +3,12 @@
{{# goodList}}
{{# search}}
<div id="search-input" class="search-input">
<i class="search-icon iconfont">&#xe60f;</i>
<input type="text" value={{default}}>
<i class="clear-input iconfont hide">&#xe61a;</i>
<button id="search" class="search">搜索</button>
<form action="/product/list/index" method="get">
<i class="search-icon iconfont">&#xe60f;</i>
<input type="text" value={{default}} name="query">
<i class="clear-input iconfont hide">&#xe61a;</i>
<button id="search" class="search" type="submit">搜索</button>
</form>
</div>
{{/ search}}
... ...
{{>layout/header}}
<div class="newarrival-page yoho-page">
{{> layout/header}}
<div class="good-list-page yoho-page">
{{# headerBanner}}
{{> product/banner_swipe_and_single}}
{{/ headerBanner}}
<ul id="newarrival-nav" class="newarrival-nav clearfix">
{{# tabs}}
<li class="newarrival-nav-item {{#focus}}focus{{/focus}}">{{title}}</li>
{{/ tabs}}
<ul id="list-nav" class="list-nav clearfix">
<li class="today active">
<a href="javascript:void(0);">
1026
</a>
</li>
<li class="week">
<a href="javascript:void(0);">
本周上新
</a>
</li>
<li class="sale">
<a href="javascript:void(0);">
销量
</a>
</li>
<li class="filter">
<a href="javascript:void(0);">
筛选
<span class="iconfont">&#xe613;</span>
</a>
</li>
</ul>
<div id="newarrival-goods-list">
{{> product/goods_container}}
</div>
<div id="goods-container" class="goods-container">
{{# goodsContainer}}
<div class="new-goods container">
{{#if goods}}
{{# goods}}
{{> good}}
{{/ goods}}
{{^}}
<p class="no-result">未找到相关搜索结果</p>
{{/if}}
</div>
{{/ goodsContainer}}
<div id="load-more-info" class="load-more-info">
<div class="loading status hide">
正在加载...
</div>
<span class="no-more status hide">没有更多啦</span>
{{> filter}}
</div>
{{#if brand}}
<input id="brand" type="hidden" value={{brand}}>
{{/if}}
</div>
{{>layout/footer}}
{{#if gender}}
<input id="gender" type="hidden" value={{gender}}>
{{/if}}
{{#if msort}}
<input id="msort" type="hidden" value={{msort}}>
{{/if}}
{{#if color}}
<input id="color" type="hidden" value={{color}}>
{{/if}}
{{#if size}}
<input id="size" type="hidden" value={{size}}>
{{/if}}
{{#if price}}
<input id="price" type="hidden" value={{price}}>
{{/if}}
{{#if p_d}}
<input id="p_d" type="hidden" value={{p_d}}>
{{/if}}
{{#if channel}}
<input id="channel" type="hidden" value={{channel}}>
{{/if}}
{{#if dayLimit}}
<input id="dayLimit" type="hidden" value={{dayLimit}}>
{{/if}}
{{#if limit}}
<input id="limit" type="hidden" value={{limit}}>
{{/if}}
{{#if page}}
<input id="page" type="hidden" value={{page}}>
{{/if}}
</div>
{{> layout/footer}}
\ No newline at end of file
... ...
{{>layout/header}}
{{> layout/header}}
<div class="discount-page yoho-page">
{{# headerBanner}}
{{# headerBanner}}
{{> product/banner_swipe_and_single}}
{{/ headerBanner}}
<ul id="discount-nav" class="discount-nav clearfix">
{{# tabs}}
<li class="discount-nav-item {{#focus}}focus{{/focus}}">{{title}}</li>
{{/ tabs}}
</ul>
{{/ headerBanner}}
<div id="discount-goods-list">
{{> product/goods_container}}
</div>
<ul id="list-nav" class="list-nav clearfix">
<li class="new active">
<a href="javascript:void(0);">
最新
<span class="iconfont cur">&#xe616;</span>
</a>
</li>
<li class="price">
<a href="javascript:void(0);">
价格
<span class="icon">
<i class="iconfont up">&#xe615;</i>
<i class="iconfont down cur">&#xe616;</i>
</span>
</a>
</li>
<li class="discount">
<a href="javascript:void(0);">
折扣
<span class="icon">
<i class="iconfont up">&#xe615;</i>
<i class="iconfont down cur">&#xe616;</i>
</span>
</a>
</li>
<li class="filter">
<a href="javascript:void(0);">
筛选
<span class="iconfont">&#xe613;</span>
</a>
</li>
</ul>
<div id="load-more-info" class="load-more-info">
<div class="loading status hide">
正在加载...
</div>
<span class="no-more status hide">没有更多啦</span>
<div id="goods-container" class="goods-container">
{{# goodsContainer}}
<div class="new-goods container">
{{# goods}}
{{> good}}
{{/ goods}}
</div>
{{/ goodsContainer}}
{{> filter}}
</div>
{{#if brand}}
<input id="brand" type="hidden" value={{brand}}>
{{/if}}
</div>
{{>layout/footer}}
{{#if gender}}
<input id="gender" type="hidden" value={{gender}}>
{{/if}}
{{#if msort}}
<input id="msort" type="hidden" value={{msort}}>
{{/if}}
{{#if color}}
<input id="color" type="hidden" value={{color}}>
{{/if}}
{{#if size}}
<input id="size" type="hidden" value={{size}}>
{{/if}}
{{#if price}}
<input id="price" type="hidden" value={{price}}>
{{/if}}
{{#if p_d}}
<input id="p_d" type="hidden" value={{p_d}}>
{{/if}}
{{#if channel}}
<input id="channel" type="hidden" value={{channel}}>
{{/if}}
{{#if limit}}
<input id="limit" type="hidden" value={{limit}}>
{{/if}}
{{#if page}}
<input id="page" type="hidden" value={{page}}>
{{/if}}
{{#if discount}}
<input id="page" type="hidden" value={{page}}>
{{/if}}
</div>
{{> layout/footer}}
\ No newline at end of file
... ...
... ... @@ -66,7 +66,7 @@ class ClassModel
$subitem = array();
$subitem['name'] = $value['category_name'];
$subitem['id'] = $value['relation_parameter']['sort'];
$subitem['url'] = $value['category_id'];
$subitem['url'] = '/product/list/class?sort='.$value['relation_parameter']['sort'];
$item['sub'][] = $subitem;
}
... ...
... ... @@ -206,7 +206,7 @@ class NewsaleModel
*/
public static function selectData($data)
{
$result = array('goods' => array());
$result = array();
if (isset($data['code']) && $data['code'] === 200) {
foreach ($data['data']['product_list'] as $val) {
... ...
... ... @@ -12,11 +12,18 @@ class ClassController extends AbstractAction
$classes = ClassModel::getClassData();
$data = array(
"searchUrl" => "",
"class" => $classes
'categoryPage' => true,
'pageHeader' => array (
'navBack' => true,
'navHome' => '/',
'navTitle' => '商品分类'
),
'category' => array(
"class" => $classes
)
);
$this->_view->assign('title', 'YOHO!有货');
$this->_view->display('index', array('categoryPage' => true, 'category' => $data));
$this->_view->display('index', $data);
}
}
\ No newline at end of file
... ...
... ... @@ -20,22 +20,20 @@ class NewsaleController extends AbstractAction
$this->setTitle('新品到着');
$this->setNavHeader('新品到着');
$channel = $this->get('channel', 1);
if (!is_numeric($channel)) {
$this->error();
}
$channel = $this->getCookie('_Channel', 'boys');
$this->channelTrans($channel);
$data = array();
$data['newArrival'] = true;
$data['headerBanner'] = \Product\NewsaleModel::getNewFocus($channel);
$goodsList = \Product\NewsaleModel::getNewProducts($channel, 20);
$goodsList = \Product\NewsaleModel::getNewProducts($channel, 60);
if (!empty($goodsList)) {
$data += $goodsList;
}
// 设置一些筛选的默认参数
$data += array(
'brand' => 0,
'sort' => 0,
'msort' => 0,
'gender' => $this->getCookie('_Channel', 'boys'),
'price' => 0,
'size' => 0,
... ... @@ -56,46 +54,23 @@ class NewsaleController extends AbstractAction
$this->setTitle('折扣专区');
$this->setNavHeader('Sale');
$channel = $this->get('channel', 1);
if (!is_numeric($channel)) {
$this->error();
}
$channel = $this->getCookie('_Channel', 'boys');
$this->channelTrans($channel);
$data = array();
$data['discount'] = true;
$data['headerBanner'] = \Product\NewsaleModel::getNewFocus($channel);
$goodsList = \Product\NewsaleModel::getSaleProducts($channel, 20);
$goodsList = \Product\NewsaleModel::getSaleProducts($channel, 60);
if (!empty($goodsList)) {
$data += $goodsList;
}
// 设置一些筛选的默认参数
$data += array(
'brand' => 0,
'sort' => 0,
'msort' => 0,
'gender' => $this->getCookie('_Channel', 'boys'),
'price' => 0,
'size' => 0,
'dayLimit' => 1,
'discount' => '0.1,0.3'
);
$data['tabs'] = array(
array(
'title' => '1-3折',
'dataId' => '0.1,0.3',
'focus' => true
),
array(
'title' => '4-6折',
'dataId' => '0.4,0.6',
),
array(
'title' => '7-9折',
'dataId' => '0.7,0.9',
),
array(
'title' => 'ALL',
'dataId' => '0.1,0.9',
)
'discount' => '0.1,0.9'
);
$this->_view->display('sale', $data);
... ... @@ -109,16 +84,16 @@ class NewsaleController extends AbstractAction
public function selectNewSaleAction()
{
if ($this->isAjax()) {
$gender = $this->get('gender', '1,3');
$gender = $this->get('gender', 'boys');
$brand = $this->get('brand', null);
$sort = $this->get('sort', null);
$sort = $this->get('msort', null);
$color = $this->get('color', null);
$size = $this->get('size', null);
$price = $this->get('price', null);
$p_d = $this->get('p_d', null);
$channel = $this->get('channel', '1');
$dayLimit = $this->get('dayLimit', '1');
$limit = $this->get('limit', 20);
$p_d = $this->get('discount', null);
$channel = $this->getCookie('_Channel', 'boys');
$dayLimit = $this->get('dayLimit', null);
$limit = $this->get('limit', 60);
$page = $this->get('page', 1);
// 转换性别
... ... @@ -135,16 +110,66 @@ class NewsaleController extends AbstractAction
$gender = '1,2,3';
}
// 转换排序方式
$order = $this->get('order', null);
$type = $this->get('type', '');
switch ($type) {
case 'price':
$order = ($order == 0) ? 's_p_desc' : 's_p_asc';
break;
case 'discount':
$order = ($order == 0) ? 'p_d_desc' : 'p_d_asc';
break;
case 'newest':
default:
$order = ($order == 0) ? 's_t_desc' : 's_t_asc';
break;
}
// 转换频道
$this->channelTrans($channel);
$data = NewsaleData::selectNewSaleProducts(
$gender, $brand, $sort, $color,
$size, $price, $p_d, $channel, $dayLimit, $limit, $page
);
$result = \Product\NewsaleModel::selectData($data);
$this->_view->display('product', $result);
if(empty($result))
{
echo ' ';
}
else
{
$this->_view->display('product', $result);
}
} else {
echo ' ';
}
}
/**
* 转换频道
* @param string &$channel 待转换的频道
* @return integer 转换之后的频道
*/
private function channelTrans(&$channel)
{
switch ($channel) {
case 'girls':
$channel = 2;
break;
case 'kids':
$channel = 3;
break;
case 'lifestyle':
$channel = 4;
break;
case 'boys':
default:
$channel = 1;
break;
}
}
}
... ...