Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
YOHOBUYPC
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
2
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Plain Diff
Browse Files
Authored by
weiqingting
9 years ago
Commit
2cebc90ddd22e43e32bb911b8fceaf60c014b667
2 parents
6735330b
d93df2c6
master
...
develop
feature/4LevelAddr
feature/birthCoupon
feature/cartEvent
feature/colorLength
feature/commentImgShow
feature/deleteMark
feature/favShopDelAll
feature/help
feature/jitTip
feature/paySuccess
feature/seoUrl
feature/shoppingCart
feature/wholesaleFrom5.3
gray
hotfix/firefoxCart
hotfix/govLink
hotfix/newPy
hotfix/serviceSwitch
hotfix/studentSwitch
hotfix/yas2.1.2
release/5.3.1
release/5.4
release/5.4.1
release/5.5
5.4.3
5.4.2
5.4.1
5.4.0
5.3.8
5.3.7
5.3.6
5.3.5
5.3.4
5.3.3
5.3.2
5.3.1
5.3.0
5.2.4
5.2.3
5.2.2
5.2.1
5.2.0
5.1.5
5.1.4
5.1.2
5.1.1
5.1.0
5.0.4
5.0.3
5.0.2
5.0.1
5.0.0.before
4.9.24
4.9.23
4.9.22
4.9.21
4.9.20
4.9.19
4.9.18
4.9.17.encryBugsFenliu
4.9.16
4.9.15
4.9.15.pinyou
4.9.14
4.9.14.icon
4.9.13
4.9.12
4.9.11
4.9.10
4.9.1.1
4.9.1.0
4.9.1
4.8.15
4.8.13
4.8.12
4.8.8.2
4.8.8.1
4.8.8
4.8.5
4.8.3
4.8.2
4.8.bak
4.7.2
4.6.2.1
4.6.2
4.6
4
1.3.22
1.3.21
1.3.20
1.3.19
1.3.18
wap.3.2.5
wap.1.4.22
wap.1.4.21
wap.1.4.20
wap.1.4.19
wap.1.4.18
wap.1.4.17
wap.1.4.16.3
wap.1.4.16.2
wap.1.4.16.1
wap.1.4.16
wap.1.4.15
wap.1.4.14
wap.1.4.13
wap.1.4.12
wap.1.4.11
wap.1.4.10
wap.1.4.9
wap.1.4.8
wap.1.4.7
wap.1.4.6
wap.1.4.5
wap.1.4.4
wap.1.4.3
wap.1.4.2
wap.1.4.1
wap.1.4.0
pchttps
pc4.8.9
pc4.5
pc.1.4.24
pc.1.4.23
pc.1.4.22
pc.1.4.21
pc.1.4.20
pc.1.4.19
pc.1.4.18
pc.1.4.17
pc.1.4.16
pc.1.4.15
pc.1.4.14
pc.1.4.13
pc.1.4.12
pc.1.4.11
pc.1.4.10
pc.1.4.9
pc.1.4.8
pc.1.4.7
pc.1.4.6
pc.1.0.7
pc.1.0.6
pc.1.0.5
pc.1.0.4
pc.1.0.3
pc.1.0.2
pc.1.0.1
pc.1.0.0
list
fix-ip-login-limit
fix-ip-limit
Merge branch 'develop' of
http://git.dev.yoho.cn/web/yohobuy
into develop
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
761 additions
and
368 deletions
library/LibModels/Web/Product/SearchData.php
library/Plugin/HelperSearch.php
static/sass/me/_home.scss
template/m.yohobuy.com/actions/index/home/index.phtml
template/www.yohobuy.com/actions/passport/back/reset-pwd.phtml
template/www.yohobuy.com/actions/passport/back/verification.phtml
template/www.yohobuy.com/actions/passport/login/index.phtml
template/www.yohobuy.com/actions/product/index/hotrank.phtml
template/www.yohobuy.com/actions/product/index1/hotrank.phtml
template/www.yohobuy.com/actions/product/search/search.phtml
template/www.yohobuy.com/partials/layout/page-header.phtml
template/www.yohobuy.com/partials/passport/register.phtml
web-static/js/common.js
web-static/js/header.js
web-static/js/passport/login.js
web-static/js/passport/reg.js
web-static/sass/passport/_login.scss
web-static/sass/product/_index.scss
yohobuy/www.yohobuy.com/application/Bootstrap.php
yohobuy/www.yohobuy.com/application/models/Passport/Passport.php
yohobuy/www.yohobuy.com/application/models/Product/Search.php
yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Back.php
yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Login.php
yohobuy/www.yohobuy.com/application/modules/Product/controllers/List.php
yohobuy/www.yohobuy.com/application/modules/Product/controllers/Search.php
library/LibModels/Web/Product/SearchData.php
View file @
2cebc90
...
...
@@ -4,6 +4,7 @@ namespace LibModels\Web\Product;
use
Api\Yohobuy
;
class
SearchData
extends
\LibModels\Wap\Product\SearchData
{
public
static
$shops_url
=
'http://101.200.31.165/yohosearch/shops.json'
;
/**
* 获取搜索的服务地址
*
...
...
@@ -129,6 +130,16 @@ class SearchData extends \LibModels\Wap\Product\SearchData
}
/**
* 搜索品牌店铺信息
* @param array $params 参数
* @return array
*/
public
static
function
getShop
(
array
$params
)
{
return
Yohobuy
::
get
(
self
::
$shops_url
,
$params
);
}
/**
* 获取最近浏览记录
* @param int $limit
* @return json
...
...
library/Plugin/HelperSearch.php
View file @
2cebc90
...
...
@@ -13,8 +13,7 @@ class HelperSearch
*/
public
static
$params
=
array
();
private
static
$from
=
''
;
public
static
$options
=
array
();
//当前页
public
static
$page
=
1
;
...
...
@@ -29,19 +28,13 @@ class HelperSearch
*/
public
static
$listnav
=
array
();
private
static
function
setFrom
(
$from
=
''
)
{
if
(
$from
)
{
self
::
$from
=
$from
;
}
}
//设置导航
private
static
function
setListNav
(
$option
=
array
()
)
private
static
function
setListNav
()
{
$options
=
self
::
$options
;
$cookieChannel
=
isset
(
$_COOKIE
[
'_Channel'
])
?
$_COOKIE
[
'_Channel'
]
:
'boys'
;
if
(
isset
(
$option
[
'brandName'
])
&&
!
empty
(
$option
[
'brandName'
]))
{
$initNav
=
$option
[
'brandName'
];
if
(
isset
(
$options
[
'brandName'
])
&&
!
empty
(
$options
[
'brandName'
]))
{
$initNav
=
$options
[
'brandName'
];
}
else
{
$initNav
=
'列表'
;
}
...
...
@@ -64,6 +57,7 @@ class HelperSearch
{
$result
=
array
();
self
::
$params
=
$_GET
;
self
::
$options
=
$options
;
unset
(
self
::
$params
[
'/'
]);
unset
(
self
::
$params
[
'page'
]);
unset
(
self
::
$params
[
'/sale'
]);
...
...
@@ -80,10 +74,8 @@ class HelperSearch
$result
[
'filters'
][
'checkedConditions'
][
'clearUrl'
]
=
self
::
current
();
//频道
$result
[
'filters'
][
'channel'
]
=
self
::
gender
(
$filter
);
//分类
$result
[
'filters'
][
'sort'
]
=
array
();
//品牌
$result
[
'filters'
][
'brand'
]
=
self
::
brand
(
$filter
,
$options
);
$result
[
'filters'
][
'brand'
]
=
self
::
brand
(
$filter
);
//价格
$result
[
'filters'
][
'price'
]
=
self
::
price
(
$filter
);
$result
[
'filters'
][
'customPrice'
]
=
self
::
customPrice
(
$filter
);
...
...
@@ -109,8 +101,10 @@ class HelperSearch
$result
[
'opts'
][
'pageCount'
]
=
$data
[
'data'
][
'page_total'
];
$result
[
'opts'
][
'nextHref'
]
=
(
$next
=
self
::
next
(
$data
[
'data'
][
'page_total'
],
$data
[
'data'
][
'filter'
]))
?
$next
[
'href'
]
:
''
;
$result
[
'hasNextPage'
]
=
self
::
next
(
$data
[
'data'
][
'page_total'
]);
//分类
$result
[
'leftContent'
][][
'allSort'
]
=
isset
(
$filter
[
'group_sort'
])
?
self
::
groupSort
(
$filter
[
'group_sort'
],
$options
)
:
array
();
//分类条件
$result
[
'filters'
][
'sort'
]
=
isset
(
$filter
[
'group_sort'
])
?
self
::
searchSort
(
$filter
[
'group_sort'
])
:
array
();
//左侧分类分类
$result
[
'leftContent'
][][
'allSort'
]
=
isset
(
$filter
[
'group_sort'
])
?
self
::
groupSort
(
$filter
[
'group_sort'
])
:
array
();
//一周新品上架
$result
[
'leftContent'
][][
'newSales'
]
=
isset
(
$filter
[
'recent'
])
?
self
::
recentShelve
(
$filter
[
'recent'
])
:
array
();
//全部折扣
...
...
@@ -121,6 +115,9 @@ class HelperSearch
$result
[
'pager'
]
=
self
::
pager
(
$result
[
'totalCount'
],
$options
[
'viewNum'
]);
//选中条件
$result
[
'filters'
][
'checkedConditions'
][
'conditions'
]
=
self
::
getSelected
();
if
(
isset
(
$options
[
'controller'
])
&&
$options
[
'controller'
]
==
'Search'
)
{
self
::
setSearchNav
(
$data
[
'data'
][
'total'
]);
}
$result
[
'pathNav'
]
=
self
::
$listnav
;
return
$result
;
}
...
...
@@ -193,6 +190,9 @@ class HelperSearch
'name'
=>
$pval
[
'standard_name'
],
'href'
=>
self
::
buildUrl
(
$tmpParams
)
);
if
(
self
::
checkSearch
(
'parameter_'
.
$val
[
'standard_id'
]))
{
return
array
();
}
}
$sub
[]
=
array
(
'name'
=>
$pval
[
'standard_name'
],
...
...
@@ -232,6 +232,10 @@ class HelperSearch
'href'
=>
self
::
buildUrl
(
$params
)
);
}
if
(
self
::
checkSearch
(
'gender'
))
{
return
array
();
}
$result
=
array
();
foreach
(
$filter
[
'gender'
]
as
$key
=>
$val
)
{
$result
[]
=
array
(
...
...
@@ -247,14 +251,18 @@ class HelperSearch
/**
* 组织搜索列表页面的左侧分类
* @param array $sort
* @param array $option
* @return array
*/
public
static
function
groupSort
(
$sort
,
$option
=
array
()
)
public
static
function
groupSort
(
$sort
)
{
$options
=
self
::
$options
;
if
(
isset
(
$options
[
'controller'
])
&&
$options
[
'controller'
]
!=
'Search'
)
{
return
array
();
}
//设置导航
self
::
setListNav
(
$option
);
self
::
setListNav
(
$option
s
);
$params
=
self
::
$params
;
$result
=
array
(
'all'
=>
array
(
...
...
@@ -294,16 +302,48 @@ class HelperSearch
}
}
$result
[
'list'
]
=
$sortList
;
return
$result
;
}
public
static
function
searchSort
(
$sort
)
{
$result
=
array
();
$options
=
self
::
$options
;
if
(
!
isset
(
$options
[
'controller'
])
||
$options
[
'controller'
]
!=
'Search'
)
{
return
$result
;
}
$params
=
self
::
$params
;
foreach
(
$sort
as
$key
=>
$val
)
{
$result
[
$key
][
'id'
]
=
$val
[
'sort_id'
];
$result
[
$key
][
'name'
]
=
$val
[
'sort_name'
];
if
(
isset
(
$val
[
'sub'
])
&&
!
empty
(
$val
[
'sub'
]))
{
foreach
(
$val
[
'sub'
]
as
$k
=>
$v
)
{
$result
[
$key
][
'sub'
][
$k
][
'href'
]
=
self
::
buildUrl
(
array
(
'msort'
=>
$val
[
'sort_id'
],
'misort'
=>
$v
[
'sort_id'
]));
$result
[
$key
][
'sub'
][
$k
][
'name'
]
=
$v
[
'sort_name'
];
if
(
isset
(
$params
[
'misort'
])
&&
$params
[
'misort'
]
==
$v
[
'sort_id'
])
{
unset
(
$params
[
'misort'
]);
self
::
$selected
[
'sort'
]
=
array
(
'name'
=>
$v
[
'sort_name'
],
'href'
=>
self
::
buildUrl
()
);
}
}
}
}
if
(
self
::
checkSearch
(
'msrot'
)
||
self
::
checkSearch
(
'misort'
))
{
return
array
();
}
return
$result
;
}
/**
* 品牌,可以多选
* @param array $filter
* @param array $options
* @return array
*/
public
static
function
brand
(
$filter
,
$options
=
array
())
{
public
static
function
brand
(
$filter
)
{
$options
=
self
::
$options
;
//品牌列表返回空
if
(
isset
(
$options
[
'brandName'
]))
{
return
array
();
...
...
@@ -311,11 +351,15 @@ class HelperSearch
$result
=
array
(
'default'
=>
array
()
,
'brandIndex'
=>
array
(
'0~9'
,
'A~G'
,
'H~N'
,
'O~T'
,
'U~Z'
)
,
array
(
'index'
=>
'all'
,
'name'
=>
'全部'
),
array
(
'index'
=>
'0-9'
,
'name'
=>
'0 ~ 9'
)
),
'brandsShow'
=>
array
()
);
$params
=
self
::
$params
;
...
...
@@ -341,12 +385,18 @@ class HelperSearch
)));
}
$this_brand
=
array
(
'brand_id'
=>
$v
[
'id'
],
'name'
=>
$v
[
'brand_name'
],
'alif'
=>
$v
[
'brand_alif'
],
'id'
=>
$v
[
'id'
],
'href'
=>
$url
,
'name'
=>
$v
[
'brand_name'
],
'key'
=>
$v
[
'brand_name'
],
'active'
=>
in_array
(
$v
[
'id'
],
$brandIds
)
?
true
:
false
);
if
(
is_numeric
(
$v
[
'brand_alif'
]))
{
$this_brand
[
'index'
]
=
'0-9'
;
}
else
{
$this_brand
[
'index'
]
=
strtolower
(
$v
[
'brand_alif'
]);
}
//默认品牌
if
(
count
(
$result
[
'default'
])
<
10
)
{
$result
[
'default'
][]
=
$this_brand
;
...
...
@@ -367,9 +417,16 @@ class HelperSearch
'href'
=>
self
::
buildUrl
(
$params
)
);
}
//品牌列表排序
ksort
(
$brandList
);
//品牌列表排序, 添加品牌索引
$index_key
=
array
();
foreach
(
$brandList
as
$key
=>
$val
)
{
if
(
$key
&&
!
in_array
(
$key
,
$index_key
))
{
$index
[
'index'
]
=
strtolower
((
$key
));
$index
[
'name'
]
=
$key
;
$result
[
'brandIndex'
][]
=
$index
;
$index_key
[]
=
$index
;
}
if
(
is_array
(
$val
))
{
foreach
(
$val
as
$v
)
{
$result
[
'brandsShow'
][]
=
$v
;
...
...
@@ -378,6 +435,10 @@ class HelperSearch
}
unset
(
$brandList
);
}
//搜索页已选中,返回空
if
(
self
::
checkSearch
(
'brand'
))
{
return
array
();
}
return
$result
;
}
/**
...
...
@@ -402,6 +463,7 @@ class HelperSearch
'href'
=>
self
::
buildUrl
(
$params
)
);
}
$result
[]
=
array
(
'name'
=>
$v
[
'size_name'
],
'href'
=>
self
::
buildUrl
(
array_merge
(
$params
,
array
(
...
...
@@ -409,6 +471,9 @@ class HelperSearch
)))
,
);
}
if
(
self
::
checkSearch
(
'size'
))
{
return
array
();
}
}
return
$result
;
}
...
...
@@ -443,6 +508,9 @@ class HelperSearch
))) ,
);
}
if (self::checkSearch('color')) {
return array();
}
return
$result
;
}
...
...
@@ -474,6 +542,9 @@ class HelperSearch
);
}
}
if (self::checkSearch('price')) {
return array();
}
//返回价格条件
foreach (
$filter['price']
as
$key
=>
$val
) {
$val
= trim(
$val
,'¥');
...
...
@@ -556,6 +627,10 @@ class HelperSearch
'href' =>
$url
,
);
}
//搜索页已选中,返回空
if (self::checkSearch('style')) {
return array();
}
$data[0]
= array(
'attr' => 'style',
'name' => '风格',
...
...
@@ -942,7 +1017,13 @@ class HelperSearch
}
return
$result
;
}
//分页
/**
* 分页
* @param
$total
* @param
$viewNum
* @return mixed
*/
public static function pager(
$total
,
$viewNum
){
$Paging
= new Paging('Yoho');
return
$Paging->setTotal
(
$total
)->setSize(
$viewNum
)->view(0);
...
...
@@ -968,4 +1049,67 @@ class HelperSearch
return
$result
;
}
}
/**
* 组织品牌店铺信息
*/
public static function shop(
$shop
)
{
$url
= Helpers::url('','',
$shop['brand_domain']
);
$shopEntry
= array();
$sort
= array();
foreach (
$shop['sort']
as
$msort
) {
if (!isset(
$msort['sub']
) || empty(
$msort['sub']
)) {
continue;
}
foreach (
$msort['sub']
as
$mkey
=>
$misort
) {
if (count(
$sort
) >= 10) {
break 2;
}
$sortInfo['href']
=
$url
.'/?msort=' .
$msort['sort_id']
. '&misort=' .
$misort['sort_id']
;
$sortInfo['name']
=
$misort['sort_name']
;
$sort
[] =
$sortInfo
;
}
}
$shopEntry['home']
=
$url
;
$shopEntry['logo']
= Images::getSourceUrl(
$shop['brand_ico']
,'brandLogo');
$shopEntry['shopName']
=
$shop['brand_name']
;
$shopEntry['sort']
=
$sort
;
return
$shopEntry
;
}
public static function checkSearch(
$param
)
{
if (isset(self::
$params[$param]
) && isset(self::
$options['controller']
) && self::
$options['controller']
== 'Search') {
return true;
}
}
/**
* 设置搜索页导航
* @param
$total
*/
public static function setSearchNav(
$total
)
{
self::
$listnav[0]
= array(
'href' => '/',
'name' => '首页'
);
$param
= self::
$params
;
$options
= self::
$options
;
if (isset(
$options['controller']
) &&
$options['controller']
== 'Search' && isset(
$param['query']
)) {
self::
$listnav[1]
= array(
'href' => '',
'name' => "
‘
".
$param['query']
."
’
共
".
$total
."
个结果
"
);
}else{
self::
$listnav[1]
= array(
'href' => '',
'name' => '所有商品'
);
}
}
}
...
...
static/sass/me/_home.scss
View file @
2cebc90
...
...
@@ -206,7 +206,16 @@
padding
:
0
pxToRem
(
30px
);
font-size
:
16px
;
line-height
:
pxToRem
(
88px
);
.opinion
{
width
:
1
.3rem
;
height
:
1
.3rem
;
overflow
:
hidden
;
display
:
inline-block
;
background-image
:url
(
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTkyQTQ3NkNCOEQ4MTFFNUIzNTY5MTI2NjU5ODYzQkQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTkyQTQ3NkJCOEQ4MTFFNUIzNTY5MTI2NjU5ODYzQkQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDMkMzNzRFRkFFMEYxMUU1OEM0Q0U0Q0M3NkZCNzIyMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDMkMzNzRGMEFFMEYxMUU1OEM0Q0U0Q0M3NkZCNzIyMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhkYSdAAAAS0SURBVHja7FpZSFRhFL6TrUZJC0K2WFlmL0Y7thcjkWZlQfVQ0QJWD+09tEMb9BAkPlVQCYVESJtlhhbRJkVqiCHtqylRD5Ut0GLfyTPxe/zvvePM3JlJPPD537n33HPOd8+//7rq6uqM5iCtjGYizYZIa/rjcrn8MuJ2u/ugGAuMBgYD/YBoIEpR+wi8A54DlcAd4FZRUdErf3x7moaLLnwhguBjUSwGZgOJfsRSDpwGskHqZdCIgMBwFDuA6QGumr+BC8AuECpxjAgI9EaRyRlwWihDa0HodUCJgEQGiv1AJwu1x8B1oISvqe5/Ar4D7YHOALWlgQBldQJfm8lnYCPIHPabCAhEojgILDSxQ8EeAU7C4SMf2lk8ivnAMiapk+PACtj/6hMROIniOjtO8/4zYDdwAg5++luP4It6zwXAdqC/RuUmtUn4+tgkIjDcEcVVYJR4j4LeC+yD0e+BbhjwS1VwE7DVMzQocheYAr9fvCICYxEozgMpwtAbYC4MFTvd0hFDEopTQC/xKB+YgRh+SSK67nOzhsQDICkYJEjYTxL7VSWF42skDTKCLzGMUxih6DwFxsD4u2BPOxAPzQ5uA3HKbcrGKMRTapWRTEGC6mNqKEhwZshvKsfhkQiOUz9pBHtK23jxfA2MPQzlZJD9rxG3x3O82tnvaqFMk7qjYTK5PcrxGGbx/m0jycnJPXD9VjYsfI1L4TJNRwamca+lSkxhYWG1mpE0zYBXEGZLjgKOS5U0WbVk2ziHbITVGpjjOSfbiiQi1xM3wnQhKONKbLBChMRqBkC7FeFhnsLQuJMhV3qB0rGJK1ZmJEoovLf5MjnAVKALlzkO6ljFFWW3+fDbxuBYm9+B1PEqLg+RWnG/q43BRza/A6ljFVetJFItFOJtDC4Bavi6hn87pWMVV7UkUi4URtt0hbd5ik3bPr34tyM6NnGVy16Lps1zFIWZwE4bMjQLfREMHRGXKsUyI3lCYSi6xhHhNIBwPEPF7bwGRHjjoFQobQmzwVDGU6pueKjdb5ZQTMdXcIdJNiiOdHE7y2wan6Pp/rJho3uISZD/bE03naMlgjT9QLFevNATyIWxdiEiQX5zOQ5V1nO82owQmYsa9hOZTGSQSUQyiYmylnCchikRllVAhbhHG9aFMB4TJBKDuPpMF48qOD7DlgjY1vK2S5V4NAa4DyezHCZB9ss01amKV621tttBwuAAFFcM/Z4sLTm3wWhZAAnQGLFHs6dGQpvhw+HviXzg7SY2TR/OAGaDYz6vJ/Jl4/My+DYceIYJAY+Q7SHwUekTEaXnOACstHBEX+yyoRwrwOl7k65UPVagNUhnL3mT7UlyCe7LQc8kFIe8mBl75JvR+Hykg581cCmIHPOLCJOhSeYio377v28IhpYPQIKabatNbKuZ6k+ANsvieCvmLH9xf4TepyMMb7Zluxn1J2fe91pNHLjcRsPj6WiLVyjgf8fT9d+n6CvstMX1PGADNWwbt5PxzjWfq1YTyXnO2ck4eft7zm52hCben8LTpVQTlXuwM9JxIgH8IAko1nG7bK8ucUEk5r8hIrpt6v6Xc++3GkSyGxFpDtLy30EtRBySPwIMACKUEyE6TctsAAAAAElFTkSuQmCC"
)
;
background-size
:
100%
100%
;
position
:
relative
;
top
:
.36rem
;
}
&
.highlight
{
background
:
#eee
;
}
...
...
template/m.yohobuy.com/actions/index/home/index.phtml
View file @
2cebc90
...
...
@@ -101,7 +101,7 @@
<span
class=
"iconfont num"
>
604
;</span>
</a>
<a
class=
"list-item"
href=
"/home/suggest"
>
<span
class=
"
iconfont icon"
>
63
d;
</span>
<span
class=
"
opinion"
>
</span>
意见反馈
<span
class=
"iconfont num"
>
604
;</span>
</a>
...
...
template/www.yohobuy.com/actions/passport/back/reset-pwd.phtml
View file @
2cebc90
...
...
@@ -30,7 +30,7 @@
</span>
</li>
<li
class=
"input-container-li clearfix"
>
<input
type=
"hidden"
name=
"code"
value=
"
159bI6arxsuaPBxG2iV9OE9BrgDnAPiTecUqYh2iUC3ntt6S0eOtxXpVu+jWIlveXx9NRuwS9zdrXzcUyOd+d3ikzYBAo0k
"
>
<input
type=
"hidden"
name=
"code"
value=
"
{{code}}
"
>
<input
id=
"reset-pwd-btn"
class=
"btn reset-pwd-btn"
type=
"submit"
value=
"提交"
disabled=
""
>
</li>
</ul>
...
...
template/www.yohobuy.com/actions/passport/back/verification.phtml
View file @
2cebc90
{
{>
layout/simple-header
}
}
<div
class=
"verification-page back-page passport-page yoho-page clearfix"
>
{
{#
verification
}
}
{
{>
passport/cover
}
}
<div
class=
"content"
>
<form
id=
"verification-form"
class=
"verification-form"
method=
"POST"
action=
"/passport/back/backmobile"
>
<ul>
<li
class=
"head-title"
>验证身份</li>
<li
class=
"po-re"
>
<label
class=
"pn-label"
>手机号码</label>
<span
class=
"country-code"
>+
{
{area
}
}</span>
<span
class=
"phone-num"
>
{
{phoneNum
}
}</span>
</li>
<li
class=
"po-re"
>
<input
id=
"captcha"
class=
"input va captcha"
type=
"text"
name=
"captcha"
>
<input
id=
"send-captcha"
class=
"btn send-captcha"
type=
"button"
value=
"发送验证码"
disabled=
""
>
<div
id=
"captcha-tip"
class=
"captcha-tips"
><i
class=
"iconfont"
>
61
f;</i>验证码已发送至您的手机,请查收</div>
<span
id=
"err-tip"
class=
"err-tip hide"
>
<i></i>
<em>请输入验证码</em>
</span>
</li>
<li>
<input
name=
"area"
id=
"area"
type=
"hidden"
value=
"{{area}}"
>
<input
name=
"mobile"
id=
"mobile"
type=
"hidden"
value=
"{{phoneNum}}"
>
<input
name=
"captchaPic"
id=
"captchaPic"
type=
"hidden"
value=
"g7ce"
>
<input
name=
"refer"
id=
"refer"
type=
"hidden"
value=
""
>
<input
id=
"next-step"
class=
"btn next-step disable"
type=
"submit"
value=
"下一步"
disabled=
""
>
</li>
</ul>
</form>
</div>
{
{/
verification
}
}
</div>
{
{>
layout/simple-header
}
}
<div
class=
"verification-page back-page passport-page yoho-page clearfix"
>
{
{#
verification
}
}
{
{>
passport/cover
}
}
<div
class=
"content"
>
<form
id=
"verification-form"
class=
"verification-form"
method=
"POST"
action=
"/passport/back/backmobile"
>
<ul>
<li
class=
"head-title"
>验证身份</li>
<li
class=
"po-re"
>
<label
class=
"pn-label"
>手机号码</label>
<span
class=
"country-code"
>+
{
{area
}
}</span>
<span
class=
"phone-num"
>
{
{phoneNum
}
}</span>
</li>
<li
class=
"po-re"
>
<input
id=
"captcha"
class=
"input va captcha"
type=
"text"
name=
"captcha"
>
<input
id=
"send-captcha"
class=
"btn send-captcha"
type=
"button"
value=
"发送验证码"
disabled=
""
>
<div
id=
"captcha-tip"
class=
"captcha-tips"
><i
class=
"iconfont"
>
61
f;</i>验证码已发送至您的手机,请查收</div>
<span
id=
"err-tip"
class=
"err-tip hide"
>
<i></i>
<em>请输入验证码</em>
</span>
</li>
<li>
<input
name=
"area"
id=
"area"
type=
"hidden"
value=
"{{area}}"
>
<input
name=
"mobile"
id=
"mobile"
type=
"hidden"
value=
"{{phoneNum}}"
>
<input
name=
"captchaPic"
id=
"captchaPic"
type=
"hidden"
value=
"{{captcha}}"
>
<input
name=
"refer"
id=
"refer"
type=
"hidden"
value=
""
>
<input
id=
"next-step"
class=
"btn next-step disable"
type=
"submit"
value=
"下一步"
disabled=
""
>
</li>
</ul>
</form>
</div>
{
{/
verification
}
}
</div>
{
{>
layout/footer
}
}
\ No newline at end of file
...
...
template/www.yohobuy.com/actions/passport/login/index.phtml
View file @
2cebc90
...
...
@@ -36,7 +36,7 @@
<span
id=
"login-btn"
class=
"login-btn btn"
>登录</span>
</li>
<li
class=
"other-opts"
>
<span
class=
"remeber-me"
>
<span
class=
"reme
m
ber-me"
>
<i
class=
"iconfont"
>
613
;</i>
记住登录状态
</span>
...
...
template/www.yohobuy.com/actions/product/index/hotrank.phtml
View file @
2cebc90
...
...
@@ -30,7 +30,7 @@
{
{!
热门品牌
}
}
{
{#
hotBrands
}
}
{
{>
index/floor-header
}
}
<div
class=
"hot-brands logo-brand clearfix"
></div>
<div
class=
"hot-brands logo-brand clearfix"
data-url=
"{{brandUrl}}"
></div>
{
{/
hotBrands
}
}
{
{!
一周热卖
}
}
...
...
template/www.yohobuy.com/actions/product/index1/hotrank.phtml
View file @
2cebc90
...
...
@@ -30,7 +30,7 @@
{
{!
热门品牌
}
}
{
{#
hotBrands
}
}
{
{>
index/floor-header
}
}
<div
class=
"hot-brands logo-brand clearfix"
></div>
<div
class=
"hot-brands logo-brand clearfix"
data-url=
"{{brandUrl}}"
></div>
{
{/
hotBrands
}
}
{
{!
一周热卖
}
}
...
...
template/www.yohobuy.com/actions/product/search/search.phtml
View file @
2cebc90
{
{>
layout/header
}
}
<div
class=
"product-search-page product-page yoho-page center-content"
>
{
{#
search
}
}
{
{>
layout/path-nav
}
}
{
{>
layout/path-nav
}
}
{
{>
product/standard-content
}
}
{
{>
product/shop-entry
}
}
{
{>
product/latest-walk
}
}
{
{>
product/standard-content
}
}
{
{>
product/latest-walk
}
}
{
{/
search
}
}
</div>
{
{>
layout/footer
}
}
\ No newline at end of file
{
{>
layout/footer
}
}
...
...
template/www.yohobuy.com/partials/layout/page-header.phtml
View file @
2cebc90
...
...
@@ -84,7 +84,7 @@
{
{#
subnav
}
}
<li
class=
"sub-nav-item"
>
<a
href=
"{{link}}"
>
{
{name
}
}
{
{#is_new
}
}<span
class=
"newlogo"
></span>
{
{/is_new
}
}</a>
{
{#
thirdnav
}
}
{
{#
if
thirdnav
}
}
<div
class=
"third-nav-wrapper"
>
<div
class=
"third-nav"
>
<div
class=
"categorywrapper"
id=
"category{{../index_main}}{{index_sub}}"
>
...
...
@@ -110,7 +110,7 @@
</div>
</div>
</div>
{
{/
thirdnav
}
}
{
{/
if
}
}
</li>
{
{/
subnav
}
}
</ul>
...
...
template/www.yohobuy.com/partials/passport/register.phtml
View file @
2cebc90
...
...
@@ -4,7 +4,7 @@
<li class="clearfix">
<select id="region" class="region" name="region">
{{#each region}}
<option {{#if selected}}selected="selected"{{/if}} value="{{
id
}}">{{name}}</option>
<option {{#if selected}}selected="selected"{{/if}} value="{{
areaCode
}}">{{name}}</option>
{{/each}}
</select>
</li>
...
...
web-static/js/common.js
View file @
2cebc90
...
...
@@ -7,7 +7,7 @@ var $ = require('yoho.jquery');
require
(
'./footer'
);
require
(
'./simple-header'
);
require
(
'./header'
);
function
cookie
(
name
)
{
var
cookies
=
document
.
cookie
,
...
...
@@ -108,7 +108,7 @@ function getShoppingKey() {
a
.
async
=
1
;
a
.
src
=
j
;
m
.
parentNode
.
insertBefore
(
a
,
m
);
})(
window
,
document
,
'script'
,
'http://cdn.yoho.cn/yas-jssdk/1.0.1
3.6.3
/yas.js'
,
'_yas'
);
})(
window
,
document
,
'script'
,
'http://cdn.yoho.cn/yas-jssdk/1.0.1
4
/yas.js'
,
'_yas'
);
(
function
()
{
var
uid
=
getUid
();
...
...
@@ -118,7 +118,7 @@ function getShoppingKey() {
window
.
_ozuid
=
uid
;
//暴露ozuid
if
(
window
.
_yas
)
{
window
.
_yas
(
1
*
new
Date
(),
'1.0.1
3.6.3
'
,
'yohobuy_web'
,
uid
,
''
,
''
);
window
.
_yas
(
1
*
new
Date
(),
'1.0.1
4
'
,
'yohobuy_web'
,
uid
,
''
,
''
);
}
}());
...
...
@@ -130,4 +130,6 @@ window.getUser = getUser;
window
.
getUid
=
getUid
;
window
.
getShoppingKey
=
getShoppingKey
;
\ No newline at end of file
window
.
getShoppingKey
=
getShoppingKey
;
require
(
'./header'
);
...
...
web-static/js/header.js
View file @
2cebc90
...
...
@@ -6,11 +6,238 @@
var
$
=
require
(
'yoho.jquery'
);
var
handlebars
=
require
(
'yoho.handlebars'
);
var
json2
=
require
(
'json2'
);
var
noticeSuccess
=
false
;
var
vipInfoCombine
=
null
;
var
loginInfoCombine
=
null
;
var
apiDomain
=
'http://api.open.yohobuy.com'
;
var
cartTpl
=
''
;
var
vipInfoCombine
=
null
;
//用户信息编译模板
var
loginInfoCombine
=
null
;
//登录信息编译模板
var
apiDomain
=
'http://api.open.yohobuy.com'
;
//获取数据的地址
var
cartTpl
=
''
;
//购物车模板
/**
* 搜寻的时候过滤非法字符(+-/:等非法字符单独出现)
* @type {RegExp}
*/
var
reg
=
/^
[\^\!\+\-\(\)\:\[\]\\\{\}\~\*\?\|\&\;\/\s]{0,}
$/g
;
var
keyword
=
''
;
var
link
=
''
;
var
dataLayer
=
[];
var
requestFrame
=
null
;
var
logoanimationstart
=
0
;
var
$logotrans
=
$
(
'.icon-logo'
);
var
isen
=
true
;
var
loopdurationtime
=
500
;
var
globaltimeout
;
var
onetimeoout
;
/**
* banner和地址的映射
* @type {Object}
*/
var
bannerMap
=
{
listboys
:
'4f78b0f418fc42314d8b6e791cfb7fa8'
,
listgirls
:
'00c1f025a51b6b597dc37925951ea27d'
,
listkids
:
'b02df11184727701ade1b6de9737d08c'
,
listlifestyle
:
'fd35c52dced0c880976ba858346d1fc5'
,
searchboys
:
'9fb8986ea700cc27a8057361c3924394'
,
searchgirls
:
'e3e207a1443ca60c8037fe52a5560c18'
,
searchkids
:
'620fc77f479da8feaeb06f2324e5d0bb'
,
searchlifestyle
:
'a3c93301c6ffaf3ed0f36a4a451be36d'
,
uniquebrandboys
:
'2ebb0810c0d1a67e5229149c9c3aba7d'
,
uniquebrandgirls
:
'99e23385f4ba4b65f406b7e2968ac821'
,
uniquebrandkids
:
'a74ebc9b17840c91b9ea46568111fe6b'
,
uniquebrandlifestyle
:
'0e8c81ead53f56302baa4d0ad967f527'
,
brandsboys
:
'77b352db07129c76a9d532acad149f9f'
,
brandsgirls
:
'bf047f16e52ebc38be5ce9c7623831e6'
,
brandskids
:
'e3ae1ce9b5e13c6d271ef3eccb831652'
,
brandslifestyle
:
'e4ac8029c30f65d7f1af030980d140fe'
,
newboys
:
'869d3c5f3b450fb52101d00a61ce87cb'
,
newgirls
:
'd953b6dfdac02483d1dcce8d96055954'
,
newkids
:
'0874cb6d75df8e0e78f2d475e53ecc08'
,
newlifestyle
:
'43e8fc8e178115c262bbce2bd0012db7'
,
saleboys
:
'c846e3165c994769b4201d8c32f3ae9b'
,
salegirls
:
'52b1d389edcbc62d65de71b80c4d6ad0'
,
salekids
:
'ad8b1703c761ba00973868ab5199cc27'
,
salelifestyle
:
'7acc64905c70ac91846f43fb2cec4bbd'
,
homeboys
:
'b0856a771ef1b59ab1234c74688fa42d'
,
homegirls
:
'2bd61fa12e4933211518f70fe5ce3c48'
,
homekids
:
'895c59e8c64b40399c9533509507320c'
,
homelifestyle
:
'2e037d4e25d2767352ca3e0a4627f7bd'
,
indexboys
:
'0c911d3000f52e8ca7cffb74f5864c29'
,
indexgirls
:
'b645b8980c423ab30485e0a9d08c2ef7'
,
indexkids
:
'17f6d5d5d454d2c507bc5fcbc90f7756'
,
indexlifestyle
:
'735cd393e841762af8793c346abbbc36'
};
var
cookieMap
=
{};
function
getSource
(
column
,
postition
,
event
)
{
try
{
dataLayer
.
push
({
louceng
:
column
,
weizhi
:
postition
,
event
:
event
});
}
catch
(
e
)
{}
}
function
submitSearch
()
{
var
$keywordinput
=
$
(
'#query_key'
).
val
();
var
column
=
'Search'
;
var
postition
=
'Head Search'
;
var
event
=
'Search'
;
var
$formatkeyword
,
$formatkeywordinput
;
$formatkeyword
=
$
.
trim
(
keyword
.
toLowerCase
());
$formatkeywordinput
=
$
.
trim
(
$keywordinput
.
toLowerCase
());
getSource
(
column
,
postition
,
event
);
if
(
link
!==
''
&&
keyword
!==
''
&&
$formatkeyword
===
$formatkeywordinput
)
{
location
.
href
=
link
.
replace
(
'\''
,
''
);
}
else
{
if
(
reg
.
test
(
$keywordinput
))
{
location
.
href
=
'http://search.yohobuy.com/error?query='
+
$keywordinput
+
'&result=error'
;
}
else
{
$
(
'#searchForm'
).
submit
();
return
false
;
}
}
}
/**
* 定义购物车扩展
*/
function
actionGoodsCart
()
{
var
defaults
=
{
cookie
:
'_g'
,
cartNum
:
''
};
var
params
=
''
;
var
cartInfo
=
''
;
var
queryNum
=
0
;
var
listIndex
=
0
;
var
tmpList
=
0
;
var
totalNum
=
0
;
var
text
=
''
;
$
.
fn
.
miniCart
=
function
(
options
)
{
params
=
$
.
extend
(
defaults
,
options
);
if
(
typeof
window
.
cookie
(
params
.
cookie
)
===
'undefined'
)
{
cartInfo
=
null
;
}
else
{
cartInfo
=
json2
.
parse
(
window
.
cookie
(
params
.
cookie
));
}
if
(
cartInfo
!=
null
)
{
totalNum
=
parseInt
(
cartInfo
.
_nac
)
+
parseInt
(
cartInfo
.
_ac
);
if
(
totalNum
===
0
)
{
$
(
'#icart-num'
).
attr
(
'class'
,
'icart-num icart-none'
);
}
else
{
$
(
'#icart-num'
).
attr
(
'class'
,
'icart-num'
);
}
$
(
params
.
cartNum
).
html
(
totalNum
);
}
};
$
.
fn
.
search
=
function
(
searchDomain
)
{
function
getKeywords
(
obj
)
{
var
key
=
$
.
trim
(
$
(
obj
).
val
());
key
=
key
.
replace
(
new
RegExp
(
'\''
,
'gm'
),
''
);
//去掉特殊字符
if
(
key
===
''
)
{
$
(
'.search-list'
).
hide
();
return
false
;
}
key
=
encodeURI
(
key
);
$
.
get
(
searchDomain
+
'?callback=?&query='
+
key
,
function
(
htmlData
)
{
$
(
'.search-list'
).
html
(
htmlData
.
data
);
queryNum
=
$
(
'.search-list'
).
children
(
'li'
).
length
;
listIndex
=
-
1
;
if
(
queryNum
>
0
)
{
$
(
'.search-list'
).
show
();
}
else
{
$
(
'.search-list'
).
hide
();
}
$
(
'.search-list'
).
find
(
'a'
).
hover
(
function
()
{
$
(
this
).
css
(
'background-color'
,
'#eee'
);
},
function
()
{
$
(
this
).
css
(
'background-color'
,
'#fff'
);
});
},
'jsonp'
);
}
function
getText
(
obj
)
{
$
(
'.search-list li:eq('
+
tmpList
+
')'
).
children
(
'a'
).
css
(
'background-color'
,
'#fff'
);
$
(
'.search-list li:eq('
+
listIndex
+
')'
).
children
(
'a'
).
css
(
'background-color'
,
'#eee'
);
text
=
$
(
'.search-list li:eq('
+
listIndex
+
')'
).
children
(
'a'
).
attr
(
'title'
);
$
(
'#query_key'
).
val
(
text
);
}
return
this
.
each
(
function
()
{
$
(
this
).
keyup
(
function
(
event
)
{
if
(
event
.
which
===
38
)
{
if
(
queryNum
===
0
)
{
return
false
;
}
if
(
listIndex
===
-
1
)
{
listIndex
=
0
;
}
tmpList
=
listIndex
;
listIndex
=
(
listIndex
-
1
+
queryNum
)
%
queryNum
;
getText
(
this
);
}
else
if
(
event
.
which
===
40
)
{
if
(
queryNum
===
0
)
{
return
false
;
}
tmpList
=
listIndex
;
listIndex
=
(
listIndex
+
1
)
%
queryNum
;
getText
(
this
);
}
else
if
(
event
.
which
===
13
)
{
submitSearch
();
}
else
{
getKeywords
(
this
);
}
});
});
};
$
.
extend
({
getData
:
function
(
domain
,
options
,
onSuccess
)
{
var
defaults
=
{
page
:
1
,
method
:
''
,
v
:
1
,
return_type
:
'jsonp'
,
open_key
:
'12345'
,
tmp
:
Math
.
random
()
};
var
params
=
''
;
if
(
typeof
(
domain
)
===
undefined
||
domain
===
''
)
{
console
.
log
(
'请设置请求的api地址'
);
return
false
;
}
params
=
$
.
extend
(
defaults
,
options
);
params
.
page
=
params
.
page
||
1
;
if
(
params
.
method
===
''
)
{
console
.
log
(
'请设置请求的URL'
);
return
false
;
}
try
{
$
.
getJSON
(
domain
+
'/?callback=?'
,
params
,
function
(
_data
)
{
if
(
onSuccess
!==
''
)
{
if
(
typeof
onSuccess
(
_data
.
data
)
!==
'undefined'
)
{
json2
.
parse
(
onSuccess
(
_data
.
data
));
}
return
false
;
}
});
}
catch
(
e
)
{
console
.
log
(
e
.
message
);
}
},
getShoppingKey
:
function
()
{
var
shoppingInfo
=
window
.
cookie
(
'_g'
);
var
shoppingData
=
json2
.
parse
(
shoppingInfo
);
if
(
typeof
shoppingInfo
===
'undefined'
||
shoppingInfo
===
null
)
{
return
''
;
}
return
shoppingData
.
_k
;
}
});
}
/**
* 判断为1的helper
* @param {[type]} v1 [description]
...
...
@@ -56,8 +283,7 @@ handlebars.registerHelper('equalzero', function(v1, options) {
return
options
.
inverse
(
this
);
}
});
require
(
'../plugin/yohocookie'
);
require
(
'../plugin/yohocart'
);
/**
* 获取头部banner的回调函数
* @param {[type]} data [description]
...
...
@@ -75,42 +301,9 @@ function JsonPCallBack(data) {
}
}
/**
* 获取头部服务器维护的回调
* @param {[type]} data [description]
*/
function
NoticeCallBack
(
data
)
{
if
(
+
data
.
code
===
200
)
{
noticeSuccess
=
true
;
}
}
window
.
JsonPCallBack
=
JsonPCallBack
;
window
.
NoticeCallBack
=
NoticeCallBack
;
/**
* 检测是否获得公告
* @return {[type]} [description]
*/
function
checkNotice
()
{
var
noticeinner
;
if
(
!
noticeSuccess
)
{
noticeinner
=
'<div class="noticewrapper">'
+
'<div class="noticecontainer">'
+
'<h1 class="noticetitle">关于系统升级的公告</h1>'
+
'<div class="noticecontent">'
+
'<p class="tips">尊敬的顾客:</p>'
+
'<p class="detail">您好!为了向您提供更优质的服务,目前系统正在升级,请耐心等待。</p>'
+
'<p class="detail">'
+
'系统升级期间,部分地区用户体验会有暂时中断,如遇紧急事宜,欢迎垂询客服热线:400-889-9646 09:00-22:30(周一至周日)。稍后系统将恢复正常'
+
'</p>'
+
'<p class="detail">使用,欢迎您继续光顾YOHO!BUY有货!带来不便之处深表歉意,请您谅解!</p>'
+
'</div>'
+
'</div>'
+
'</div>'
;
$
(
'.header-topwrapper'
).
append
(
noticeinner
);
}
}
/**
* 获得banner数据
* @param {[string]} code [banner对应的编码]
...
...
@@ -119,23 +312,11 @@ function checkNotice() {
function
getBannerData
(
code
)
{
var
script
=
document
.
createElement
(
'script'
);
script
.
src
=
'http://
new.yohobuy.com/resource
/getbanner?content_code='
+
script
.
src
=
'http://
www.yohobuy.com/common
/getbanner?content_code='
+
code
+
'&client_type=web&callback=JsonPCallBack'
;
document
.
getElementsByTagName
(
'head'
)[
0
].
appendChild
(
script
);
}
/**
* 获取公告的jsonp请求
* @param {[type]} code [description]
* @return {[type]} [description]
*/
function
getNoticeData
(
code
)
{
var
script
=
document
.
createElement
(
'script'
);
script
.
src
=
'http://new.yohobuy.com/resource/getbanner?content_code='
+
code
+
'&client_type=web&callback=NoticeCallBack'
;
document
.
getElementsByTagName
(
'head'
)[
0
].
appendChild
(
script
);
window
.
setTimeout
(
checkNotice
,
5000
);
//5s后检测是否成功
}
/**
* 显示和隐藏
* @param {[type]} sourceClass [description]
...
...
@@ -221,7 +402,7 @@ function isSupportCss3Animation() {
* @param {Array} ) { var thisFunc, prefixList [description]
* @return {[type]} [description]
*/
function
requestFrame
Closer
()
{
function
requestFrame
Act
()
{
var
prefixList
=
[
'webkit'
,
'moz'
,
'ms'
];
var
func1
=
prefixList
[
0
]
+
'RequestAnimationFrame'
;
var
func2
=
prefixList
[
1
]
+
'RequestAnimationFrame'
;
...
...
@@ -229,7 +410,7 @@ function requestFrameCloser() {
if
(
window
[
func1
])
{
return
function
(
callback
)
{
window
[
func1
]
(
callback
);
requestAnimationFrame
(
callback
);
};
}
if
(
window
[
func2
])
{
...
...
@@ -248,69 +429,61 @@ function requestFrameCloser() {
}
window
.
requestFrame
=
requestFrameCloser
();
window
.
start
=
0
;
window
.
$logotrans
=
$
(
'.icon-logo'
);
window
.
isen
=
true
;
/**
* css3动画
* @return {[type]} [description]
*/
function
tsAnimate
()
{
window
.
start
+=
10
;
window
.
$logotrans
.
css
({
transform
:
'rotateX('
+
window
.
start
+
'deg)'
,
'-webkit-transform'
:
'rotateX('
+
window
.
start
+
'deg)'
,
'-moz-transform'
:
'rotateX('
+
window
.
start
+
'deg)'
logoanimationstart
+=
10
;
$logotrans
.
css
({
transform
:
'rotateX('
+
logoanimationstart
+
'deg)'
,
'-webkit-transform'
:
'rotateX('
+
logoanimationstart
+
'deg)'
,
'-moz-transform'
:
'rotateX('
+
logoanimationstart
+
'deg)'
});
if
(
window
.
start
/
90
%
2
===
1
)
{
if
(
window
.
isen
)
{
window
.
$logotrans
.
css
(
'background-image'
,
'url(http://static.yohobuy.com/newheader/img/logo1.png)'
);
window
.
isen
=
false
;
if
(
logoanimationstart
/
90
%
2
===
1
)
{
if
(
isen
)
{
$logotrans
.
css
(
'background-image'
,
'url(http://static.yohobuy.com/newheader/img/logo1.png)'
);
isen
=
false
;
}
else
{
window
.
$logotrans
.
css
(
'background-image'
,
'url(http://static.yohobuy.com/newheader/img/logo_e.png)'
);
window
.
isen
=
true
;
$logotrans
.
css
(
'background-image'
,
'url(http://static.yohobuy.com/newheader/img/logo_e.png)'
);
isen
=
true
;
}
}
if
(
window
.
start
/
90
%
2
===
0
&&
window
.
start
%
360
!==
0
)
{
if
(
logoanimationstart
/
90
%
2
===
0
&&
logoanimation
start
%
360
!==
0
)
{
window
.
setTimeout
(
tsAnimate
,
3000
);
}
else
{
if
(
window
.
start
%
360
===
0
)
{
if
(
logoanimation
start
%
360
===
0
)
{
window
.
setTimeout
(
tsAnimate
,
1
*
60
*
1000
);
}
else
{
window
.
requestFrame
(
function
()
{
requestFrame
(
function
()
{
tsAnimate
();
});
}
}
}
window
.
loopdurationtime
=
500
;
window
.
globaltimeout
;
window
.
onetimeoout
;
/**
* 淡出
* @return {[type]} [description]
*/
function
fadeAnimate
()
{
if
(
window
.
globaltimeout
)
{
window
.
clearTimeout
(
window
.
globaltimeout
);
if
(
globaltimeout
)
{
window
.
clearTimeout
(
globaltimeout
);
}
window
.
$logotrans
.
fadeOut
(
window
.
loopdurationtime
,
function
()
{
window
.
isen
=
false
;
window
.
$logotrans
.
css
(
'background-image'
,
'url(http://static.yohobuy.com/newheader/img/logo.png)'
);
window
.
$logotrans
.
fadeIn
(
window
.
loopdurationtime
,
function
()
{
window
.
onetimeoout
=
window
.
setTimeout
(
function
()
{
window
.
$logotrans
.
fadeOut
(
window
.
loopdurationtime
,
function
()
{
window
.
clearTimeout
(
window
.
onetimeoout
);
window
.
isen
=
true
;
window
.
$logotrans
.
css
(
'background-image'
,
$logotrans
.
fadeOut
(
loopdurationtime
,
function
()
{
isen
=
false
;
$logotrans
.
css
(
'background-image'
,
'url(http://static.yohobuy.com/newheader/img/logo.png)'
);
$logotrans
.
fadeIn
(
loopdurationtime
,
function
()
{
onetimeoout
=
window
.
setTimeout
(
function
()
{
$logotrans
.
fadeOut
(
loopdurationtime
,
function
()
{
window
.
clearTimeout
(
onetimeoout
);
isen
=
true
;
$logotrans
.
css
(
'background-image'
,
'url(http://static.yohobuy.com/newheader/img/logo_e.png)'
);
window
.
$logotrans
.
fadeIn
(
window
.
loopdurationtime
,
function
()
{
window
.
globaltimeout
=
window
.
setTimeout
(
fadeAnimate
,
1
*
60
*
1000
);
$logotrans
.
fadeIn
(
loopdurationtime
,
function
()
{
globaltimeout
=
window
.
setTimeout
(
fadeAnimate
,
1
*
60
*
1000
);
});
});
},
3000
);
...
...
@@ -323,6 +496,7 @@ function fadeAnimate() {
*/
function
actionTopLogoAnimate
()
{
if
(
isSupportCss3Animation
())
{
requestFrame
=
requestFrameAct
();
window
.
setTimeout
(
tsAnimate
,
3000
);
}
else
{
window
.
setTimeout
(
fadeAnimate
,
3000
);
...
...
@@ -355,134 +529,56 @@ function actionAddKeyWords() {
});
}
}
window
.
dataLayer
=
[];
function
getSource
(
column
,
postition
,
event
)
{
try
{
window
.
dataLayer
.
push
({
louceng
:
column
,
weizhi
:
postition
,
event
:
event
});
}
catch
(
e
)
{}
}
/**
* 搜寻的时候过滤非法字符(+-/:等非法字符单独出现)
* @type {RegExp}
*/
window
.
reg
=
/^
[\^\!\+\-\(\)\:\[\]\\\{\}\~\*\?\|\&\;\/\s]{0,}
$/g
;
window
.
keyword
=
''
;
window
.
link
=
''
;
window
.
submitSearch
=
function
()
{
var
$keywordinput
=
$
(
'#query_key'
).
val
();
var
column
=
'Search'
;
var
postition
=
'Head Search'
;
var
event
=
'Search'
;
var
$formatkeyword
,
$formatkeywordinput
;
$formatkeyword
=
$
.
trim
(
window
.
keyword
.
toLowerCase
());
$formatkeywordinput
=
$
.
trim
(
$keywordinput
.
toLowerCase
());
getSource
(
column
,
postition
,
event
);
if
(
window
.
link
!==
''
&&
window
.
keyword
!==
''
&&
$formatkeyword
===
$formatkeywordinput
)
{
location
.
href
=
window
.
link
.
replace
(
'\''
,
''
);
}
else
{
if
(
window
.
reg
.
test
(
$keywordinput
))
{
location
.
href
=
'http://search.yohobuy.com/error?query='
+
$keywordinput
+
'&result=error'
;
}
else
{
$
(
'#searchForm'
).
submit
();
return
false
;
}
}
};
/**
* banner和地址的映射
* @type {Object}
*/
window
.
bannerMap
=
{
listboys
:
'4f78b0f418fc42314d8b6e791cfb7fa8'
,
listgirls
:
'00c1f025a51b6b597dc37925951ea27d'
,
listkids
:
'b02df11184727701ade1b6de9737d08c'
,
listlifestyle
:
'fd35c52dced0c880976ba858346d1fc5'
,
searchboys
:
'9fb8986ea700cc27a8057361c3924394'
,
searchgirls
:
'e3e207a1443ca60c8037fe52a5560c18'
,
searchkids
:
'620fc77f479da8feaeb06f2324e5d0bb'
,
searchlifestyle
:
'a3c93301c6ffaf3ed0f36a4a451be36d'
,
uniquebrandboys
:
'2ebb0810c0d1a67e5229149c9c3aba7d'
,
uniquebrandgirls
:
'99e23385f4ba4b65f406b7e2968ac821'
,
uniquebrandkids
:
'a74ebc9b17840c91b9ea46568111fe6b'
,
uniquebrandlifestyle
:
'0e8c81ead53f56302baa4d0ad967f527'
,
brandsboys
:
'77b352db07129c76a9d532acad149f9f'
,
brandsgirls
:
'bf047f16e52ebc38be5ce9c7623831e6'
,
brandskids
:
'e3ae1ce9b5e13c6d271ef3eccb831652'
,
brandslifestyle
:
'e4ac8029c30f65d7f1af030980d140fe'
,
newboys
:
'869d3c5f3b450fb52101d00a61ce87cb'
,
newgirls
:
'd953b6dfdac02483d1dcce8d96055954'
,
newkids
:
'0874cb6d75df8e0e78f2d475e53ecc08'
,
newlifestyle
:
'43e8fc8e178115c262bbce2bd0012db7'
,
saleboys
:
'c846e3165c994769b4201d8c32f3ae9b'
,
salegirls
:
'52b1d389edcbc62d65de71b80c4d6ad0'
,
salekids
:
'ad8b1703c761ba00973868ab5199cc27'
,
salelifestyle
:
'7acc64905c70ac91846f43fb2cec4bbd'
,
homeboys
:
'b0856a771ef1b59ab1234c74688fa42d'
,
homegirls
:
'2bd61fa12e4933211518f70fe5ce3c48'
,
homekids
:
'895c59e8c64b40399c9533509507320c'
,
homelifestyle
:
'2e037d4e25d2767352ca3e0a4627f7bd'
,
indexboys
:
'0c911d3000f52e8ca7cffb74f5864c29'
,
indexgirls
:
'b645b8980c423ab30485e0a9d08c2ef7'
,
indexkids
:
'17f6d5d5d454d2c507bc5fcbc90f7756'
,
indexlifestyle
:
'735cd393e841762af8793c346abbbc36'
};
/**
* cookie 初始化
* @return {[type]} [description]
*/
function
actionInitCookie
()
{
var
$cookieGender
=
$
.
cookie
(
'_Gender'
);
var
$cookieGender
=
window
.
cookie
(
'_Gender'
);
var
$target
=
$
(
'.cure'
);
if
(
typeof
$cookieGender
!==
'undefined'
&&
$cookieGender
!==
''
)
{
$
.
setc
ookie
(
'_Gender'
,
1
,
{
window
.
setC
ookie
(
'_Gender'
,
1
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
}
if
(
$target
.
find
(
'.name-cn a'
).
text
()
===
'男生'
)
{
$
.
setc
ookie
(
'_Gender'
,
'1,3'
,
{
window
.
setC
ookie
(
'_Gender'
,
'1,3'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
$
.
setc
ookie
(
'_Channel'
,
'boys'
,
{
window
.
setC
ookie
(
'_Channel'
,
'boys'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
}
if
(
$target
.
find
(
'.name-cn a'
).
text
()
===
'女生'
)
{
$
.
setc
ookie
(
'_Gender'
,
'2,3'
,
{
window
.
setC
ookie
(
'_Gender'
,
'2,3'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
$
.
setc
ookie
(
'_Channel'
,
'girls'
,
{
window
.
setC
ookie
(
'_Channel'
,
'girls'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
}
if
(
$target
.
find
(
'.name-cn a'
).
text
()
===
'创意生活'
)
{
$
.
setc
ookie
(
'_Channel'
,
'lifestyle'
,
{
window
.
setC
ookie
(
'_Channel'
,
'lifestyle'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
}
if
(
$target
.
find
(
'.name-cn a'
).
text
()
===
'潮童'
)
{
$
.
setc
ookie
(
'_Channel'
,
'kids'
,
{
window
.
setC
ookie
(
'_Channel'
,
'kids'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
...
...
@@ -494,8 +590,6 @@ function actionInitCookie() {
* cookie集合
* @type {Object}
*/
window
.
cookieMap
=
{};
function
actionExeCookieMap
()
{
var
cookies
=
document
.
cookie
;
var
cookiearr
=
cookies
.
split
(
';'
);
...
...
@@ -505,8 +599,10 @@ function actionExeCookieMap() {
for
(
i
=
0
;
i
<
cookiearr
.
length
;
i
++
)
{
temparr
=
cookiearr
[
i
].
split
(
'='
);
key
=
temparr
[
0
].
replace
(
/
\s
/g
,
''
);
window
.
cookieMap
[
key
]
=
temparr
[
1
];
if
(
typeof
temparr
[
0
]
!==
'undefined'
)
{
key
=
temparr
[
0
].
replace
(
/
\s
/g
,
''
);
cookieMap
[
key
]
=
temparr
[
1
];
}
}
}
/**
...
...
@@ -517,47 +613,47 @@ function actionFirstMenuClick() {
var
$cookieGender
;
$
(
'.first-nav-item'
).
click
(
function
()
{
$cookieGender
=
$
.
cookie
(
'_Gender'
);
$cookieGender
=
window
.
cookie
(
'_Gender'
);
if
(
typeof
$cookieGender
!==
'undefined'
&&
$cookieGender
!==
''
)
{
$
.
setc
ookie
(
'_Gender'
,
1
,
{
window
.
setC
ookie
(
'_Gender'
,
1
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
}
if
(
$
(
this
).
find
(
'.name-cn a'
).
text
()
===
'男生'
)
{
$
.
setc
ookie
(
'_Gender'
,
'1,3'
,
{
window
.
setC
ookie
(
'_Gender'
,
'1,3'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
$
.
setc
ookie
(
'_Channel'
,
'boys'
,
{
window
.
setC
ookie
(
'_Channel'
,
'boys'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
}
if
(
$
(
this
).
find
(
'.name-cn a'
).
text
()
===
'女生'
)
{
$
.
setc
ookie
(
'_Gender'
,
'2,3'
,
{
window
.
setC
ookie
(
'_Gender'
,
'2,3'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
$
.
setc
ookie
(
'_Channel'
,
'girls'
,
{
window
.
setC
ookie
(
'_Channel'
,
'girls'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
}
if
(
$
(
this
).
find
(
'.name-cn a'
).
text
()
===
'创意生活'
)
{
$
.
setc
ookie
(
'_Channel'
,
'lifestyle'
,
{
window
.
setC
ookie
(
'_Channel'
,
'lifestyle'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
}
if
(
$
(
this
).
find
(
'.name-cn a'
).
text
()
===
'潮童'
)
{
$
.
setc
ookie
(
'_Channel'
,
'kids'
,
{
window
.
setC
ookie
(
'_Channel'
,
'kids'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
...
...
@@ -566,7 +662,7 @@ function actionFirstMenuClick() {
});
$
(
'#backToOld'
).
click
(
function
()
{
$
.
setc
ookie
(
'_New'
,
1
,
{
window
.
setC
ookie
(
'_New'
,
1
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
});
...
...
@@ -597,10 +693,10 @@ function loadCartData() {
method
:
'open.Shoppingcart.getCartData'
,
shopping_key
:
$
.
getShoppingKey
()
},
function
(
jsonData
)
{
if
(
window
.
cartTpl
===
''
)
{
window
.
cartTpl
=
handlebars
.
compile
(
$
(
'#mini-cart-tpl'
).
html
());
if
(
cartTpl
===
''
)
{
cartTpl
=
handlebars
.
compile
(
$
(
'#mini-cart-tpl'
).
html
());
}
$
(
'#miniCartBox'
).
children
(
'.gobuy-wrapper'
).
html
(
window
.
cartTpl
({
$
(
'#miniCartBox'
).
children
(
'.gobuy-wrapper'
).
html
(
cartTpl
({
carData
:
jsonData
}));
if
(
parseInt
(
$
(
'.ic-infomation'
).
html
())
===
0
)
{
...
...
@@ -608,11 +704,11 @@ function loadCartData() {
'<h3 class="information">您的购物车暂无商品</h3></div>'
);
}
if
(
$
(
'#miniCartBox .goods-list li'
).
length
<
1
)
{
shoppingInfo
=
$
.
cookie
(
'_g'
);
shoppingInfo
=
window
.
cookie
(
'_g'
);
shoppingData
=
json2
.
parse
(
shoppingInfo
);
if
(
shoppingData
!==
null
)
{
strK
=
'{"_k":"'
+
shoppingData
.
_k
+
'","_nac":0'
+
',"_ac":0,"_r":0}'
;
$
.
setc
ookie
(
'_g'
,
strK
,
{
window
.
setC
ookie
(
'_g'
,
strK
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
});
...
...
@@ -636,11 +732,11 @@ function delCartGoods(id, isreduce) {
id
:
id
,
isreduce
:
isreduce
},
function
(
jsonData
)
{
var
shoppingInfo
=
$
.
cookie
(
'_g'
);
var
shoppingInfo
=
window
.
cookie
(
'_g'
);
var
shoppingData
=
json2
.
parse
(
shoppingInfo
);
var
strK
=
'{"_k":"'
+
shoppingData
.
_k
+
'","_nac":'
+
jsonData
.
total_goods_num
+
',"_ac":0,"_r":0}'
;
$
.
setc
ookie
(
'_g'
,
strK
,
{
window
.
setC
ookie
(
'_g'
,
strK
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
});
...
...
@@ -752,43 +848,42 @@ function actionGetBannerAndNotice() {
var
firstarea
;
if
(
url
.
indexOf
(
'search'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
'search'
+
window
.
cookieMap
.
_Channel
];
code
=
bannerMap
[
'search'
+
cookieMap
.
_Channel
];
}
if
(
url
.
indexOf
(
'list'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
'list'
+
window
.
cookieMap
.
_Channel
];
code
=
bannerMap
[
'list'
+
cookieMap
.
_Channel
];
}
if
(
url
.
indexOf
(
'brands'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
'brands'
+
window
.
cookieMap
.
_Channel
];
code
=
bannerMap
[
'brands'
+
cookieMap
.
_Channel
];
}
if
(
url
.
indexOf
(
'new'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
'new'
+
window
.
cookieMap
.
_Channel
];
code
=
bannerMap
[
'new'
+
cookieMap
.
_Channel
];
}
if
(
url
.
indexOf
(
'sale'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
'sale'
+
window
.
cookieMap
.
_Channel
];
code
=
bannerMap
[
'sale'
+
cookieMap
.
_Channel
];
}
if
(
url
.
indexOf
(
'home'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
'home'
+
window
.
cookieMap
.
_Channel
];
code
=
bannerMap
[
'home'
+
cookieMap
.
_Channel
];
}
if
(
url
.
indexOf
(
'kids'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
INDEXKIDS
];
code
=
bannerMap
[
INDEXKIDS
];
}
if
(
url
.
indexOf
(
'woman'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
INDEXWOMAN
];
code
=
bannerMap
[
INDEXWOMAN
];
}
if
(
url
.
indexOf
(
'lifestyle'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
INDEXLIFESTYLE
];
code
=
bannerMap
[
INDEXLIFESTYLE
];
}
if
(
url
.
indexOf
(
'www.yohobuy.com'
)
!==
-
1
&&
window
.
location
.
pathname
===
'/'
)
{
code
=
window
.
bannerMap
[
INDEXBOYS
];
code
=
bannerMap
[
INDEXBOYS
];
}
firstarea
=
host
.
split
(
'.'
)[
0
];
if
(
firstarea
!==
'list'
&&
firstarea
!==
'search'
&&
firstarea
!==
'www'
&&
firstarea
!==
'new'
&&
firstarea
!==
'item'
&&
firstarea
!==
'guang'
)
{
code
=
window
.
bannerMap
[
UNIQUEBRAND
+
window
.
cookieMap
.
_Channel
];
code
=
bannerMap
[
UNIQUEBRAND
+
cookieMap
.
_Channel
];
}
getBannerData
(
code
);
//获得banner信息
getNoticeData
(
code
);
//获得公告信息
}
...
...
@@ -879,12 +974,12 @@ function actionLoginState(_data) {
'[<a href="http://www.yohobuy.com/reg.html" onclick="" class="list-a login-out">免费注册</a>]'
+
'{{/equalone}}'
;
var
$boxObj
=
$
(
'#loginBox'
);
var
info
=
$
.
cookie
(
'_UID'
)
||
''
;
var
name
=
_data
.
data
.
profile_name
||
''
;
var
info
=
window
.
cookie
(
'_UID'
);
var
name
=
_data
.
data
.
profile_name
;
var
_length
=
0
;
var
t
=
0
;
var
char
=
''
;
var
user
=
info
.
split
(
'::'
)
||
''
;
var
user
=
info
.
split
(
'::'
);
var
userName
=
user
[
0
]
||
' '
;
var
_logout
=
''
;
var
islogin
=
'1'
;
...
...
@@ -999,8 +1094,10 @@ function actionLoginInfo() {
};
$
.
getData
(
apiDomain
,
param
,
function
(
_data
)
{
actionLoginState
(
_data
);
// 更改登录状态
actionVipInfo
(
_data
);
//获得vip;
if
(
_data
.
result
!==
-
1
)
{
actionLoginState
(
_data
);
// 更改登录状态
actionVipInfo
(
_data
);
//获得vip;
}
});
}
/**
...
...
@@ -1011,6 +1108,7 @@ function init() {
actionExeTemplate
();
//处理模板
actionInitCookie
();
//初始化cookie
actionExeCookieMap
();
//格式化cookie
actionGoodsCart
();
//初始化购物车插件
actionYoHoGroup
();
// yoho集团鼠标效果
actionTopTagToggle
();
// yoho上部分开关
actionTopLogoAnimate
();
//yoho logo动画
...
...
web-static/js/passport/login.js
View file @
2cebc90
...
...
@@ -25,6 +25,8 @@ var $emailAutoComplete = $('#email-autocomplete');
var
mailPhoneRegx
=
require
(
'./mail-phone-regx'
);
var
$remember
=
$
(
'.remember-me'
);
//checkbox status unicode
var
checkbox
=
{
checked
:
''
,
...
...
@@ -232,7 +234,7 @@ $emailAutoComplete.on('click', 'li', function() {
});
//记住登录状态
$
(
'.remeber-me'
)
.
on
(
'click'
,
function
()
{
$
remember
.
on
(
'click'
,
function
()
{
var
$this
=
$
(
this
);
$this
.
toggleClass
(
'checked'
);
...
...
@@ -266,15 +268,19 @@ $('#login-btn').on('click', function() {
data
:
{
areaCode
:
$countryCodeHide
.
val
().
replace
(
'+'
,
''
),
account
:
$
.
trim
(
$account
.
val
()),
password
:
$
.
trim
(
$password
.
val
())
password
:
$
.
trim
(
$password
.
val
()),
isRemember
:
$remember
.
hasClass
(
'checked'
)
?
true
:
false
},
success
:
function
(
data
)
{
if
(
data
.
code
===
400
)
{
if
(
data
.
code
===
200
)
{
if
(
data
.
data
)
{
//防止data.data为undefined时下行语句执行出错而导致脚本不能走到complete去处理authing
location
.
href
=
data
.
data
.
href
;
}
}
else
{
$passwordTip
.
removeClass
(
'hide'
).
children
(
'em'
).
text
(
data
.
message
);
$password
.
addClass
(
'error'
);
return
;
}
else
{
location
.
href
=
data
.
data
.
href
;
}
},
complete
:
function
()
{
...
...
web-static/js/passport/reg.js
View file @
2cebc90
...
...
@@ -136,9 +136,10 @@ function picCaptchaAjaxFn(page, callback) {
type
:
'POST'
,
url
:
url
,
data
:
{
code
:
$ca
.
val
(),
mobile
:
$pn
.
val
(),
area
:
$region
.
text
().
split
(
'+'
)[
1
]
code
:
$ca
.
val
()
//mobile: $pn.val(),
//area: $region.text().split('+')[1]
}
}).
then
(
function
(
data
)
{
switch
(
data
.
code
)
{
...
...
@@ -530,7 +531,7 @@ exports.init = function(page) {
data
:
{
area
:
$region
.
text
().
split
(
'+'
)[
1
],
mobile
:
$pn
.
val
(),
captcha
:
$ca
.
val
(),
verifyCode
:
$ca
.
val
(),
code
:
$mc
.
val
(),
password
:
$pwd
.
val
()
}
...
...
web-static/sass/passport/_login.scss
View file @
2cebc90
...
...
@@ -60,7 +60,7 @@ $third: sprite-map("passport/third/*.png");
}
}
.remeber-me
{
.reme
m
ber-me
{
cursor
:
pointer
;
}
...
...
web-static/sass/product/_index.scss
View file @
2cebc90
@import
"search"
,
"list"
,
"new-sale"
,
"filter-box"
,
"sort-pager"
,
"good"
,
"latest-walk"
,
"left-content"
,
"no-result"
;
@import
"search"
,
"list"
,
"new-sale"
,
"filter-box"
,
"sort-pager"
,
"good"
,
"latest-walk"
,
"left-content"
,
"no-result"
,
"hot-rank"
;
.product-page
{
...
...
yohobuy/www.yohobuy.com/application/Bootstrap.php
View file @
2cebc90
...
...
@@ -90,6 +90,10 @@ class Bootstrap extends Bootstrap_Abstract
case
'list'
:
// 商品列表
$module
=
'Product'
;
break
;
case
'sale'
://
促销
$module
=
'Product'
;
$controller
=
'sale'
;
default
:
// 其它(识别为品牌)
$module
=
'Product'
;
$action
=
'Brand'
;
...
...
yohobuy/www.yohobuy.com/application/models/Passport/Passport.php
View file @
2cebc90
...
...
@@ -24,6 +24,7 @@ class PassportModel
const
BACK_LFFT_BANNER_CODE
=
'3bbaf502c447a2ddad60879042e286d8'
;
//找回密码左边的banner
const
SIGNIN_LEFT_BANNER_CODE
=
'db350894e01e90eac55cd3a13ad77331'
;
//登录页左边的banner
const
AUTOUSERINFO_LEFT_BANNER_CODE
=
'c62d5da06d843b6ed78d8d27e87fa143'
;
//完善信息页左边的banner
const
BACK_FIND_SECRET_KEY
=
'_+@#$%^'
;
//简单头部
public
static
function
getSimpleHeader
(
$isLogin
,
$username
=
''
)
...
...
@@ -75,6 +76,11 @@ class PassportModel
$ret
[
'img'
]
=
Images
::
getImageUrl
(
$val
[
'src'
],
252
,
190
);
$ret
[
'url'
]
=
$val
[
'url'
];
}
else
{
$ret
[
'img'
]
=
'http://img12.static.yhbimg.com/yhb-img01/2015/12/01/07/020a0b6e7ff908d0c2bc4045b4fef42b9f.png?imageView/2/w/252/h/190'
;
$ret
[
'url'
]
=
''
;
}
return
$ret
;
}
...
...
yohobuy/www.yohobuy.com/application/models/Product/Search.php
View file @
2cebc90
...
...
@@ -49,12 +49,7 @@ class SearchModel
//用户浏览记录
$result
[
'data'
][
'filter'
][
'review'
]
=
SearchData
::
getRecentReview
();
// 组织模板数据
$list
=
HelperSearch
::
getList
(
$result
,
$options
);
$data
=
array
(
//初始化js
'productListPage'
=>
true
,
'list'
=>
$list
);
$data
=
HelperSearch
::
getList
(
$result
,
$options
);
}
return
$data
;
}
...
...
@@ -67,31 +62,21 @@ class SearchModel
*/
public
static
function
searchData
(
$condition
,
$options
){
$data
=
self
::
getSearchData
(
$condition
,
$options
);
//过滤频道
if
(
isset
(
$condition
[
'gender'
]))
{
unset
(
$data
[
'list'
][
'filters'
][
'channel'
]);
}
//过滤品牌
if
(
isset
(
$condition
[
'brand'
]))
{
unset
(
$data
[
'list'
][
'filters'
][
'brand'
]);
}
//过滤价格
if
(
isset
(
$condition
[
'price'
]))
{
unset
(
$data
[
'list'
][
'filters'
][
'price'
]);
unset
(
$data
[
'list'
][
'filters'
][
'customPrice'
]);
}
//过滤颜色
if
(
isset
(
$condition
[
'color'
]))
{
unset
(
$data
[
'list'
][
'filters'
][
'color'
]);
}
//过滤风格
if
(
isset
(
$condition
[
'style'
]))
{
unset
(
$data
[
'list'
][
'filters'
][
'seniorChose'
]);
}
//过滤尺码
if
(
isset
(
$condition
[
'size'
]))
{
unset
(
$data
[
'list'
][
'filters'
][
'size'
]);
//获取品牌店铺信息
if
(
isset
(
$condition
[
'query'
]))
{
$param
[
'keyword'
]
=
$condition
[
'query'
];
$result
=
SearchData
::
getShop
(
$param
);
if
(
isset
(
$result
[
'code'
])
&&
$result
[
'code'
]
===
200
&&
isset
(
$result
[
'data'
])
&&
!
empty
(
$result
[
'data'
]))
{
//调用品牌分类
$class
[
'brand'
]
=
$result
[
'data'
][
'id'
];
$brandSort
=
SearchData
::
getClassesData
(
$class
);
$shop
=
$result
[
'data'
];
if
(
isset
(
$brandSort
[
'data'
][
'sort'
])
&&
!
empty
(
$brandSort
[
'data'
][
'sort'
]))
$shop
[
'sort'
]
=
$brandSort
[
'data'
][
'sort'
];
$shopEntry
=
HelperSearch
::
shop
(
$shop
);
}
}
$data
[
'shopEntry'
]
=
isset
(
$shopEntry
)
?
$shopEntry
:
array
();
return
$data
;
}
...
...
yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Back.php
View file @
2cebc90
...
...
@@ -56,6 +56,7 @@ class BackController extends WebAction
$data
=
BackData
::
sendCodeToMobile
(
$mobile
);
$this
->
setSession
(
'phoneNum'
,
$phoneNum
);
$this
->
setSession
(
'area'
,
$area
);
$this
->
setSession
(
'captcha'
,
$captcha
);
if
(
$data
[
'code'
]
==
200
)
{
$this
->
redirect
(
'verification'
);
}
...
...
@@ -66,7 +67,7 @@ class BackController extends WebAction
}
/**
* 发送邮件
* 发送邮件
页面
*/
public
function
sendemailAction
()
{
$phoneNum
=
$this
->
getSession
(
'phoneNum'
);
...
...
@@ -96,14 +97,14 @@ class BackController extends WebAction
'sendEmail'
=>
array
(
'coverHref'
=>
$banner
[
'url'
],
'coverImg'
=>
$banner
[
'img'
],
'countrys'
=>
array
()
'countrys'
=>
array
()
,
)
);
$this
->
_view
->
display
(
'send-email'
,
$data
);
}
/**
* 重置密码
* 重置密码
页面
*/
public
function
backcodeAction
()
{
$code
=
$this
->
get
(
'code'
);
...
...
@@ -118,14 +119,15 @@ class BackController extends WebAction
'resetPwd'
=>
array
(
'coverHref'
=>
$banner
[
'url'
],
'coverImg'
=>
$banner
[
'img'
],
'countrys'
=>
array
()
'countrys'
=>
array
(),
'code'
=>
$code
,
)
);
$this
->
_view
->
display
(
'reset-pwd'
,
$data
);
}
/**
* 更新密码
* 更新密码
接口
*
*/
public
function
updateAction
()
...
...
@@ -134,10 +136,22 @@ class BackController extends WebAction
$password
=
$this
->
post
(
'pwd'
);
$info
=
$this
->
checkCode
(
$code
);
if
(
Helpers
::
verifyPassword
(
$password
)
&&
!
empty
(
$info
))
{
$uid
=
$info
[
'uid'
];
//修改密码
if
(
isset
(
$info
[
'mobile'
]))
{
//手机号修改密码
$mobile
=
$info
[
'mobile'
];
$token
=
$info
[
'token'
];
$area
=
$info
[
'area'
];
$data
=
BackData
::
modifyPasswordByMobile
(
$mobile
,
$token
,
$password
,
$area
);
if
(
$data
[
'code'
])
{
$this
->
redirect
(
'resetSuccess'
);
}
}
else
if
(
isset
(
$info
[
'uid'
]))
{
//其他方式修改密码
$uid
=
$info
[
'uid'
];
$this
->
redirect
(
'resetSuccess'
);
}
}
//跳转错误页面
$this
->
redirect
(
'/error/index'
);
}
/**
...
...
@@ -157,14 +171,15 @@ class BackController extends WebAction
}
/**
* 手机验证
* 手机验证
页面
*/
public
function
verificationAction
()
{
$phoneNum
=
$this
->
getSession
(
'phoneNum'
);
$area
=
$this
->
getSession
(
'area'
);
// if(empty($phoneNum)) {
// $this->redirect('index');
// }
$captcha
=
$this
->
getSession
(
'captcha'
);
if
(
empty
(
$phoneNum
))
{
$this
->
redirect
(
'index'
);
}
$banner
=
PassportModel
::
getLeftBanner
(
PassportModel
::
BACK_LFFT_BANNER_CODE
);
$data
=
array
(
'simpleHeader'
=>
PassportModel
::
getSimpleHeader
(
false
),
...
...
@@ -174,6 +189,7 @@ class BackController extends WebAction
'coverImg'
=>
$banner
[
'img'
],
'phoneNum'
=>
$phoneNum
,
'area'
=>
$area
,
'captcha'
=>
$captcha
,
'countrys'
=>
array
()
)
);
...
...
@@ -181,6 +197,32 @@ class BackController extends WebAction
}
/**
* 手机找回密码验证
*/
public
function
backmobileAction
()
{
$mobile
=
$this
->
post
(
'mobile'
);
//phoneNum
$area
=
$this
->
post
(
'area'
);
//$captcha = $this->post('captcha');
$code
=
$this
->
post
(
'captcha'
);
//code
if
(
$this
->
getSession
(
'phoneNum'
)
==
$mobile
&&
$this
->
getSession
(
'area'
)
==
$area
)
{
$result
=
BackData
::
validateMobileCode
(
$mobile
,
$code
,
$area
);
if
(
$result
[
'code'
]
==
200
)
{
$str
=
json_encode
(
array
(
'mobile'
=>
$mobile
,
'area'
=>
$area
,
'token'
=>
$result
[
'data'
][
'token'
],
'create_time'
=>
time
()
));
$code
=
AuthCode
::
encode
(
$str
,
PassportModel
::
BACK_FIND_SECRET_KEY
);
$url
=
'/passport/back/backcode?code='
.
base64_encode
(
$code
);
$this
->
redirect
(
SITE_MAIN
.
$url
);
}
}
}
/**
* 检查code
*
* @param string $code
...
...
@@ -188,9 +230,8 @@ class BackController extends WebAction
*/
private
function
checkCode
(
$code
)
{
$key
=
'_+@#$%^'
;
$code
=
base64_decode
(
$code
);
$info
=
json_decode
(
AuthCode
::
decode
(
$code
,
$key
),
true
);
$info
=
json_decode
(
AuthCode
::
decode
(
$code
,
PassportModel
::
BACK_FIND_SECRET_KEY
),
true
);
if
(
$info
[
'create_time'
]
<
1
||
(
time
()
-
$info
[
'create_time'
])
>
86400
)
{
return
array
();
}
...
...
yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Login.php
View file @
2cebc90
<?php
use
Action\
Abstract
Action
;
use
Action\
Web
Action
;
use
LibModels\Web\Passport\RegData
;
use
LibModels\Web\Passport\LoginData
;
use
Passport\PassportModel
as
PassportModel
;
use
Plugin\Helpers
;
class
LoginController
extends
AbstractAction
class
LoginController
extends
WebAction
{
/**
...
...
@@ -23,7 +22,7 @@ class LoginController extends AbstractAction
$this
->
setCookie
(
'_TOKEN'
,
''
);
//登录后跳转页面
$refer
=
empty
(
$_SERVER
[
"HTTP_REFERER"
])
?
''
:
$_SERVER
[
"HTTP_REFERER"
];
$refer
=
empty
(
$_SERVER
[
"HTTP_REFERER"
])
?
''
:
$_SERVER
[
"HTTP_REFERER"
];
if
(
!
empty
(
$refer
))
{
$this
->
setCookie
(
'refer'
,
$refer
);
}
...
...
@@ -40,13 +39,21 @@ class LoginController extends AbstractAction
$simpleHeader
=
PassportModel
::
getSimpleHeader
(
$isLogin
,
$username
);
//获取登陆页左侧资源
$cover
=
PassportModel
::
getLeftBanner
(
PassportModel
::
SIGNIN_LEFT_BANNER_CODE
);
//是否记住密码
$isRemember
=
$this
->
getCookie
(
'isRemember'
,
FALSE
);
$account
=
''
;
$password
=
''
;
if
(
$isRemember
)
{
$account
=
$this
->
decrypt
(
$this
->
getCookie
(
'account'
,
''
));
$password
=
$this
->
decrypt
(
$this
->
getCookie
(
'userInfo'
,
''
));
}
//整合
$data
=
array
(
'loginPage'
=>
true
,
'simpleHeader'
=>
$simpleHeader
,
'passport'
=>
array
(
'coverHref'
=>
$cover
[
'url'
],
'coverImg'
=>
!
empty
(
$cover
[
'img'
])
?
$cover
[
'img'
]
:
'http://img12.static.yhbimg.com/yhb-img01/2015/12/01/07/020a0b6e7ff908d0c2bc4045b4fef42b9f.png?imageView/2/w/252/h/190'
,
'coverImg'
=>
!
empty
(
$cover
[
'img'
])
?
$cover
[
'img'
]
:
'http://img12.static.yhbimg.com/yhb-img01/2015/12/01/07/020a0b6e7ff908d0c2bc4045b4fef42b9f.png?imageView/2/w/252/h/190'
,
'countryCode'
=>
'+86'
,
'countryName'
=>
'中国'
,
'countryList'
=>
RegData
::
getAreasData
(),
...
...
@@ -58,6 +65,9 @@ class LoginController extends AbstractAction
'alipayLogin'
=>
Helpers
::
url
(
'/passport/autosign/alipay'
),
'doubanLogin'
=>
Helpers
::
url
(
'/passport/autosign/douban'
),
'renrenLogin'
=>
Helpers
::
url
(
'/passport/autosign/renren'
),
'isRemember'
=>
$isRemember
,
'password'
=>
$password
,
'account'
=>
$account
),
);
...
...
@@ -84,15 +94,17 @@ class LoginController extends AbstractAction
/* 判断参数是否传递 */
$area
=
trim
(
$this
->
post
(
'areaCode'
,
'86'
));
$
profile
=
trim
(
$this
->
post
(
'account'
));
$
account
=
trim
(
$this
->
post
(
'account'
));
$password
=
trim
(
$this
->
post
(
'password'
));
if
(
!
is_numeric
(
$area
)
||
empty
(
$profile
)
||
empty
(
$password
))
{
$isRemember
=
trim
(
$this
->
post
(
'isRemember'
));
$isRemember
=
false
;
if
(
!
is_numeric
(
$area
)
||
empty
(
$account
)
||
empty
(
$password
))
{
break
;
}
/* 判断参数是否有效 */
$verifyEmail
=
Helpers
::
verifyEmail
(
$profile
);
$verifyMobile
=
(
$area
===
'86'
)
?
Helpers
::
verifyMobile
(
$profile
)
:
Helpers
::
verifyAreaMobile
(
$profile
,
$area
);
$verifyEmail
=
Helpers
::
verifyEmail
(
$account
);
$verifyMobile
=
(
$area
===
'86'
)
?
Helpers
::
verifyMobile
(
$account
)
:
Helpers
::
verifyAreaMobile
(
$account
,
$area
);
if
(
!
$verifyEmail
&&
!
$verifyMobile
)
{
break
;
}
...
...
@@ -106,10 +118,21 @@ class LoginController extends AbstractAction
/* 调用登录接口进行登录 */
// 获取未登录时的唯一识别码
$shoppingKey
=
Helpers
::
getShoppingKeyByCookie
();
$data
=
LoginData
::
signin
(
$area
,
$
profile
,
$password
,
$shoppingKey
);
$data
=
LoginData
::
signin
(
$area
,
$
account
,
$password
,
$shoppingKey
);
if
(
!
isset
(
$data
[
'code'
])
||
$data
[
'code'
]
!=
200
||
!
isset
(
$data
[
'data'
][
'uid'
]))
{
break
;
}
//登录成功记录账户信息
if
(
$isRemember
)
{
$this
->
setCookie
(
'account'
,
$this
->
encrypt
(
$account
),
time
()
+
3600
*
24
*
7
,
'/'
);
$this
->
setCookie
(
'userInfo'
,
$this
->
encrypt
(
$password
),
time
()
+
3600
*
24
*
7
,
'/'
);
$this
->
setCookie
(
'isRemember'
,
$isRemember
,
time
()
+
3600
*
24
*
7
);
}
else
{
$this
->
setCookie
(
'account'
,
''
,
-
1
,
'/'
);
$this
->
setCookie
(
'userInfo'
,
''
,
-
1
,
'/'
);
$this
->
setCookie
(
'isRemember'
,
''
,
-
1
,
'/'
);
}
$refer
=
$this
->
getCookie
(
'refer'
);
if
(
empty
(
$refer
))
{
...
...
@@ -152,4 +175,60 @@ class LoginController extends AbstractAction
$this
->
go
(
$refer
);
}
/*
* 加密算法
*/
private
function
encrypt
(
$data
,
$key
=
'yohobuy'
)
{
$key
=
md5
(
$key
);
$x
=
0
;
$str
=
''
;
$char
=
''
;
$len
=
strlen
(
$data
);
$l
=
strlen
(
$key
);
for
(
$i
=
0
;
$i
<
$len
;
$i
++
)
{
if
(
$x
==
$l
)
{
$x
=
0
;
}
$char
.=
$key
{
$x
};
$x
++
;
}
for
(
$i
=
0
;
$i
<
$len
;
$i
++
)
{
$str
.=
chr
(
ord
(
$data
{
$i
})
+
(
ord
(
$char
{
$i
}))
%
256
);
}
return
base64_encode
(
$str
);
}
/*
* 解密算法
*/
private
function
decrypt
(
$data
,
$key
=
'yohobuy'
)
{
$key
=
md5
(
$key
);
$x
=
0
;
$str
=
''
;
$char
=
''
;
$data
=
base64_decode
(
$data
);
$len
=
strlen
(
$data
);
$l
=
strlen
(
$key
);
for
(
$i
=
0
;
$i
<
$len
;
$i
++
)
{
if
(
$x
==
$l
)
{
$x
=
0
;
}
$char
.=
substr
(
$key
,
$x
,
1
);
$x
++
;
}
for
(
$i
=
0
;
$i
<
$len
;
$i
++
)
{
if
(
ord
(
substr
(
$data
,
$i
,
1
))
<
ord
(
substr
(
$char
,
$i
,
1
)))
{
$str
.=
chr
((
ord
(
substr
(
$data
,
$i
,
1
))
+
256
)
-
ord
(
substr
(
$char
,
$i
,
1
)));
}
else
{
$str
.=
chr
(
ord
(
substr
(
$data
,
$i
,
1
))
-
ord
(
substr
(
$char
,
$i
,
1
)));
}
}
return
$str
;
}
}
...
...
yohobuy/www.yohobuy.com/application/modules/Product/controllers/List.php
View file @
2cebc90
...
...
@@ -90,7 +90,12 @@ class ListController extends WebAction
$params
=
array_filter
(
$params
);
//每页记录数减1,下一页占位
$params
[
'viewNum'
]
=
$params
[
'viewNum'
]
-
1
;
$data
=
SearchModel
::
getSearchData
(
$params
,
$options
);
$list
=
SearchModel
::
getSearchData
(
$params
,
$options
);
$data
=
array
(
//初始化js
'productListPage'
=>
true
,
'list'
=>
$list
);
$cate
=
array
(
'boys'
,
'girls'
,
'kids'
,
'lifestyle'
);
$this
->
setWebNavHeader
(
$cate
[
$gender
-
1
]);
$this
->
_view
->
display
(
'list'
,
$data
);
...
...
yohobuy/www.yohobuy.com/application/modules/Product/controllers/Search.php
View file @
2cebc90
...
...
@@ -30,8 +30,6 @@ class SearchController extends WebAction
foreach
(
$condition
as
$key
=>
$val
){
$condition
[
$key
]
=
rawurldecode
(
$val
);
}
//关键词
$condition
[
'query'
]
=
'鞋'
;
//性別(频道)
$gender_cookie
=
!
isset
(
$_COOKIE
[
'_Gender'
])
?
'3'
:
(
$_COOKIE
[
'_Gender'
]
==
'2,3'
?
2
:
1
);
$gender
=
$this
->
get
(
'gender'
)
?
(
$this
->
get
(
'gender'
)
==
'2,3'
?
2
:
1
)
:
$gender_cookie
;
...
...
@@ -57,7 +55,7 @@ class SearchController extends WebAction
$minImgSize
=
array
(
60
,
80
);
}
//自定义搜索价格
if
(
isset
(
$condition
[
'price'
])
||
!
empty
(
$condition
[
'price'
]))
{
if
(
isset
(
$condition
[
'price'
])
&&
!
empty
(
$condition
[
'price'
]))
{
$price
=
explode
(
','
,
$condition
[
'price'
]);
if
(
!
$price
[
0
])
{
$price
[
0
]
=
0
;
...
...
@@ -90,13 +88,15 @@ class SearchController extends WebAction
$params
=
array_filter
(
$params
);
//每页记录数减1,下一页占位
$params
[
'viewNum'
]
=
$params
[
'viewNum'
]
-
1
;
$options
[
'controller'
]
=
$this
->
_request
->
controller
;
$searchData
=
SearchModel
::
searchData
(
$params
,
$options
);
$cate
=
array
(
'boys'
,
'girls'
,
'kids'
,
'lifestyle'
);
$this
->
setWebNavHeader
(
$cate
[
$gender
-
1
]);
$data
=
array
(
//初始化js
'searchListPage'
=>
true
,
'search'
=>
$searchData
);
$data
[
'search'
]
=
$searchData
[
'list'
];
$this
->
_view
->
display
(
'search'
,
$data
);
}
}
\ No newline at end of file
...
...
Please
register
or
login
to post a comment