Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
yohobuywap-node
·
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
郭成尧
8 years ago
Commit
89bb0a9d5c90de93ae234d96149dfa22282a0e1b
2 parents
0cac353a
589659f0
Merge branch 'master' into feature/guang
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
226 additions
and
131 deletions
apps/activity/models/coupon-floor.js
apps/cart/controllers/index.js
apps/cart/controllers/order.js
apps/cart/models/count.js
apps/home/controllers/installment.js
apps/home/controllers/orderDetail.js
apps/home/models/index.js
apps/home/models/installment.js
apps/passport/controllers/login.js
apps/passport/router.js
apps/product/models/popular-shop.js
apps/product/views/action/newshop/shop-reds.hbs
apps/product/views/partial/reds-shop/item.hbs
apps/product/views/partial/reds-shop/modules.hbs
apps/service/models/chatQa.js
doraemon/middleware/error-handler.js
doraemon/middleware/user.js
doraemon/views/layout.hbs
doraemon/views/partial/analysis.hbs
package.json
public/js/cart/order-ensure.js
public/js/product/shop/red-shop.js
public/scss/product/new-arrival.page.css
public/scss/product/shop/reds-shop/_section.css
utils/redshop-process.js
apps/activity/models/coupon-floor.js
View file @
89bb0a9
...
...
@@ -349,7 +349,7 @@ exports.receiveCoupon = (receiveData, uid) => {
break
;
default
:
returnData
=
{
msg
:
'领券失败!'
,
msg
:
result
.
message
||
'领券失败!'
,
status
:
false
};
break
;
...
...
apps/cart/controllers/index.js
View file @
89bb0a9
...
...
@@ -156,7 +156,8 @@ const add = (req, res, next) => {
return
indexModel
.
addToCart
(
productSku
,
buyNumber
,
goodsType
,
isEdit
,
promotionId
,
uid
,
shoppingKey
).
then
(
data
=>
{
if
(
!
shoppingKey
&&
_
.
has
(
data
,
'data.shopping_key'
))
{
res
.
cookie
(
'_SPK'
,
data
.
data
.
shopping_key
,
{
expires
:
new
Date
(
Date
.
now
()
+
86400
*
360
)
expires
:
new
Date
(
Date
.
now
()
+
86400
*
360
),
domain
:
'.m.yohobuy.com'
});
}
data
?
res
.
json
(
data
)
:
res
.
status
(
400
).
json
({
...
...
apps/cart/controllers/order.js
View file @
89bb0a9
...
...
@@ -70,23 +70,26 @@ exports.orderEnsure = (req, res, next) => {
addressModel
.
addressData
(
uid
)
];
if
(
_
.
isUndefined
(
req
.
cookies
.
_isNewUser
))
{
allPromise
.
push
(
orderModel
.
isNewUser
(
uid
));
}
/* tar note 170426 品众去除 */
// if (_.isUndefined(req.cookies._isNewUser)) {
// allPromise.push(orderModel.isNewUser(uid));
// }
return
Promise
.
all
(
allPromise
).
then
(
result
=>
{
let
order
=
result
[
0
];
let
userProfile
=
result
[
1
];
let
address
=
result
[
2
];
let
isNewUser
=
result
[
3
];
if
(
!
_
.
isUndefined
(
isNewUser
))
{
if
(
isNewUser
)
{
res
.
cookie
(
'_isNewUser'
,
true
,
actCkOpthn
);
}
else
{
res
.
cookie
(
'_isNewUser'
,
false
,
actCkOpthn
);
}
}
/* tar note 170426 品众去除 */
// let isNewUser = result[3];
// if (!_.isUndefined(isNewUser)) {
// if (isNewUser) {
// res.cookie('_isNewUser', true, actCkOpthn);
// } else {
// res.cookie('_isNewUser', false, actCkOpthn);
// }
// }
if
(
order
.
cartUrl
)
{
logger
.
info
(
`
orderEnsure
:
order
cartUrl
has
value
:
$
{
order
.
cartUrl
},
order
data
is
null
`
);
...
...
apps/cart/models/count.js
View file @
89bb0a9
...
...
@@ -3,12 +3,27 @@
const
api
=
global
.
yoho
.
API
;
const
cartCount
=
(
uid
,
shoppingKey
)
=>
{
let
params
=
{
method
:
'app.Shopping.count'
};
return
api
.
get
(
''
,
{
method
:
'app.Shopping.count'
,
uid
:
uid
,
shopping_key
:
shoppingKey
}).
then
((
result
)
=>
{
if
(
!
uid
&&
!
shoppingKey
)
{
return
Promise
.
resolve
({});
}
if
(
uid
)
{
Object
.
assign
(
params
,
{
uid
:
uid
});
}
if
(
shoppingKey
)
{
Object
.
assign
(
params
,
{
shopping_key
:
shoppingKey
});
}
return
api
.
get
(
''
,
params
).
then
((
result
)
=>
{
return
result
;
});
};
...
...
apps/home/controllers/installment.js
View file @
89bb0a9
...
...
@@ -56,6 +56,7 @@ const _repaymentList = (req, res, next, opt, params) => {
const
index
=
(
req
,
res
,
next
)
=>
{
let
uid
=
req
.
user
.
uid
;
logger
.
info
(
`
installment
index
info
:
client_type
=
$
{
req
.
query
.
client_type
},
req
.
user
.
uid
=
$
{
req
.
user
.
uid
},
req
.
query
.
uid
=
$
{
req
.
query
.
uid
},
cookies
=
$
{
JSON
.
stringify
(
req
.
cookies
)}
`
);
// eslint-disable-line
Promise
.
all
([
installmentModel
.
getStauts
(
uid
),
installmentModel
.
getSearchIntallment
({
...
...
apps/home/controllers/orderDetail.js
View file @
89bb0a9
...
...
@@ -145,8 +145,7 @@ const addressModify = (req, res, next) => {
addressModel
.
getAddressData
({
uid
:
uid
}).
then
(
result
=>
{
let
userAddressList
=
result
;
let
addressData
=
addressProcess
.
getAddressByAreaCode
(
areaCode
,
_
.
get
(
userAddressList
,
'data'
,
[]))
||
{};
let
addressData
=
addressProcess
.
getAddressByAreaCode
(
areaCode
,
_
.
get
(
userAddressList
,
'data'
,
[]))
||
{};
Object
.
assign
(
addressData
,
{
orderCode
:
orderCode
,
...
...
@@ -154,7 +153,7 @@ const addressModify = (req, res, next) => {
if
(
provinceAreaCode
)
{
// 不允许修改省份,字符串拆分
let
areaArray
=
addressData
.
area
.
split
(
' '
)
;
let
areaArray
=
addressData
.
area
?
addressData
.
area
.
split
(
' '
)
:
[]
;
let
area
=
_
.
slice
(
areaArray
,
1
);
Object
.
assign
(
addressData
,
{
...
...
apps/home/models/index.js
View file @
89bb0a9
...
...
@@ -28,7 +28,7 @@ const _userData = (params) => {
code
:
200
});
}
else
{
return
false
;
return
Promise
.
resolve
({})
;
}
};
...
...
apps/home/models/installment.js
View file @
89bb0a9
...
...
@@ -208,7 +208,7 @@ const getStauts = (uid) => {
if
(
result
&&
result
.
code
===
200
)
{
return
result
.
data
.
status
;
}
else
{
logger
.
error
(
'get installment open status return code is not 200'
);
logger
.
error
(
`
get
installment
open
status
return
code
is
not
200
,
uid
:
$
{
uid
},
result
=
$
{
JSON
.
stringify
(
result
)}
`
);
// eslint-disable-line
return
Promise
.
reject
(
result
);
}
});
...
...
apps/passport/controllers/login.js
View file @
89bb0a9
...
...
@@ -117,8 +117,29 @@ const common = {
return
next
();
});
}
}
},
isLoginUser
:
(
req
,
res
,
next
)
=>
{
// 微信里边已经登录的时候,不再跳转登录
if
(
req
.
user
.
uid
)
{
AuthHelper
.
profile
(
req
.
user
.
uid
).
then
(
function
(
result
)
{
if
(
result
.
code
!==
200
)
{
return
next
();
}
let
refer
=
req
.
query
.
refer
||
decodeURI
(
req
.
cookies
.
refer
)
||
config
.
siteUrl
;
if
(
/sign|login/
.
test
(
refer
))
{
refer
=
`
$
{
config
.
siteUrl
}
/home`
;
}
refer
=
utils
.
refererLimit
(
refer
);
return
res
.
redirect
(
refer
);
}).
catch
(()
=>
{
return
next
();
});
}
else
{
return
next
();
}
}
};
...
...
@@ -280,19 +301,6 @@ const local = {
const
wechat
=
{
login
:
(
req
,
res
,
next
)
=>
{
// 微信里边已经登录的时候,不再跳转登录
// 与 5.6 的 session 有冲突
// if (req.user.uid) {
// let refer = req.query.refer || decodeURI(req.cookies.refer) || config.siteUrl;
// if (/sign|login/.test(refer)) {
// refer = `${config.siteUrl}/home`;
// }
// refer = utils.refererLimit(refer);
// return res.redirect(refer);
// }
// 设置为原链接标识originalUrl
req
.
session
.
originalUrl
=
'true'
;
req
.
session
.
authState
=
uuid
.
v4
();
...
...
apps/passport/router.js
View file @
89bb0a9
...
...
@@ -75,7 +75,7 @@ router.post('/passport/sms_login/password.json', smsLogin.password);
router
.
get
(
'/passport/login/user'
,
login
.
user
);
// 微信登录
router
.
get
(
'/passport/login/wechat'
,
login
.
common
.
beforeLogin
,
login
.
wechat
.
login
);
router
.
get
(
'/passport/login/wechat'
,
login
.
common
.
beforeLogin
,
login
.
common
.
isLoginUser
,
login
.
wechat
.
login
);
router
.
get
(
'/passport/login/wechat/callback'
,
login
.
wechat
.
callback
);
// sina登录
...
...
apps/product/models/popular-shop.js
View file @
89bb0a9
...
...
@@ -82,12 +82,19 @@ exports.getShopCategory = (shopId, channel) => {
* 店铺收藏数量
*/
exports
.
favCount
=
(
shopId
,
uid
,
channel
,
udid
)
=>
{
return
singleAPI
.
get
(
'favorite'
,
{
let
finalParams
=
{
method
:
'app.favorite.queryFavoriteCountByShopIds'
,
favIds
:
shopId
,
type
:
'shop'
,
udid
:
udid
,
uid
:
uid
,
physical_channel
:
yhChannel
[
channel
],
});
};
if
(
uid
)
{
Object
.
assign
(
finalParams
,
{
uid
:
uid
});
}
return
singleAPI
.
get
(
'favorite'
,
finalParams
);
};
...
...
apps/product/views/action/newshop/shop-reds.hbs
View file @
89bb0a9
...
...
@@ -43,6 +43,9 @@
<div
id=
"red-index"
class=
"tab-panel red-shop-index active"
>
<div
class=
"shop-coupon coupon-group"
></div>
{{>
reds-shop
/
modules
}}
<div
id=
"indexGoodsContainer"
class=
"goods-container"
>
<div
class=
"default-goods container clearfix"
></div>
</div>
<div
class=
"all-goods"
>
<a
href=
"
{{
allGoodsUrl
}}
"
>
点击查看全部商品
</a>
</div>
...
...
apps/product/views/partial/reds-shop/item.hbs
View file @
89bb0a9
<div
class=
"item"
>
<a
{{#if
link
}}
href=
"
{{
link
}}
"
{{/if}}
>
{{#if
isGood
}}
{{#
ifor
triple
double
}}
<img
class=
"item-pic"
src=
"
{{
image2
src
w
=
235
h
=
314
}}
"
alt=
""
>
{{#
ifor
triple
double
single
}}
{{#
within
index
3
}}
<img
class=
"item-pic"
src=
"
{{
image2
src
w
=
235
h
=
314
}}
"
>
{{^}}
<img
class=
"item-pic lazy"
data-original=
"
{{
image2
src
w
=
235
h
=
314
}}
"
>
{{/
within
}}
{{/
ifor
}}
{{^}}
<img
class=
"item-pic"
src=
"
{{
image2
src
}}
"
alt=
""
>
{{#
within
index
3
}}
<img
class=
"item-pic"
src=
"
{{
image2
src
}}
"
alt=
""
>
{{^}}
<img
class=
"item-pic lazy"
data-original=
"
{{
image2
src
}}
"
>
{{/
within
}}
{{/if}}
</a>
...
...
apps/product/views/partial/reds-shop/modules.hbs
View file @
89bb0a9
...
...
@@ -15,13 +15,13 @@
<ul
class=
"swiper-wrapper"
>
{{#
each
..
/
pics
}}
<li
class=
"swiper-slide"
>
{{#if
link
}}
<a
href=
"
{{
link
}}
"
>
<a
{{#if
link
}}
href=
"
{{
link
}}
"
{{/if}}
>
{{#
within
@
..
/
index
3
}}
<img
src=
"
{{
image2
src
}}
"
alt=
""
>
</a>
{{^}}
<img
src=
"
{{
image2
src
}}
"
alt=
""
>
{{/if}}
{{^}}
<img
class=
"lazy"
data-original=
"
{{
image2
src
}}
"
alt=
""
>
{{/
within
}}
</a>
</li>
{{/
each
}}
</ul>
...
...
@@ -51,7 +51,7 @@
{{#
isEqual
module_type
'SingleImage'
}}
<div
class=
"items-s1 clearfix"
>
{{#
each
..
/
pics
}}
{{>
reds-shop
/
item
}}
{{>
reds-shop
/
item
index
=
@
..
/
index
single
=
true
}}
{{/
each
}}
</div>
{{#if
..
/
isModuleMargin
}}
...
...
@@ -61,7 +61,7 @@
{{#
isEqual
module_type
'DoubleImage'
}}
<div
class=
"items-s2 clearfix"
>
{{#
each
..
/
pics
}}
{{>
reds-shop
/
item
double
=
true
}}
{{>
reds-shop
/
item
index
=
@
..
/
index
double
=
true
}}
{{/
each
}}
</div>
{{#if
..
/
isModuleMargin
}}
...
...
@@ -71,7 +71,7 @@
{{#
isEqual
module_type
'TripleImage'
}}
<div
class=
"
{{#
isEqual
..
/
displayType
1
}}
items-3-3
{{/
isEqual
}}{{#
isEqual
..
/
displayType
2
}}
items-3-3 items-small
{{/
isEqual
}}{{#
isEqual
..
/
displayType
3
}}
items-3-2 items-3-2-right
{{/
isEqual
}}{{#
isEqual
..
/
displayType
4
}}
items-3-2 items-3-2-left
{{/
isEqual
}}
clearfix"
>
{{#
each
..
/
pics
}}
{{>
reds-shop
/
item
triple
=
true
}}
{{>
reds-shop
/
item
index
=
@
..
/
index
triple
=
true
}}
{{/
each
}}
</div>
{{#if
..
/
isModuleMargin
}}
...
...
@@ -81,7 +81,7 @@
{{#
isEqual
module_type
'FourImage'
}}
<div
class=
"items-s4 clearfix"
>
{{#
each
..
/
pics
}}
{{>
reds-shop
/
item
four
=
true
}}
{{>
reds-shop
/
item
index
=
@
..
/
index
four
=
true
}}
{{/
each
}}
</div>
{{#if
..
/
isModuleMargin
}}
...
...
apps/service/models/chatQa.js
View file @
89bb0a9
...
...
@@ -56,12 +56,12 @@ const qaDetail = (params) => {
// 根据子id,父id,关键字,匹配问题详情
if
(
params
.
keyword
)
{
// 从搜索列表进入,有关键字
// 从搜索列表进入,有关键字
if
(
result
&&
result
[
1
]
&&
result
[
1
].
data
)
{
let
keyList
=
result
[
1
].
data
.
helper_list
;
_
.
forEach
(
keyList
,
function
(
val
)
{
if
(
val
.
id
===
params
.
sonId
)
{
if
(
parseInt
(
val
.
id
,
10
)
===
parseInt
(
params
.
sonId
,
10
)
)
{
resu
=
{
caption
:
val
.
caption
,
content
:
val
.
content
...
...
@@ -70,11 +70,11 @@ const qaDetail = (params) => {
});
}
}
else
{
// 常见问题没有parentId
// 常见问题没有parentId
if
(
result
&&
result
[
0
]
&&
result
[
0
].
data
)
{
if
(
!
params
.
parentId
)
{
_
.
forEach
(
result
[
0
].
data
.
faqs
,
function
(
val
)
{
if
(
val
.
id
===
params
.
sonId
)
{
if
(
parseInt
(
val
.
id
,
10
)
===
parseInt
(
params
.
sonId
,
10
)
)
{
resu
=
{
caption
:
val
.
caption
,
content
:
val
.
content
...
...
@@ -83,10 +83,10 @@ const qaDetail = (params) => {
});
}
else
{
_
.
forEach
(
result
[
0
].
data
.
categorys
,
function
(
val
)
{
if
(
val
.
id
===
params
.
parentId
)
{
if
(
parseInt
(
val
.
id
,
10
)
===
parseInt
(
params
.
parentId
,
10
)
)
{
_
.
forEach
(
val
.
contentItems
,
function
(
item
)
{
if
(
item
.
id
===
params
.
sonId
)
{
if
(
parseInt
(
item
.
id
,
10
)
===
parseInt
(
params
.
sonId
,
10
)
)
{
resu
=
{
caption
:
item
.
caption
,
content
:
item
.
content
...
...
doraemon/middleware/error-handler.js
View file @
89bb0a9
...
...
@@ -51,6 +51,8 @@ exports.serverError = () => {
forceNoCache
(
res
);
if
(
err
&&
err
.
code
===
401
)
{
logger
.
error
(
`
401
error
info
:
client_type
=
$
{
req
.
query
.
client_type
},
req
.
user
=
$
{
JSON
.
stringify
(
req
.
user
)},
req
.
query
=
$
{
JSON
.
stringify
(
req
.
query
)},
cookies
=
$
{
JSON
.
stringify
(
req
.
cookies
)}
`
);
// eslint-disable-line
if
(
req
.
xhr
)
{
return
res
.
status
(
401
).
json
(
err
);
}
else
if
(
req
.
yoho
.
isApp
)
{
...
...
doraemon/middleware/user.js
View file @
89bb0a9
...
...
@@ -6,33 +6,36 @@ const authcode = require('../../utils/authcode');
module
.
exports
=
()
=>
{
return
(
req
,
res
,
next
)
=>
{
// 从 SESSION 中获取到当前登录用户的 UID
if
(
req
.
session
&&
_
.
isNumber
(
req
.
session
.
LOGIN_UID
))
{
// 调用接口传参时切勿使用toString获得字符串
req
.
user
.
uid
=
{
toString
:
()
=>
{
return
req
.
session
.
LOGIN_UID
;
},
sessionKey
:
req
.
session
.
SESSION_KEY
};
let
userData
=
_
.
get
(
req
.
session
,
'USER'
,
{});
_
.
merge
(
req
.
user
,
userData
);
}
if
(
!
req
.
yoho
.
isApp
)
{
// 从 SESSION 中获取到当前登录用户的 UID
if
(
req
.
session
&&
_
.
isNumber
(
req
.
session
.
LOGIN_UID
))
{
// 调用接口传参时切勿使用toString获得字符串
req
.
user
.
uid
=
{
toString
:
()
=>
{
return
_
.
parseInt
(
req
.
session
.
LOGIN_UID
);
},
sessionKey
:
req
.
session
.
SESSION_KEY
};
let
userData
=
_
.
get
(
req
.
session
,
'USER'
,
{});
// session 没有读取到的时候,从 cookie 读取 UID
if
(
!
req
.
user
.
uid
&&
req
.
cookies
.
_UID
)
{
let
sessionKey
=
req
.
cookies
.
_SESSION_KEY
&&
authcode
(
req
.
cookies
.
_SESSION_KEY
,
'_SESSION_KEY'
,
2592000000
);
_
.
merge
(
req
.
user
,
userData
);
}
// 调用接口传参时切勿使用toString获得字符串
req
.
user
.
uid
=
{
toString
:
()
=>
{
return
cookie
.
getUid
(
req
);
},
sessionKey
};
}
// session 没有读取到的时候,从 cookie 读取 UID
if
(
!
req
.
user
.
uid
&&
req
.
cookies
.
_UID
)
{
let
sessionKey
=
req
.
cookies
.
_SESSION_KEY
&&
authcode
(
req
.
cookies
.
_SESSION_KEY
,
'_SESSION_KEY'
,
2592000000
);
// 调用接口传参时切勿使用toString获得字符串
req
.
user
.
uid
=
{
toString
:
()
=>
{
return
_
.
parseInt
(
cookie
.
getUid
(
req
));
},
sessionKey
};
}
}
if
(
!
req
.
user
.
uid
&&
req
.
cookies
.
app_uid
&&
req
.
cookies
.
app_uid
!==
'0'
&&
...
...
doraemon/views/layout.hbs
View file @
89bb0a9
...
...
@@ -57,7 +57,7 @@
<link
rel=
"apple-touch-startup-image"
sizes=
"320x460"
href=
"http://static.yohobuy.com/m/v1/img/startup/startup.png"
media=
"screen and (max-device-width: 320)"
>
</head>
<body
class=
"
{{
pageStyle
}}
{{#if
isWechat
}}
wechat-body
{{/if}}
{{#if
width750
}}
width750
{{/if}}
{{#if
isPassportPage
}}
passport-body
{{/if}}
{{#if
isStarIndexPage
}}
star-index-bg
{{/if}}
{{#if
isStarDetailPage
}}
star-class-body
{{/if}}
{{#if
isInstallmentPage
}}
installment-body
{{/if}}
"
>
<div
class=
"main-wrap"
id=
"main-wrap"
{{#if
appPath
}}
data-apppath=
'
{{
appPath
}}
'
{{/if}}
>
<div
class=
"main-wrap"
id=
"main-wrap"
{{#if
appPath
}}
data-apppath=
'
{{
{
appPath
}
}}
'
{{/if}}
>
{{#if
systemUpdate
}}
{{>
updata
}}
{{/if}}
...
...
doraemon/views/partial/analysis.hbs
View file @
89bb0a9
...
...
@@ -75,8 +75,8 @@
}, 1000);
}());
/* tar add 190222 */
window
.
_fxcmd
=
window
.
_fxcmd
||
[];
/* tar add 170426 品众代码去除 */
{{!--window._fxcmd = window._fxcmd || [];
_fxcmd.sid = 'bb3b16fa1106a6ab8619da0095755f32';
_fxcmd.trackAll = false;
// 参数配置(可选)...
...
...
@@ -89,7 +89,7 @@
_pzfx.src = '//static.w3t.cn/fx/1/1/fx.js';
var sc = document.getElementsByTagName('script')[0];
sc.parentNode.insertBefore(_pzfx,sc);
},
1000
);
}, 1000);
--}}
</script>
...
...
package.json
View file @
89bb0a9
{
"name"
:
"m-yohobuy-node"
,
"version"
:
"5.6.
3
"
,
"version"
:
"5.6.
4
"
,
"private"
:
true
,
"description"
:
"A New Yohobuy Project With Express"
,
"repository"
:
{
...
...
public/js/cart/order-ensure.js
View file @
89bb0a9
...
...
@@ -323,15 +323,15 @@ function submitOrder() {
},
true
);
}
/* tar add 190222 */
if
(
window
.
_fxcmd
)
{
window
.
_fxcmd
.
push
([
'trackOrder'
,
{
oid
:
res
.
data
.
order_code
,
otp
:
res
.
data
.
order_amount
,
u_info
:
cookie
.
get
(
'_UID'
),
u_type
:
cookie
.
get
(
'_isNewUser'
)
?
1
:
0
},
[]]);
}
/* tar add 170426 品众代码去除 */
// if (window._fxcmd) {
// window._fxcmd.push(['trackOrder', {
// oid: res.data.order_code,
// otp: res.data.order_amount,
// u_info: cookie.get('_UID'),
// u_type: cookie.get('_isNewUser') ? 1 : 0
// }, []]);
// }
cookie
.
remove
([
'order-info'
,
'activity-info'
]);
window
.
location
.
href
=
url
;
...
...
public/js/product/shop/red-shop.js
View file @
89bb0a9
...
...
@@ -2,19 +2,64 @@
* @Author: Targaryen
* @Date: 2017-03-23 11:31:51
* @Last Modified by: Targaryen
* @Last Modified time: 2017-04-
14 11:17:55
* @Last Modified time: 2017-04-
25 11:45:13
*/
/** *****************
* 红人店铺首页
********************/
const
Swiper2
=
require
(
'yoho-swiper2'
);
const
lazyLoad
=
require
(
'yoho-jquery-lazyload'
);
let
tip
=
require
(
'../../plugin/tip'
);
let
$goodsContainer
=
$
(
'.index-goods-container'
);
let
$indexGoodsContaniner
=
$
(
'#indexGoodsContainer'
);
let
$collect
=
$
(
'#collect'
);
const
shopId
=
$
(
'#shopId'
).
val
();
lazyLoad
(
$
(
'.lazy'
));
/**
* 异步检测是否已经收藏
*/
$
.
ajax
({
type
:
'GET'
,
url
:
location
.
protocol
+
'//m.yohobuy.com/product/index/shopFav'
,
xhrFields
:
{
withCredentials
:
true
},
data
:
{
shopId
:
shopId
},
success
:
function
(
data
)
{
if
(
data
.
collect
)
{
$collect
.
attr
(
'class'
,
'already-collect pull-left'
);
}
},
error
:
function
()
{
tip
.
show
(
'网络断开连接了~'
);
}
});
/**
* 店铺轮播图
*/
if
(
$
(
'.shop-swiper'
))
{
let
num
=
$
(
'.shop-swiper'
).
length
;
for
(
let
i
=
1
;
i
<=
num
;
i
++
)
{
new
Swiper2
(
'.shop-swiper-'
+
i
,
{
lazyLoading
:
true
,
lazyLoadingInPrevNext
:
true
,
loop
:
true
,
autoplay
:
3000
,
slideElement
:
'li'
,
paginationClickable
:
true
,
pagination
:
$
(
this
).
closest
(
'.shop-swiper-'
+
i
).
find
(
'.pagination-inner'
).
get
(
0
)
});
}
}
/**
* 异步加载推荐商品
*/
...
...
@@ -47,51 +92,33 @@ $.each($goodsContainer, function(index, elem) {
},
data
:
data
,
success
:
function
(
result
)
{
let
$result
=
$
(
result
);
lazyLoad
(
$result
.
find
(
'img[class=lazy]'
));
$
(
elem
).
html
(
result
);
}
});
});
/**
* 异步
检测是否已经收藏
* 异步
加载首页全部商品
*/
$
.
ajax
({
type
:
'GET'
,
url
:
location
.
protocol
+
'//m.yohobuy.com/product/index/shopFav
'
,
url
:
'/product/search/search
'
,
xhrFields
:
{
withCredentials
:
true
},
data
:
{
shop
I
d
:
shopId
shop
_i
d
:
shopId
},
success
:
function
(
data
)
{
if
(
data
.
collect
)
{
$collect
.
attr
(
'class'
,
'already-collect pull-left'
);
}
},
error
:
function
()
{
tip
.
show
(
'网络断开连接了~'
);
}
});
success
:
function
(
result
)
{
let
$result
=
$
(
result
);
/**
* 店铺轮播图
*/
if
(
$
(
'.shop-swiper'
))
{
let
num
=
$
(
'.shop-swiper'
).
length
;
for
(
let
i
=
1
;
i
<=
num
;
i
++
)
{
new
Swiper2
(
'.shop-swiper-'
+
i
,
{
lazyLoading
:
true
,
lazyLoadingInPrevNext
:
true
,
loop
:
true
,
autoplay
:
3000
,
slideElement
:
'li'
,
paginationClickable
:
true
,
pagination
:
$
(
this
).
closest
(
'.shop-swiper-'
+
i
).
find
(
'.pagination-inner'
).
get
(
0
)
});
lazyLoad
(
$result
.
find
(
'img[class=lazy]'
));
$indexGoodsContaniner
.
find
(
'.container'
).
html
(
$result
);
}
}
}
);
/**
* 店铺收藏取消收藏操作
...
...
public/scss/product/new-arrival.page.css
View file @
89bb0a9
...
...
@@ -53,6 +53,8 @@ body {
.goods-container
{
overflow
:
hidden
;
background-color
:
#fff
;
padding-left
:
15px
;
.goods-box
{
.no-result
{
...
...
public/scss/product/shop/reds-shop/_section.css
View file @
89bb0a9
...
...
@@ -2,7 +2,7 @@
* @Author: Targaryen
* @Date: 2017-03-23 17:12:53
* @Last Modified by: Targaryen
* @Last Modified time: 2017-04-2
0 10:19:41
* @Last Modified time: 2017-04-2
5 15:54:23
*/
//
红人店铺首页
...
...
@@ -230,16 +230,29 @@
/* 四张小图 */
.items-s4
{
border-bottom
:
1px
solid
#e0e0e0
;
.item
{
float
:
left
;
width
:
25%
;
border-top
:
1px
solid
#e0e0e0
;
border-right
:
1px
solid
#e0e0e0
;
}
.item
:last-child
{
border-right
:
none
;
}
.item-info
{
text-align
:
center
;
background-color
:
#f5f7f6
;
color
:
#000
;
position
:
relative
;
.text
{
line-height
:
36px
;
}
.name
,
.price
{
display
:
none
;
...
...
utils/redshop-process.js
View file @
89bb0a9
...
...
@@ -2,7 +2,7 @@
* @Author: Targaryen
* @Date: 2017-03-23 11:02:31
* @Last Modified by: Targaryen
* @Last Modified time: 2017-04-2
0 15:41:44
* @Last Modified time: 2017-04-2
6 16:33:07
*/
/* 红人店铺数据处理 */
...
...
@@ -339,8 +339,11 @@ const pushGoodsInfo = (decorators, goodsList) => {
decorators
[
key
].
pics
[
subKey
].
marketPrice
=
marketPrice
?
'¥'
+
marketPrice
:
''
;
decorators
[
key
].
pics
[
subKey
].
isGood
=
true
;
if
(
value
.
module_type
===
'TripleImage'
||
value
.
module_type
===
'DoubleImage'
)
{
decorators
[
key
].
pics
[
subKey
].
src
=
imageSrc
;
if
(
value
.
module_type
===
'TripleImage'
||
value
.
module_type
===
'DoubleImage'
||
value
.
module_type
===
'SingleImage'
)
{
// decorators[key].pics[subKey].src = imageSrc; // 为了和 APP 统一,图暂时不取商品图
}
else
if
(
value
.
module_type
===
'FourImage'
)
{
decorators
[
key
].
pics
[
subKey
].
isGood
=
false
;
}
else
{
...
...
Please
register
or
login
to post a comment