Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
YOHOBUYWAP
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Plain Diff
Browse Files
Authored by
毕凯
9 years ago
Commit
9271c66b4d0e10a4dd34b518231c6d88482c5781
2 parents
d40a175d
82c05be0
Merge branch 'develop' of
http://git.dev.yoho.cn/web/yohobuy
into develop
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
178 additions
and
106 deletions
library/LibModels/Web/Home/IndexData.php
static/js/cart/chose-panel.js
static/sass/me/_home.scss
template/m.yohobuy.com/partials/cart/chose-panel.phtml
yohobuy/www.yohobuy.com/application/controllers/Common.php
library/LibModels/Web/Home/IndexData.php
View file @
9271c66
...
...
@@ -42,4 +42,30 @@ class IndexData
$params
[
'client_secret'
]
=
Sign
::
getSign
(
$params
);
return
Yohobuy
::
get
(
Yohobuy
::
SERVICE_URL
.
self
::
URL_OPERATIONS_RESOURCE_GET
,
$params
);
}
/**
* 邮箱订阅
*
* @param string $email
* @param string $uid
* @return array
*/
public
static
function
emailSubscriber
(
$email
,
$uid
=
0
)
{
//TODO 走老接口
// 构建必传参数
$param
=
Yohobuy
::
param
();
$param
[
'page'
]
=
1
;
$param
[
'open_key'
]
=
'12345'
;
$param
[
'method'
]
=
'open.subscriber.subscriber'
;
$param
[
'email'
]
=
$email
;
$param
[
'uid'
]
=
$uid
;
$param
[
'client_secret'
]
=
Sign
::
getSign
(
$param
);
unset
(
$param
[
'app_version'
]);
unset
(
$param
[
'client_type'
]);
unset
(
$param
[
'os_version'
]);
unset
(
$param
[
'screen_size'
]);
unset
(
$param
[
'v'
]);
return
Yohobuy
::
get
(
Yohobuy
::
API_URL
,
$param
);
}
}
\ No newline at end of file
...
...
static/js/cart/chose-panel.js
View file @
9271c66
...
...
@@ -26,6 +26,11 @@ var $chosePanel = $('#chose-panel'),
hasChooseSize
,
$curSizeBlock
,
$sizeRowList
,
$curColorBlock
,
$colorRowList
,
$curSizeRow
,
$curColorRow
,
rowIndex
,
cbFn
,
$allChoseItems
,
queryString
,
...
...
@@ -41,7 +46,13 @@ function init() {
$imgsThumb
=
$
(
'.chose-panel'
).
find
(
'.thumb'
);
$allChoseItems
=
$
(
'.chose-items'
);
$sizeRowList
=
$
(
'.size-list ul'
);
$colorRowList
=
$
(
'.color-list ul'
);
$leftNum
=
$
(
'#left-num'
);
$curSizeRow
=
$sizeRowList
.
eq
(
0
);
$curColorRow
=
$colorRowList
.
eq
(
0
);
rowIndex
=
0
;
curColorIndex
=
0
;
curSizeIndex
=
0
;
}
function
checkColorSizeNum
()
{
...
...
@@ -107,39 +118,6 @@ function updateConformButtonClassAndText() {
}
}
//重置颜色块的库存为0的样式
function
resetColorZeroStock
(
$siblingBlock
)
{
var
numArray
,
i
;
if
(
!
hasChooseSize
)
{
$siblingBlock
.
find
(
'ul>li'
).
each
(
function
()
{
if
(
0
===
$
(
this
).
data
(
'num'
))
{
$
(
this
).
addClass
(
'zero-stock'
);
}
else
{
$
(
this
).
removeClass
(
'zero-stock'
);
}
});
}
else
{
numArray
=
(
$curSizeBlock
.
data
(
'numstr'
)
+
''
).
split
(
'/'
);
for
(
i
=
0
;
i
<
numArray
.
length
;
i
++
)
{
if
(
'0'
===
numArray
[
i
])
{
$siblingBlock
.
find
(
'.block'
).
eq
(
i
).
addClass
(
'zero-stock'
);
}
else
{
$siblingBlock
.
find
(
'.block'
).
eq
(
i
).
removeClass
(
'zero-stock'
);
}
}
}
}
// 选择了颜色切换商品图片
function
changeGoodImgWhenClickColor
()
{
if
(
hasChooseColor
&&
curColorIndex
>=
0
)
{
$imgsThumb
.
addClass
(
'hide'
).
eq
(
curColorIndex
).
removeClass
(
'hide'
);
}
}
init
();
$yohoPage
.
on
(
'touchstart'
,
'.chose-panel'
,
function
(
e
)
{
...
...
@@ -157,35 +135,37 @@ $yohoPage.on('touchstart', '.color-list .block', function() {
var
$this
=
$
(
this
),
index
,
curSizeBlock
,
$preSiblingBlock
,
$curSizeRow
,
numArray
,
i
,
curGoodNum
;
var
$siblingBlock
=
$this
.
closest
(
'.block-list'
).
siblings
(
':first'
);
$this
.
siblings
(
'.chosed'
).
removeClass
(
'chosed'
);
index
=
$this
.
index
();
$preSiblingBlock
=
$siblingBlock
.
find
(
'.chosed'
);
$curSizeRow
=
$sizeRowList
.
eq
(
index
);
// 当前颜色已经是选中状态,再点击时
if
(
$this
.
hasClass
(
'chosed'
))
{
//
颜色原来已经是勾选时,要
清空剩余件数的提示
//清空剩余件数的提示
$allChoseItems
.
find
(
'.num .left-num'
).
html
(
''
);
$leftNum
.
val
(
0
);
hasChooseColor
=
false
;
$this
.
removeClass
(
'zero-stock'
);
if
(
$curSizeBlock
)
{
numArray
=
(
$curSizeBlock
.
data
(
'numstr'
)
+
''
).
split
(
'/'
);
for
(
i
=
0
;
i
<
numArray
.
length
;
i
++
)
{
if
(
'0'
===
numArray
[
i
])
{
$
(
'.color-list .block'
).
eq
(
i
).
addClass
(
'zero-stock'
);
}
//当前尺码行隐藏
$sizeRowList
.
eq
(
curSizeIndex
).
removeClass
(
'show'
).
addClass
(
'hide'
);
//目标尺码行显示
$sizeRowList
.
eq
(
0
).
removeClass
(
'hide'
).
addClass
(
'show'
);
curSizeIndex
=
0
;
//如果尺码已经是选择状态
if
(
curColorIndex
)
{
// 之前选中的尺码去掉勾选样式,新尺码块勾选
if
(
$curSizeBlock
&&
$curSizeBlock
.
length
>
0
)
{
$curSizeBlock
.
removeClass
(
'chosed'
);
curSizeBlock
=
$sizeRowList
.
eq
(
0
).
children
().
get
(
curColorIndex
-
1
);
$curSizeBlock
=
$
(
curSizeBlock
);
curGoodNum
=
$curSizeBlock
.
data
(
'num'
);
$curSizeBlock
.
addClass
(
'chosed'
);
}
}
...
...
@@ -193,23 +173,21 @@ $yohoPage.on('touchstart', '.color-list .block', function() {
}
else
{
hasChooseColor
=
true
;
//把当前选中颜色对应的尺码那一行显示出来
$sizeRowList
.
addClass
(
'hide'
);
$curSizeRow
.
removeClass
(
'hide'
).
addClass
(
'show'
);
//如果尺码已经是选择状态
if
(
curColorIndex
)
{
// 之前选中的尺码去掉勾选样式
if
(
$preSiblingBlock
.
length
>
0
)
{
$preSiblingBlock
.
removeClass
(
'chosed'
);
curSizeBlock
=
$curSizeRow
.
children
().
get
(
curSizeIndex
);
$curSizeBlock
=
$
(
curSizeBlock
);
}
// 之前选中的尺码去掉勾选样式,新尺码块勾选
if
(
$curSizeBlock
&&
$curSizeBlock
.
length
>
0
)
{
$curSizeBlock
.
removeClass
(
'chosed'
);
// 当前选中颜色对应的尺码行,其对应的尺码加上勾选样式 (前提是要判断下这个尺码是否存在)
if
(
curSizeBlock
)
{
curGoodNum
=
$
(
curSizeBlock
).
data
(
'num'
);
$
(
curSizeBlock
).
addClass
(
'chosed'
);
//curSizeBlock = $sizeRowList.eq(curSizeIndex + 1).children().get(curColorIndex - 1);
curSizeBlock
=
$sizeRowList
.
eq
(
index
+
1
).
children
().
get
(
curColorIndex
-
1
);
$curSizeBlock
=
$
(
curSizeBlock
);
curGoodNum
=
$curSizeBlock
.
data
(
'num'
);
$curSizeBlock
.
addClass
(
'chosed'
);
}
//
如果当前有尺码被选中,且数量等于0,则颜色块添加数量为0的样式
//
数量大于0
if
(
curGoodNum
>
0
)
{
if
(
$soonSoldOut
.
length
>
0
)
{
$allChoseItems
.
find
(
'.num .left-num'
).
html
(
'即将售罄'
);
...
...
@@ -218,81 +196,118 @@ $yohoPage.on('touchstart', '.color-list .block', function() {
}
$leftNum
.
val
(
curGoodNum
);
//数量小于0
}
else
{
$allChoseItems
.
find
(
'.num .left-num'
).
html
(
''
);
$leftNum
.
val
(
0
);
}
}
// 尺码行当前行隐藏
$sizeRowList
.
eq
(
curSizeIndex
).
removeClass
(
'show'
).
addClass
(
'hide'
);
//尺码对应行显示
$sizeRowList
.
eq
(
index
+
1
).
removeClass
(
'hide'
).
addClass
(
'show'
);
curSizeIndex
=
index
+
1
;
$curColorBlock
=
$this
;
// 修改颜色时修改商品图片
$imgsThumb
.
addClass
(
'hide'
).
eq
(
index
).
removeClass
(
'hide'
);
}
// 当前颜色块 切换勾选样式
$this
.
toggleClass
(
'chosed'
);
curColorIndex
=
index
;
$
(
'#good-num'
).
val
(
1
);
// 修改颜色时修改商品图片
changeGoodImgWhenClickColor
();
// 设置按钮的样式和文字
updateConformButtonClassAndText
();
}).
on
(
'touchstart'
,
'.size-list .block'
,
function
()
{
var
$this
=
$
(
this
),
index
,
$curSizeRow
,
curColorBlock
,
curGoodNum
;
var
$siblingBlock
=
$this
.
closest
(
'.block-list'
).
siblings
(
':first'
);
$this
.
siblings
(
'.chosed'
).
removeClass
(
'chosed'
);
index
=
$this
.
index
();
$curSizeRow
=
$sizeRowList
.
eq
(
index
);
// 当前尺码已经是选中状态,再点击时
if
(
$this
.
hasClass
(
'chosed'
))
{
//
尺码原来已经是勾选时,要
清空剩余件数的提示
//清空剩余件数的提示
$allChoseItems
.
find
(
'.num .left-num'
).
html
(
''
);
$
(
'#left-num'
)
.
val
(
0
);
$
leftNum
.
val
(
0
);
hasChooseSize
=
false
;
curSizeIndex
=
null
;
$curSizeBlock
=
null
;
//当前颜色行隐藏
$colorRowList
.
eq
(
curColorIndex
).
removeClass
(
'show'
).
addClass
(
'hide'
);
//目标颜色行显示
$colorRowList
.
eq
(
0
).
removeClass
(
'hide'
).
addClass
(
'show'
);
curColorIndex
=
0
;
//如果颜色已经是选择状态
if
(
curSizeIndex
)
{
// 之前选中的颜色去掉勾选样式,新颜色块勾选
if
(
$curColorBlock
&&
$curColorBlock
.
length
>
0
)
{
$curColorBlock
.
removeClass
(
'chosed'
);
curColorBlock
=
$colorRowList
.
eq
(
0
).
children
().
get
(
curSizeIndex
-
1
);
$curColorBlock
=
$
(
curColorBlock
);
curGoodNum
=
$curColorBlock
.
data
(
'num'
);
$curColorBlock
.
addClass
(
'chosed'
);
}
}
// 当前尺码不是选中状态,选中时
}
else
{
hasChooseSize
=
true
;
curGoodNum
=
$this
.
data
(
'num'
);
// 之前选中的尺码去掉勾选样式
if
(
$curSizeBlock
)
{
$curSizeBlock
.
removeClass
(
'chosed'
);
}
//如果颜色已经是选择状态
if
(
curSizeIndex
)
{
// 之前选中的颜色去掉勾选样式,新颜色块勾选
if
(
$curColorBlock
&&
$curColorBlock
.
length
>
0
)
{
$curColorBlock
.
removeClass
(
'chosed'
);
//curColorBlock = $colorRowList.eq(curColorIndex + 1).children().get(curSizeIndex - 1);
curColorBlock
=
$colorRowList
.
eq
(
index
+
1
).
children
().
get
(
curSizeIndex
-
1
);
$curColorBlock
=
$
(
curColorBlock
);
curGoodNum
=
$curColorBlock
.
data
(
'num'
);
$curColorBlock
.
addClass
(
'chosed'
);
}
// 如果当前有尺码被选中,且数量等于0, 否则显示剩余件数
if
(
curGoodNum
>
0
&&
hasChooseColor
)
{
if
(
$soonSoldOut
.
length
>
0
)
{
$allChoseItems
.
find
(
'.num .left-num'
).
html
(
'即将售罄'
);
//数量大于0
if
(
curGoodNum
>
0
)
{
if
(
$soonSoldOut
.
length
>
0
)
{
$allChoseItems
.
find
(
'.num .left-num'
).
html
(
'即将售罄'
);
}
else
{
$allChoseItems
.
find
(
'.num .left-num'
).
html
(
'剩余'
+
curGoodNum
+
'件'
);
}
$leftNum
.
val
(
curGoodNum
);
//数量小于0
}
else
{
$allChoseItems
.
find
(
'.num .left-num'
).
html
(
'剩余'
+
curGoodNum
+
'件'
);
$allChoseItems
.
find
(
'.num .left-num'
).
html
(
''
);
$leftNum
.
val
(
0
);
}
$
(
'#left-num'
).
val
(
curGoodNum
);
}
else
{
$allChoseItems
.
find
(
'.num .left-num'
).
html
(
''
);
$
(
'#left-num'
).
val
(
0
);
}
if
(
curGoodNum
===
0
&&
hasChooseColor
)
{
$this
.
addClass
(
'zero-stock'
);
}
curSizeIndex
=
index
;
// 颜色当前行隐藏
$colorRowList
.
eq
(
curColorIndex
).
removeClass
(
'show'
).
addClass
(
'hide'
);
//颜色对应行显示
$colorRowList
.
eq
(
index
+
1
).
removeClass
(
'hide'
).
addClass
(
'show'
);
curColorIndex
=
index
+
1
;
$curSizeBlock
=
$this
;
}
$this
.
toggleClass
(
'chosed'
);
$
(
'#good-num'
).
val
(
1
);
// 重置颜色块的样式
resetColorZeroStock
(
$siblingBlock
);
// 设置按钮的样式和文字
updateConformButtonClassAndText
();
});
...
...
static/sass/me/_home.scss
View file @
9271c66
...
...
@@ -215,6 +215,7 @@
background-size
:
100%
100%
;
position
:
relative
;
top
:
.36rem
;
margin-right
:
pxToRem
(
12px
);
}
&
.highlight
{
background
:
#eee
;
...
...
template/m.yohobuy.com/partials/cart/chose-panel.phtml
View file @
9271c66
...
...
@@ -19,24 +19,33 @@
<div
class=
"chose-items"
>
<div
class=
"color-list block-list"
>
<span>颜色</span>
<ul
class=
"clearfix"
data-type=
"color"
>
<
!--<
ul
class=
"clearfix"
data-type=
"color"
>
{
{#
colors
}
}
<li
class=
"block {{#if chosed}}chosed{{/if}} {{#unless colorNum}}zero-stock{{/unless}}"
data-num=
"{{colorNum}}"
data-id=
"{{id}}"
data-numstr=
"{{sizeNumStr}}"
data-skcid=
"{{skcId}}"
>
{
{name
}
}
</li>
{
{/
colors
}
}
</ul>-->
{
{#
colors
}
}
<ul
class=
"size-row clearfix {{#unless @first}}hide{{/if}}"
>
{
{#
color
}
}
<li
class=
"block {{#if chosed}}chosed{{/if}} {{#unless colorNum}}zero-stock{{/unless}}"
data-num=
"{{colorNum}}"
data-id=
"{{id}}"
data-numstr=
"{{sizeNumStr}}"
data-skcid=
"{{skcId}}"
>
{
{name
}
}
</li>
{
{/
color
}
}
</ul>
{
{/
colors
}
}
</div>
<div
class=
"size-list block-list"
>
<span>尺码</span>
{
{#
sizes
}
}
<ul
class=
"size-row clearfix {{#unless @first}}hide{{/if}}"
>
{
{#
size
}
}
<li
class=
"block {{#if chosed}}chosed{{/if}} {{#unless sizeNum}}zero-stock{{/unless}}"
data-id=
"{{id}}"
data-colorid=
"{{colorId}}"
data-num=
"{{sizeNum}}"
data-numstr=
"{{colorNumStr}}"
data-skuid=
"{{skuId}}"
data-goodid=
"{{goodsId}}"
>
{
{name
}
}
</li>
{
{/
size
}
}
</ul>
<ul
class=
"size-row clearfix {{#unless @first}}hide{{/if}}"
>
{
{#
size
}
}
<li
class=
"block {{#if chosed}}chosed{{/if}} {{#unless sizeNum}}zero-stock{{/unless}}"
data-id=
"{{id}}"
data-colorid=
"{{colorId}}"
data-num=
"{{sizeNum}}"
data-numstr=
"{{colorNumStr}}"
data-skuid=
"{{skuId}}"
data-goodid=
"{{goodsId}}"
>
{
{name
}
}
</li>
{
{/
size
}
}
</ul>
{
{/
sizes
}
}
<!--
{
{#if
defaultSizes
}
}
...
...
@@ -69,5 +78,5 @@
</div>
</div>
</div>
{
{/cartInfo
}
}
{
{/cartInfo
}
}
<input
id=
"promotionId"
type=
"hidden"
value=
"{{promotionId}}"
>
\ No newline at end of file
...
...
yohobuy/www.yohobuy.com/application/controllers/Common.php
View file @
9271c66
...
...
@@ -6,6 +6,7 @@ use Plugin\Cache;
use
Configs\CacheConfig
;
use
Api\Yohobuy
;
use
Plugin\Images
;
use
Plugin\Helpers
;
class
CommonController
extends
WebAction
{
...
...
@@ -118,4 +119,24 @@ class CommonController extends WebAction
}
return
$this
->
helpJsonCallbackResult
(
$callback
,
$data
[
'code'
],
$data
[
'message'
],
$banner
);
}
/**
* 获取邮件订阅
*
* @return jsonp
*/
public
function
emailsubscriberAction
()
{
$callback
=
$this
->
get
(
'callback'
,
''
);
$email
=
$this
->
get
(
'email'
,
''
);
$uid
=
intval
(
$this
->
get
(
'uid'
,
'0'
));
$data
=
array
();
//验证邮件
if
(
Helpers
::
verifyEmail
(
$email
))
{
$data
=
IndexData
::
emailSubscriber
(
$email
,
$uid
);
return
$this
->
helpJsonCallbackResult
(
$callback
,
$data
[
'code'
],
$data
[
'message'
],
$data
[
'data'
]);
}
else
{
return
$this
->
helpJsonCallbackResult
(
$callback
,
403
,
'订阅失败'
,
''
);
}
}
}
\ No newline at end of file
...
...
Please
register
or
login
to post a comment