Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
yoho-blk
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
1
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Plain Diff
Browse Files
Authored by
zhangxiaoru
9 years ago
Commit
2b5409a64809ddda7699f7dc600fca3b9fdb0f6c
2 parents
f41947c1
8e6d7dca
editorial
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
160 additions
and
105 deletions
apps/editorial/models/editorial.js
apps/me/models/order.js
apps/me/views/partial/address/table.hbs
apps/me/views/partial/order/table-body.hbs
apps/product/controllers/list.js
apps/product/controllers/query.js
apps/product/controllers/shop.js
apps/product/views/partial/list/shop-sort.hbs
apps/shopping/controllers/cart.js
apps/shopping/controllers/order.js
apps/shopping/controllers/pay.js
apps/shopping/models/cart.js
apps/shopping/models/pay.js
apps/shopping/views/action/pay-success.hbs
apps/shopping/views/partial/cart/cart-list-body.hbs
public/js/me/order/countdown.js
public/js/me/setting.page.js
public/js/shopping/pay.page.js
public/scss/channel/_home.css
public/scss/channel/_new-arrival.css
public/scss/product/_shop.css
public/scss/shopping/_cart-products.css
public/scss/shopping/_order.css
apps/editorial/models/editorial.js
View file @
2b5409a
...
...
@@ -496,6 +496,7 @@ const _getArticleNext = (id, appType) => {
});
return
nextArticle
;
}
else
{
logger
.
error
(
'The next article is not 200'
);
return
{};
...
...
apps/me/models/order.js
View file @
2b5409a
...
...
@@ -141,7 +141,7 @@ const isMobileOrder = {
// 转换时间戳
const
_convertUnixTime
=
src
=>
{
return
moment
.
unix
(
src
).
format
(
'YYYY-MM-DD
HH
:mm:ss'
);
return
moment
.
unix
(
src
).
format
(
'YYYY-MM-DD
hh
:mm:ss'
);
};
/**
...
...
@@ -264,7 +264,6 @@ const _getUserOrder = (uid, type, page) => {
orderList
.
forEach
(
item
=>
{
const
ot
=
parseInt
(
item
.
orderType
,
10
);
const
st
=
parseInt
(
item
.
status
,
10
);
const
payleftTime
=
parseInt
(
item
.
payLefttime
,
10
);
let
hasRefund
=
false
;
let
canRefund
=
false
;
...
...
@@ -294,7 +293,7 @@ const _getUserOrder = (uid, type, page) => {
// 没有取消订单并且状态为0的时候显示付款按钮
if
(
item
.
isCancel
===
'N'
&&
st
===
0
&&
payleftTime
!==
0
)
{
st
===
0
)
{
item
.
showPayButton
=
true
;
}
...
...
@@ -316,10 +315,6 @@ const _getUserOrder = (uid, type, page) => {
if
(
item
.
isCancel
===
'Y'
)
{
item
.
showBuyBtn
=
true
;
item
.
statusStr
=
'已取消'
;
}
else
if
(
payleftTime
===
0
)
{
item
.
showBuyBtn
=
true
;
item
.
showPayButton
=
false
;
item
.
statusStr
=
'已取消'
;
}
else
if
(
item
.
isOnlinePaid
)
{
item
.
statusStr
=
statusMap
[
st
].
valueStr
;
}
...
...
@@ -440,13 +435,11 @@ const getOrderData = (uid, type, page) => {
},
2
:
{
emptyMsg
:
'没有待付款的订单哦~'
,
showEmptyEn
:
true
,
btnText
:
'查看全部订单'
,
url
:
'/me/'
},
3
:
{
emptyMsg
:
'没有待收货的订单哦~'
,
showEmptyEn
:
true
,
btnText
:
'查看全部订单'
,
url
:
'/me/'
}
...
...
@@ -548,14 +541,6 @@ const getOrderDetail = (uid, code) => {
detail
.
invoice
=
false
;
}
if
(
detail
.
payLefttime
===
'0'
)
{
detail
.
showLeftTime
=
false
;
detail
.
statusStr
=
'已取消'
;
detail
.
steps
=
false
;
detail
.
btns
=
false
;
}
detail
.
paymentTypeStr
=
paymentTypeStr
[
detail
.
paymentType
];
detail
.
allAddress
=
detail
.
area
+
detail
.
address
;
...
...
apps/me/views/partial/address/table.hbs
View file @
2b5409a
...
...
@@ -21,11 +21,11 @@
<td
class=
"width-opearte"
>
<div>
<span
class=
"blue opreation update-address"
data-id=
"
{{
address_id
}}
"
>
修改
</span>
<em
class=
"op-sep"
>
|
</em>
<span
class=
"blue opreation del-address"
data-id=
"
{{
address_id
}}
"
>
删除
</span>
{{#if
default
}}
<span
class=
"btn set-default opreation current-default"
data-id=
{{
address_id
}}
>
默认地址</span
>
{{else}}
<em
class=
"op-sep"
>
|
</em>
<span
class=
"blue opreation del-address"
data-id=
"
{{
address_id
}}
"
>
删除
</span>
<span
class=
"btn set-default opreation "
data-id=
{{
address_id
}}
>
设为默认</span
>
{{/if}}
</div>
...
...
apps/me/views/partial/order/table-body.hbs
View file @
2b5409a
...
...
@@ -27,7 +27,7 @@
<span
class=
"btn red hide-when-invalid"
>
立即付款
</span>
</a>
{{/if}}
<p
class=
"subtext cancel
hide-when-invalid
"
>
取消订单
</p>
<p
class=
"subtext cancel"
>
取消订单
</p>
</div>
{{/if}}
{{#if
showEditOption
}}
...
...
apps/product/controllers/list.js
View file @
2b5409a
...
...
@@ -17,7 +17,7 @@ const list = {
// 列表页
index
:
(
req
,
res
,
next
)
=>
{
let
q
=
req
.
query
;
let
channel
=
req
.
cookies
.
_Channel
||
req
.
query
.
_Channel
||
'men'
;
let
channel
=
req
.
query
.
_Channel
||
req
.
cookies
.
_Channel
||
'men'
;
q
.
page
=
parseInt
(
q
.
page
||
1
,
10
);
q
.
order
=
q
.
order
||
's_n_desc'
;
...
...
@@ -69,7 +69,7 @@ const list = {
// 新品到着
newPage
:
(
req
,
res
,
next
)
=>
{
let
q
=
req
.
query
;
let
channel
=
req
.
cookies
.
_Channel
||
req
.
query
.
_Channel
||
'men'
;
let
channel
=
req
.
query
.
_Channel
||
req
.
cookies
.
_Channel
||
'men'
;
q
.
page
=
parseInt
(
q
.
page
||
1
,
10
);
q
.
order
=
q
.
order
||
's_n_desc'
;
...
...
apps/product/controllers/query.js
View file @
2b5409a
...
...
@@ -17,7 +17,7 @@ const Query = {
index
:
(
req
,
res
,
next
)
=>
{
let
q
=
req
.
query
;
let
query
=
q
.
query
||
''
;
let
channel
=
req
.
cookies
.
_Channel
||
req
.
query
.
_Channel
||
'men'
;
let
channel
=
req
.
query
.
_Channel
||
req
.
cookies
.
_Channel
||
'men'
;
q
.
page
=
parseInt
(
q
.
page
||
1
,
10
);
q
.
order
=
q
.
order
||
's_n_desc'
;
...
...
apps/product/controllers/shop.js
View file @
2b5409a
...
...
@@ -91,7 +91,8 @@ const shop = {
page
:
'shop-list'
,
title
:
'店铺列表'
};
let
nav
=
[
DataHelper
.
getChannelNav
()];
let
channel
=
req
.
query
.
_Channel
||
req
.
cookies
.
_Channel
||
'men'
;
let
nav
=
[
DataHelper
.
getChannelNav
(
channel
)];
let
domain
=
req
.
params
.
domain
;
let
uid
=
req
.
user
.
uid
;
let
q
=
req
.
query
;
...
...
@@ -99,6 +100,7 @@ const shop = {
q
.
order
=
q
.
order
||
's_n_desc'
;
q
.
page
=
parseInt
(
q
.
page
||
1
,
10
);
q
.
channel
=
channel
;
ShopData
.
getShopHeadData
(
domain
,
uid
).
then
(
result
=>
{
data
.
banner
=
result
;
...
...
apps/product/views/partial/list/shop-sort.hbs
View file @
2b5409a
<div
class=
"shop-sort"
>
<div
class=
"all"
>
所有商品
</div>
<div
class=
"sort-list"
>
<div><a
href=
"
{{
@root
.
mores
.
all
.
url
}}
?gender=2,3"
>
女装
</a></div>
<div><a
href=
"
{{
@root
.
mores
.
all
.
url
}}
?gender=1,3"
>
男装
</a></div>
<div><a
href=
"
{{
@root
.
mores
.
all
.
url
}}
?gender=1,3"
>
男士
</a></div>
<div><a
href=
"
{{
@root
.
mores
.
all
.
url
}}
?gender=2,3"
>
女士
</a></div>
<div><a
href=
"
{{
@root
.
mores
.
all
.
url
}}
?_Channel=lifestyle"
>
生活
</a></div>
{{#
each
banner
.
sorts
}}
<div><a
href=
"
{{
@root
.
mores
.
all
.
url
}}
?misort=
{{
sortId
}}
"
>
{{
sortName
}}
</a></div>
{{/
each
}}
...
...
apps/shopping/controllers/cart.js
View file @
2b5409a
...
...
@@ -16,6 +16,9 @@ exports.index = (req, res, next) => {
cartModel
.
getCartData
(
shoppingKey
,
uid
).
then
((
result
)
=>
{
if
(
result
.
code
===
200
)
{
res
.
header
(
'Cache-Control'
,
'no-cache'
);
res
.
display
(
'cart'
,
_
.
merge
({
module
:
'shopping'
,
page
:
'cart'
,
...
...
apps/shopping/controllers/order.js
View file @
2b5409a
...
...
@@ -17,54 +17,61 @@ const index = (req, res, next) => {
orderModel
.
index
(
req
.
user
.
uid
).
then
(
result
=>
{
let
data
=
result
.
data
;
// 设置头部路径索引focus
data
.
bcNavFocus
=
2
;
// 构造诡异的配送方式数据【显示普通快递的文字,确用顺丰发货和顺丰的快递费】
data
.
delivery_way
=
_
.
concat
(
_
.
assign
(
_
.
find
(
data
.
delivery_way
,
{
delivery_way_id
:
2
}),
{
delivery_way_name
:
'普通快递'
}));
// 发票抬头
data
.
invoices
.
invoiceTitle
=
[
{
name
:
'个人'
,
value
:
1
,
myClass
:
'personal'
},
{
name
:
'单位'
,
value
:
2
}
];
// 返回购物车链接
data
.
goCartLink
=
helper
.
urlFormat
(
'/shopping/cart'
);
// 拆单是否显示左右切换
_
.
forEach
(
data
.
shopping_cart_data
.
package_list
,
i
=>
{
if
(
i
.
goods_list
.
length
>
4
)
{
i
.
showToggle
=
true
;
}
});
if
(
data
.
goods_list
&&
data
.
goods_list
.
length
>
0
)
{
// 设置头部路径索引focus
data
.
bcNavFocus
=
2
;
// 构造诡异的配送方式数据【显示普通快递的文字,确用顺丰发货和顺丰的快递费】
data
.
delivery_way
=
_
.
concat
(
_
.
assign
(
_
.
find
(
data
.
delivery_way
,
{
delivery_way_id
:
2
}),
{
delivery_way_name
:
'普通快递'
}));
// 发票抬头
data
.
invoices
.
invoiceTitle
=
[
{
name
:
'个人'
,
value
:
1
,
myClass
:
'personal'
},
{
name
:
'单位'
,
value
:
2
}
];
// 返回购物车链接
data
.
goCartLink
=
helper
.
urlFormat
(
'/shopping/cart'
);
// 拆单是否显示左右切换
_
.
forEach
(
data
.
shopping_cart_data
.
package_list
,
i
=>
{
if
(
i
.
goods_list
.
length
>
4
)
{
i
.
showToggle
=
true
;
}
});
// 是否打印价格radio
data
.
printPriceRadio
=
[
{
value
:
'1'
,
name
:
'是'
},
{
value
:
'0'
,
name
:
'否'
,
checked
:
true
}
];
res
.
header
(
'Cache-Control'
,
'no-cache'
);
res
.
display
(
'order'
,
{
content
:
data
,
defaultHeader
:
false
});
}
else
{
res
.
redirect
(
'/shopping/cart'
);
}
// 是否打印价格radio
data
.
printPriceRadio
=
[
{
value
:
'1'
,
name
:
'是'
},
{
value
:
'0'
,
name
:
'否'
,
checked
:
true
}
];
res
.
display
(
'order'
,
{
content
:
data
,
defaultHeader
:
false
});
}).
catch
(
next
);
};
...
...
apps/shopping/controllers/pay.js
View file @
2b5409a
...
...
@@ -11,6 +11,7 @@ const OrderData = require('../models/order');
const
PayHelpers
=
require
(
'../helpers/payment'
);
const
camelCase
=
global
.
yoho
.
camelCase
;
const
helpers
=
global
.
yoho
.
helpers
;
const
_
=
require
(
'lodash'
);
/**
...
...
@@ -24,13 +25,39 @@ const online = (req, res, next) => {
let
uid
=
req
.
user
.
uid
;
PayData
.
getPayInfo
(
uid
,
orderCode
).
then
(
result
=>
{
res
.
display
(
'pay'
,
Object
.
assign
({
defaultHeader
:
false
,
module
:
'shopping'
,
page
:
'pay'
,
title
:
'支付页面'
,
username
:
req
.
user
.
username
},
result
));
let
order
=
result
.
order
;
let
promotion
=
order
.
promotionFormulas
;
let
coin
=
0
;
let
amount
=
_
.
toNumber
(
order
.
paymentAmount
);
_
.
forEach
(
promotion
,
p
=>
{
if
(
p
.
promotion
===
'YOHO币'
)
{
coin
=
_
.
toNumber
(
p
.
promotionAmount
.
substring
(
2
,
p
.
promotionAmount
.
length
))
*
100
;
}
});
if
(
amount
>
0
)
{
res
.
display
(
'pay'
,
Object
.
assign
({
defaultHeader
:
false
,
module
:
'shopping'
,
page
:
'pay'
,
title
:
'支付页面'
,
username
:
req
.
user
.
username
},
result
));
}
else
{
res
.
display
(
'pay-success'
,
{
defaultHeader
:
false
,
content
:
{
cost
:
order
.
paymentAmount
,
orderNum
:
order
.
orderCode
,
coin
:
coin
,
orderHref
:
helpers
.
urlFormat
(
'/me/order/detail'
,
{
orderCode
:
order
.
orderCode
}),
walkHref
:
helpers
.
urlFormat
(
'/'
)
}
});
}
}).
catch
(
next
);
};
...
...
@@ -76,16 +103,25 @@ const callback = (req, res) => {
let
query
=
req
.
query
;
PayHelpers
.
afterPay
(
query
,
payId
,
req
.
user
).
then
(
result
=>
{
if
(
result
.
code
===
200
)
{
let
data
=
result
.
data
;
if
(
result
.
code
===
200
&&
result
.
data
&&
result
.
data
.
order
)
{
let
order
=
result
.
data
.
order
;
let
promotion
=
order
.
promotionFormulas
;
let
coin
=
0
;
_
.
forEach
(
promotion
,
p
=>
{
if
(
p
.
promotion
===
'YOHO币'
)
{
coin
=
_
.
toNumber
(
p
.
promotionAmount
.
substring
(
2
,
p
.
promotionAmount
.
length
))
*
100
;
}
});
res
.
display
(
'pay-success'
,
{
defaultHeader
:
false
,
content
:
{
cost
:
data
.
pay
,
orderNum
:
data
.
orderCode
,
onlineCost
:
data
.
pay
,
orderHref
:
helpers
.
urlFormat
(
'/me/order/detail'
,
{
orderCode
:
data
.
orderCode
}),
cost
:
order
.
paymentAmount
,
orderNum
:
order
.
orderCode
,
coin
:
coin
,
orderHref
:
helpers
.
urlFormat
(
'/me/order/detail'
,
{
orderCode
:
order
.
orderCode
}),
walkHref
:
helpers
.
urlFormat
(
'/'
)
}
});
...
...
apps/shopping/models/cart.js
View file @
2b5409a
...
...
@@ -282,7 +282,7 @@ const filterCartData = (result, uid) => {
ordinaryGoods
=
_
.
concat
(
ordinaryGoods
,
ordinaryCartData
.
goods_list
,
soldOutWithStorage
);
// 正常商品
invalidGoods
=
_
.
concat
(
invalidGoods
,
ordinaryCartData
.
off_shelves_goods_list
,
soldOutWithoutStorage
);
// 失效商品
_
.
forEach
(
ordinaryGoods
,
function
(
good
)
{
_
.
forEach
(
ordinaryGoods
,
good
=>
{
buyNumber
=
parseInt
(
good
.
buy_number
,
10
);
storageNumber
=
parseInt
(
good
.
storage_number
,
10
);
totalNum
+=
buyNumber
;
...
...
apps/shopping/models/pay.js
View file @
2b5409a
...
...
@@ -221,8 +221,7 @@ const procOrderData = (payResult, uid) => {
code
:
200
,
message
:
'支付成功,请等待发货'
,
data
:
{
pay
:
amount
,
orderCode
:
orderCode
order
:
order
}
};
...
...
apps/shopping/views/action/pay-success.hbs
View file @
2b5409a
...
...
@@ -18,8 +18,8 @@
!
</p>
<p
class=
"order-num"
>
订单编号:
{{
orderNum
}}
</p>
{{#if
onlineCost
}}
<p
class=
"payment-online"
>
在线支付:¥
{{
round
onlineCost
2
}}
</p>
{{#if
cost
}}
<p
class=
"payment-online"
>
在线支付:¥
{{
round
cost
2
}}
</p>
{{/if}}
{{#if
coin
}}
<p
class=
"payment-coin"
>
有货币支付:
{{
coin
}}
</p>
...
...
@@ -43,4 +43,4 @@
</div>
{{/
content
}}
</div>
</div>
\ No newline at end of file
</div>
...
...
apps/shopping/views/partial/cart/cart-list-body.hbs
View file @
2b5409a
...
...
@@ -79,7 +79,7 @@
</a>
</li>
<li
class=
"pro-info"
>
{{!-- <div class="brand-name">{{brandName}}</div> --}}
<a
class=
"brand-name"
href=
"/product/shop/
{{
brand_domain
}}
"
>
{{
brand_name
}}
</a>
<div
class=
"pro-name"
><a
href=
"/product/pro_
{{
product_id
}}
_
{{
goods_id
}}
/
{{
cn_alphabet
}}
.html"
target=
"_blank"
>
{{
product_name
}}
</a></div>
<div
class=
"color-size editable"
data-productId=
"
{{
product_id
}}
"
id=
"edit_
{{
product_id
}}
"
data-productSkn=
"
{{
product_skn
}}
"
>
{{#if
color_name
}}
...
...
public/js/me/order/countdown.js
View file @
2b5409a
...
...
@@ -32,6 +32,7 @@ module.exports = {
if
(
src
<=
0
)
{
timeStr
=
'已失效'
;
$
(
'.hide-when-invalid'
).
hide
();
$
(
'.user-order .table .common-column .pay-operation .left-time'
).
css
(
'margin-left'
,
'0'
);
return
timeStr
;
}
...
...
public/js/me/setting.page.js
View file @
2b5409a
...
...
@@ -34,7 +34,7 @@ var Bll = {
},
validate
:
function
(
info
)
{
var
regBirth
=
new
RegExp
(
/^
[
1-2
][
0-9
][
0-9
][
0-9
]
-
[
0-1
]{0,1}[
0-9
]
-
[
0-3
]{0,1}[
0-9
]
$/
);
var
regName
=
new
RegExp
(
/^
[\u
4e00-
\u
9fa5_
-a-zA-Z0-9
]
+$/
);
var
regName
=
new
RegExp
(
/^
[\u
4e00-
\u
9fa5_
a-zA-Z0-9-
]
+$/
);
var
regRealName
=
new
RegExp
(
/^
[\u
4e00-
\u
9fa5a-zA-Z
]{2,12}
$/
);
var
birthdayForm
=
$
(
'#birthday'
);
var
nickForm
=
$
(
'#nick_name'
);
...
...
public/js/shopping/pay.page.js
View file @
2b5409a
...
...
@@ -87,3 +87,5 @@ $('#go-pay-btn').click(function() {
}
});
});
console
.
log
(
window
.
history
);
...
...
public/scss/channel/_home.css
View file @
2b5409a
...
...
@@ -14,6 +14,10 @@
height
:
$
sliderHeight
;
}
.slide-pagination
{
bottom
:
110px
;
}
.slide-thumb-container
{
height
:
510px
;
}
...
...
@@ -85,12 +89,12 @@
&.prev
{
left
:
50%
;
margin-left
:
-
515
px
;
margin-left
:
-
620
px
;
}
&
.next
{
right
:
50%
;
margin-right
:
-
515
px
;
margin-right
:
-
620
px
;
}
&
:hover
{
...
...
@@ -270,7 +274,7 @@
.main-container
{
position
:
relative
;
top
:
-
60
px
;
top
:
-
85
px
;
margin
:
0
auto
;
box-sizing
:
border-box
;
}
...
...
public/scss/channel/_new-arrival.css
View file @
2b5409a
.new-arrival
{
$
textHeight
:
47px
;
$
imgHeight
:
49
0
px
;
$
imgHeight
:
49
6
px
;
@extend
.resource-container;
...
...
public/scss/product/_shop.css
View file @
2b5409a
...
...
@@ -233,6 +233,8 @@
float
:
left
;
height
:
30px
;
line-height
:
30px
;
width
:
1000px
;
overflow
:
hidden
;
div
{
float
:
left
;
margin
:
0
5px
;
...
...
public/scss/shopping/_cart-products.css
View file @
2b5409a
...
...
@@ -53,8 +53,9 @@ $hoverColor: #379ed6;
padding
:
24px
30px
;
li
{
float
:
left
;
display
:
table-cell
;
height
:
134px
;
vertical-align
:
middle
;
}
.chk
{
...
...
@@ -92,10 +93,17 @@ $hoverColor: #379ed6;
width
:
342px
;
padding-left
:
42px
;
font-size
:
12px
;
font-weight
:
bold
;
.brand-name
{
margin-bottom
:
19px
;
display
:
block
;
font-size
:
18px
;
font-weight
:
bold
;
line-height
:
50px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
max-width
:
300px
;
}
.size
{
...
...
@@ -108,11 +116,10 @@ $hoverColor: #379ed6;
}
.pro-name
{
height
:
3
0
px
;
height
:
3
6
px
;
width
:
234px
;
word-wrap
:
break-word
;
margin-bottom
:
13px
;
line-height
:
1.3em
;
margin-bottom
:
5px
;
overflow
:
hidden
;
:hover
{
cursor
:
pointer
;
...
...
@@ -123,6 +130,7 @@ $hoverColor: #379ed6;
.pro-name
>
a
{
height
:
100%
;
display
:
block
;
line-height
:
18px
;
}
.price
{
...
...
@@ -165,7 +173,7 @@ $hoverColor: #379ed6;
}
.editable
{
padding
:
5px
;
padding
:
5px
0
;
width
:
200px
;
position
:
relative
;
...
...
public/scss/shopping/_order.css
View file @
2b5409a
...
...
@@ -427,6 +427,10 @@
.brand-name
{
display
:
block
;
line-height
:
50px
;
width
:
338px
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
.name
{
...
...
Please
register
or
login
to post a comment