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
Aiden Xu
9 years ago
Commit
7d3d105a3329f29ee85c739ead0eb6135c718cc2
2 parents
e702f661
c5ad4269
master
...
develop
feature/catch
feature/docker
feature/login-msg
feature/login-ua-ip
feature/removCamel
feature/safe-bug
feature/sessionKey
feature/setting
feature/vip
feature/webpack2
feature/wsl5.3
gray
release/2.0
release/fontBack2.0
Merge remote-tracking branch 'origin/release/1.0' into release/1.0
Hide whitespace changes
Inline
Side-by-side
Showing
50 changed files
with
1540 additions
and
1444 deletions
apps/brand/views/partial/list.hbs
apps/channel/views/partial/brand-img-box.hbs
apps/me/controllers/address.js
apps/me/controllers/order.js
apps/me/views/partial/address/table.hbs
apps/me/views/partial/order/detail/order-status.hbs
apps/me/views/partial/refund-detail.hbs
apps/product/controllers/shop.js
apps/product/models/item-handler.js
apps/product/models/shop-service.js
apps/product/views/partial/list/banner-info.hbs
apps/shopping/controllers/cart.js
apps/shopping/controllers/order.js
apps/shopping/helpers/pay/alipay.js
apps/shopping/models/cart.js
apps/shopping/models/order.js
apps/shopping/views/partial/cart/cart-list-body.hbs
apps/shopping/views/partial/cart/statement.hbs
config/common.js
doraemon/middleware/user.js
public/img/layout/404.svg
public/img/layout/500.svg
public/img/layout/empty-bag.svg
public/img/product/search.svg
public/js/common/header.js
public/js/help/help.page.js
public/js/me/address.page.js
public/js/me/order-detail.page.js
public/js/passport/back/back.js
public/js/product/shop-list.page.js
public/scss/components/_header.css
public/scss/components/_share.css
public/scss/help/_index.css
public/scss/me/_address.css
public/scss/me/_exchange.css
public/scss/me/order/_table.css
public/scss/me/return/_index.css
public/scss/me/setting/_footer.css
public/scss/passport/_login.css
public/scss/product/_item.css
public/scss/product/_list.css
public/scss/product/_shop.css
public/scss/shopping/_order.css
public/scss/shopping/_pay.css
public/scss/shopping/_statement.css
public/scss/shopping/_stepper.css
public/tpl/me/size-list.hbs
public/tpl/shopping/address-list.hbs
public/tpl/shopping/cart-content.hbs
public/webpack.config.js
apps/brand/views/partial/list.hbs
View file @
7d3d105
...
...
@@ -7,11 +7,11 @@
<li>
<a
data-key=
"
{{
key
}}
"
href=
"
{{
brandDomain
}}
"
target=
"_blank"
>
<img
class=
"lazy"
data-original=
"
{{
image
brandIco
270
190
}}
"
>
<span>
{{#if
brandName
En
}}{{
brandNameEn
}}{{else}}{{
brandName
}}{{/if}}
</span>
<span>
{{#if
brandName
}}{{
brandName
}}{{else}}{{
brandNameEn
}}{{/if}}
</span>
</a>
</li>
{{/
each
}}
</ul>
</dd>
</dl>
{{/
each
}}
\ No newline at end of file
{{/
each
}}
...
...
apps/channel/views/partial/brand-img-box.hbs
View file @
7d3d105
{{#
classicBrands
}}
<div
class=
"brand-img-box
{{#if
right
}}
right
{{/if}}
{{#if
bottomSpace
}}
mb10
{{/if}}
"
>
{{#
big
}}
<a
href=
"
{{
url
}}
"
target=
"_blank"
>
<img
class=
"big-img"
src=
"
{{
image
src
565
340
}}
"
>
</a>
{{/
big
}}
{{#
small
}}
<a
href=
"
{{
url
}}
"
target=
"_blank"
>
<img
class=
"small-img
{{#if
@first
}}
first
{{/if}}
"
src=
"
{{
image
src
281
285
}}
"
>
</a>
{{/
small
}}
</div>
{{/
classicBrands
}}
{{#
classicBrands
}}
<div
class=
"brand-img-box
{{#if
right
}}
right
{{/if}}
{{#if
bottomSpace
}}
mb10
{{/if}}
"
>
{{#
big
}}
<a
href=
"
{{
url
}}
"
target=
"_blank"
>
<img
class=
"big-img"
src=
"
{{
image
src
565
340
}}
"
>
</a>
{{/
big
}}
{{#
small
}}
<a
href=
"
{{
url
}}
"
target=
"_blank"
>
<img
class=
"small-img
{{#if
@first
}}
first
{{/if}}
"
src=
"
{{
image
src
281
285
}}
"
>
</a>
{{/
small
}}
</div>
{{/
classicBrands
}}
...
...
apps/me/controllers/address.js
View file @
7d3d105
...
...
@@ -6,6 +6,8 @@
'use strict'
;
const
mcHandler
=
require
(
'../models/menu-crumb-handler'
);
const
addressModel
=
require
(
'../models/address'
);
const
crypto
=
global
.
yoho
.
crypto
;
const
config
=
global
.
yoho
.
config
;
const
_
=
require
(
'lodash'
);
...
...
@@ -31,6 +33,7 @@ const index = (req, res, next) => {
for
(
let
i
=
0
;
i
<
length
;
i
++
)
{
resultData
[
i
].
default
=
resultData
[
i
].
is_default
===
'Y'
;
resultData
[
i
].
mobile
=
resultData
[
i
].
mobile
.
replace
(
reg
,
'$1****$2'
);
resultData
[
i
].
id
=
crypto
.
encryption
(
config
.
crypto
.
common
,
resultData
[
i
].
address_id
+
''
);
}
resultData
.
leftLength
=
7
-
length
;
resultData
.
length
=
length
;
...
...
@@ -56,6 +59,10 @@ const getAddressList = (req, res, next) => {
if
(
result
.
data
)
{
let
defaultAd
=
_
.
find
(
result
.
data
,
o
=>
o
.
is_default
===
'Y'
);
_
.
each
(
result
.
data
,
(
d
)
=>
{
d
.
address_id
=
crypto
.
encryption
(
config
.
crypto
.
common
,
d
.
address_id
+
''
);
});
defaultAd
&&
(
defaultAd
.
focus
=
true
);
}
res
.
send
(
result
);
...
...
@@ -76,6 +83,10 @@ const addAddressData = (req, res, next) => {
let
isInit
=
req
.
body
.
init
&&
req
.
body
.
init
===
'true'
;
// 是否是初始地址
addressModel
.
addAddressData
(
uid
,
address
,
areaCode
,
consignee
,
mobile
,
phone
,
isInit
).
then
(
result
=>
{
if
(
result
.
data
&&
result
.
data
.
address_id
)
{
result
.
data
.
aid
=
crypto
.
encryption
(
config
.
crypto
.
common
,
result
.
data
.
address_id
+
''
);
}
res
.
send
(
result
);
}).
catch
(
next
);
};
...
...
@@ -84,7 +95,7 @@ const addAddressData = (req, res, next) => {
* 修改地址
*/
const
updateAddressData
=
(
req
,
res
,
next
)
=>
{
let
id
=
req
.
body
.
id
;
let
id
=
crypto
.
decrypt
(
config
.
crypto
.
common
,
req
.
body
.
id
)
;
let
uid
=
req
.
user
.
uid
;
let
address
=
req
.
body
.
address
;
let
areaCode
=
req
.
body
.
area_code
;
...
...
@@ -101,7 +112,7 @@ const updateAddressData = (req, res, next) => {
* 删除地址
*/
const
delAddressData
=
(
req
,
res
,
next
)
=>
{
let
id
=
req
.
body
.
id
;
let
id
=
crypto
.
decrypt
(
config
.
crypto
.
common
,
req
.
body
.
id
)
;
let
uid
=
req
.
user
.
uid
;
addressModel
.
delAddressData
(
id
,
uid
).
then
(
result
=>
{
...
...
@@ -113,7 +124,7 @@ const delAddressData = (req, res, next) => {
* 设置默认地址
*/
const
setDefaultAddress
=
(
req
,
res
)
=>
{
let
id
=
req
.
body
.
id
;
let
id
=
crypto
.
decrypt
(
config
.
crypto
.
common
,
req
.
body
.
id
)
;
let
uid
=
req
.
user
.
uid
;
_setDefault
(
id
,
uid
).
then
(
result
=>
{
...
...
apps/me/controllers/order.js
View file @
7d3d105
...
...
@@ -8,6 +8,9 @@
const
mcHandler
=
require
(
'../models/menu-crumb-handler'
);
const
orderModel
=
require
(
'../models/order'
);
const
_
=
require
(
'lodash'
);
const
crypto
=
global
.
yoho
.
crypto
;
const
config
=
global
.
yoho
.
config
;
/**
* 我的订单
...
...
@@ -41,6 +44,9 @@ const detail = (req, res, next) => {
const
pageData
=
result
[
0
];
const
thumb
=
result
[
1
];
if
(
_
.
has
(
pageData
,
'orderDetail.orderCode'
))
{
pageData
.
orderDetail
.
orderCodeM
=
crypto
.
encryption
(
config
.
crypto
.
common
,
pageData
.
orderDetail
.
orderCode
);
}
res
.
display
(
'index'
,
{
isMe
:
true
,
...
...
@@ -123,6 +129,7 @@ const editOrder = (req, res, next) => {
const
query
=
req
.
query
;
query
.
uid
=
uid
;
query
.
orderCode
=
crypto
.
decrypt
(
config
.
crypto
.
common
,
query
.
orderCode
);
orderModel
.
editOrder
(
query
).
then
(
result
=>
{
res
.
json
(
result
);
...
...
apps/me/views/partial/address/table.hbs
View file @
7d3d105
...
...
@@ -11,7 +11,7 @@
</tr>
{{#
each
data
}}
<tr
class=
"table-body "
>
<input
type=
"hidden"
id=
"tr_
{{
address_id
}}
"
value=
"
{{
address_id
}}
"
>
<input
type=
"hidden"
id=
"tr_
{{
address_id
}}
"
value=
"
{{
address_id
}}
"
data-addressid=
"
{{
id
}}
"
data-default=
"
{{
default
}}
"
>
<input
type=
"hidden"
id=
"tr_
{{
area_code
}}
"
value=
"
{{
area_code
}}
"
>
<td
class=
"width-name"
>
{{
consignee
}}
</td>
<td
class=
"width-address"
>
{{
area
}}
</td>
...
...
@@ -21,15 +21,15 @@
<td
class=
"width-opearte"
>
<div>
<span
class=
"blue opreation update-address"
data-id=
"
{{
address_id
}}
"
>
修改
</span>
<em
class=
"op-sep
{{#if
default
}}
hide
{{/if}}
"
>
|
</em>
<span
class=
"blue opreation del-address
{{#if
default
}}
hide
{{/if}}
"
data-id=
"
{{
address_
id
}}
"
>
删除
</span>
<span
class=
"blue opreation del-address
{{#if
default
}}
hide
{{/if}}
"
data-id=
"
{{
id
}}
"
>
删除
</span>
{{#if
default
}}
<span
class=
"btn set-default opreation current-default"
data-id=
{{
address_
id
}}
>
默认地址</span
>
<span
class=
"btn set-default opreation current-default"
data-id=
{{
id
}}
>
默认地址</span
>
{{else}}
<span
class=
"btn set-default opreation set"
data-id=
{{
address_
id
}}
>
设为默认</span
>
<span
class=
"btn set-default opreation set"
data-id=
{{
id
}}
>
设为默认</span
>
{{/if}}
</div>
</td>
</tr>
...
...
apps/me/views/partial/order/detail/order-status.hbs
View file @
7d3d105
<div
class=
"order-status order"
data-code=
"
{{
orderCode
}}
"
>
<div
class=
"order-status order"
data-code=
"
{{
orderCode
}}
"
data-codem=
"
{{
orderCodeM
}}
"
>
<div
class=
"basic"
>
<p>
订单号:
{{
orderCode
}}
</p>
<p>
订单状态:
{{
statusStr
}}
</p>
...
...
apps/me/views/partial/refund-detail.hbs
View file @
7d3d105
{{#
refundDetail
}}
<div
class=
"refund-datail-wrap"
data-id=
"
{{
id
}}
"
>
<a
href=
"/help?id=43"
class=
"refund-notice"
target=
"_blank"
>
退货须知
</a>
{{>
returns
/
returns-status
}}
{{#
orderReview
}}
<div
class=
"top-tip"
>
{{#if
pass
}}
<p
class=
"tip-status"
>
<span
class=
"iconfont blue"
>

</span>
<span
class=
"blue"
>
退货申请已通过
</span>
</p>
{{^}}
<p
class=
"tip-status"
>
<span
class=
"iconfont blue"
>

</span>
<span
class=
"blue"
>
退货申请审核中
</span>
</p>
{{/if}}
<p
class=
"tip-text"
>
请将商品连同吊牌、包装、发货单(如无发货单,您可找张白纸上注明订单编号,收货人姓名及手机号码)、发票(如有)、 赠品(如有)一并寄回,如有 遗漏将影响您的退换货进度,敬请谅解
<br>
非我司原因的退换货,寄回运费由您承担。商品客观问题的退换货,请您先行垫付运费,邮费会在退款中补贴给您,
<b>
我们不接受平邮和到付
</b>
,感谢您的理解与支持
</p>
<p>
如果您不想退货了,您可以
<span
class=
"cancel-btn btn"
>
取消申请
</span>
</p>
</div>
{{/
orderReview
}}
{{#
backStorage
}}
<div
class=
"storage-tip top-tip"
>
<p
class=
"tip-status"
>
<span
class=
"iconfont blue"
>

</span>
<span
class=
"blue"
>
您寄回的商品已收到
</span>
</p>
<p>
我们会在入库后的1-3个工作日内处理您的退款,如有疑问,请联系
<a
href=
"http://chat8.live800.com/live800/chatClient/chatbox.jsp?companyID=703953&configID=149819&jid=1099911094"
class=
"online-service"
target=
"_blank"
>
<span
class=
"iconfont blue"
>

</span>
<span
class=
"blue"
>
在线客服
</span>
</a>
</p>
</div>
{{/
backStorage
}}
{{#
refundSure
}}
<div
class=
"success-tip top-tip"
>
<p
class=
"tip-status"
>
<span
class=
"iconfont blue"
>

</span>
<span
class=
"blue"
>
退款完成
</span>
</p>
<p>
退款方式:
{{
mode
}}
<em>
由于银行内部处理流程的差异,储蓄卡需要3-7个工作日到账,信用卡需要7-15个工作日到账
</em></p>
<p
class=
"tip-pad-top"
>
退款账户:
{{
account
}}
</p>
<p
class=
"tip-pad-top"
>
金额:¥
{{
amount
}}
</p>
<p
class=
"tip-pad-top"
>
有货币:
{{
coin
}}
个
</p>
</div>
{{/
refundSure
}}
{{#
cancelApply
}}
<div
class=
"top-tip"
>
<span
class=
"blue"
>
您已取消申请
</span>
</div>
{{/
cancelApply
}}
{{#
refundExpress
}}
<div
class=
"return-express"
>
{{#if
number
}}
<div
class=
"show-content"
data-id=
"
{{
id
}}
"
>
<h4
class=
"third-title"
>
寄回物流信息
<label
class=
"reset-express btn white"
>
修改
</label></h4>
<p>
请您耐心等待,我们会在收到货物后快速为您处理
</p>
<p>
物流公司:
{{
company
}}
</p>
<p>
快递单号:
{{
number
}}
</p>
</div>
{{/if}}
<div
class=
"edit-content
{{#if
number
}}
hide
{{/if}}
"
{{#
expressList
}}
data-
{{
id
}}
="
{{
name
}}
"
{{/
expressList
}}
>
<h4
class=
"third-title"
>
填写物流
</h4>
<p>
请您在
<span
class=
"blue"
>
7天内
</span>
将商品寄回并填写物流,逾期将自动取消申请
</p>
<dl
class=
"express-wrap"
>
<dd>
物流公司:
<select
class=
"express-company"
>
<option
value=
"0"
>
选择快递公司
</option>
{{#
expressList
}}
<option
value=
"
{{
id
}}
"
>
{{
name
}}
</option>
{{/
expressList
}}
</select>
</dd>
<dd>
快递单号:
<input
type=
"text"
class=
"express-code"
placeholder=
"填写快递单号"
value=
"
{{
number
}}
"
>
</dd>
<dd>
<span
class=
"submit-express btn"
>
提交
</span>
<span
class=
"error-tip blue hide"
>
请填写完整寄回物流信息
</span>
</dd>
</dl>
</div>
</div>
{{/
refundExpress
}}
{{#
refundAddress
}}
<div
class=
"return-address"
>
<h4
class=
"third-title"
>
寄回地址
</h4>
<p>
地
址:
{{
address
}}
</p>
<p>
收
件
人:
{{
name
}}
</p>
<p>
邮
编:
{{
code
}}
</p>
<p>
联系电话:
{{
phone
}}
</p>
</div>
{{/
refundAddress
}}
<div
class=
"refund-detail-goods"
>
<h4
class=
"third-title"
>
退货商品
订单编号:
{{
orderCode
}}
</h4>
<ul
class=
"goods-header"
>
<li
class=
"info"
>
商品信息
</li>
<li>
退货原因
</li>
<li>
退货数量
</li>
</ul>
{{#
goods
}}
<div
class=
"goods-item clearfix"
>
<div
class=
"img"
>
<img
class=
"lazy"
title=
"
{{
name
}}
"
data-original=
"
{{
image
img
70
90
}}
"
>
</div>
<div
class=
"info"
>
<p
class=
"title"
title=
"
{{
name
}}
"
>
{{
name
}}
</p>
<p>
颜色:
{{
color
}}
尺码:
{{
size
}}
</p>
</div>
<div
class=
"reason"
>
{{
reason
}}
</div>
<div
class=
"num"
>
{{
num
}}
</div>
{{#if
remark
}}
<dl
class=
"special-info"
>
<dd
class=
"remark"
>
<label>
问题描述:
</label>
{{
remark
}}
</dd>
{{#if
evidence
}}
<dd>
<label>
照片凭证:
</label>
{{#
evidence
}}
<a
href=
"
{{
this
}}
"
class=
"evidence-img"
target=
"_blank"
>
<img
class=
"lazy"
data-original=
"
{{
this
}}
"
>
</a>
{{/
evidence
}}
</dd>
{{/if}}
</dl>
{{/if}}
</div>
{{/
goods
}}
</div>
</div>
{{#
refundDetail
}}
<div
class=
"refund-datail-wrap"
data-id=
"
{{
id
}}
"
>
<a
href=
"/help?id=43"
class=
"refund-notice"
target=
"_blank"
>
退货须知
</a>
{{>
returns
/
returns-status
}}
{{#
orderReview
}}
<div
class=
"top-tip"
>
{{#if
pass
}}
<p
class=
"tip-status"
>
<span
class=
"iconfont blue"
>

</span>
<span
class=
"blue"
>
退货申请已通过
</span>
</p>
{{^}}
<p
class=
"tip-status"
>
<span
class=
"iconfont blue"
>

</span>
<span
class=
"blue"
>
退货申请审核中
</span>
</p>
{{/if}}
<p
class=
"tip-text"
>
请将商品连同吊牌、包装、发货单(如无发货单,您可找张白纸上注明订单编号,收货人姓名及手机号码)、发票(如有)、 赠品(如有)一并寄回,如有 遗漏将影响您的退换货进度,敬请谅解
<br>
非我司原因的退换货,寄回运费由您承担。商品客观问题的退换货,请您先行垫付运费,邮费会在退款中补贴给您,
<b>
我们不接受平邮和到付
</b>
,感谢您的理解与支持
</p>
<p>
如果您不想退货了,您可以
<span
class=
"cancel-btn btn"
>
取消申请
</span>
</p>
</div>
{{/
orderReview
}}
{{#
backStorage
}}
<div
class=
"storage-tip top-tip"
>
<p
class=
"tip-status"
>
<span
class=
"iconfont blue"
>

</span>
<span
class=
"blue"
>
您寄回的商品已收到
</span>
</p>
<p>
我们会在入库后的1-3个工作日内处理您的退款,如有疑问,请联系
<a
href=
"http://chat8.live800.com/live800/chatClient/chatbox.jsp?companyID=703953&configID=149819&jid=1099911094"
class=
"online-service"
target=
"_blank"
>
<span
class=
"iconfont blue"
>

</span>
<span
class=
"blue"
>
在线客服
</span>
</a>
</p>
</div>
{{/
backStorage
}}
{{#
refundSure
}}
<div
class=
"success-tip top-tip"
>
<p
class=
"tip-status"
>
<span
class=
"iconfont blue"
>

</span>
<span
class=
"blue"
>
退款完成
</span>
</p>
<p>
退款方式:
{{
mode
}}
<em>
由于银行内部处理流程的差异,储蓄卡需要3-7个工作日到账,信用卡需要7-15个工作日到账
</em></p>
<p
class=
"tip-pad-top"
>
退款账户:
{{
account
}}
</p>
<p
class=
"tip-pad-top"
>
金额:¥
{{
amount
}}
</p>
<p
class=
"tip-pad-top"
>
有货币:
{{
coin
}}
个
</p>
</div>
{{/
refundSure
}}
{{#
cancelApply
}}
<div
class=
"top-tip"
>
<span
class=
"blue"
>
您已取消申请
</span>
</div>
{{/
cancelApply
}}
{{#
refundExpress
}}
<div
class=
"return-express"
>
{{#if
number
}}
<div
class=
"show-content"
data-id=
"
{{
id
}}
"
>
<h4
class=
"third-title"
>
寄回物流信息
<label
class=
"reset-express btn white"
>
修改
</label></h4>
<p>
请您耐心等待,我们会在收到货物后快速为您处理
</p>
<p>
物流公司:
{{
company
}}
</p>
<p>
快递单号:
{{
number
}}
</p>
</div>
{{/if}}
<div
class=
"edit-content
{{#if
number
}}
hide
{{/if}}
"
{{#
expressList
}}
data-
{{
id
}}
="
{{
name
}}
"
{{/
expressList
}}
>
<h4
class=
"third-title"
>
填写物流
</h4>
<p>
请您在
<span
class=
"blue"
>
7天内
</span>
将商品寄回并填写物流,逾期将自动取消申请
</p>
<dl
class=
"express-wrap"
>
<dd>
物流公司:
<select
class=
"express-company"
>
<option
value=
"0"
>
选择快递公司
</option>
{{#
expressList
}}
<option
value=
"
{{
id
}}
"
>
{{
name
}}
</option>
{{/
expressList
}}
</select>
</dd>
<dd>
快递单号:
<input
type=
"text"
class=
"express-code"
placeholder=
"填写快递单号"
value=
"
{{
number
}}
"
>
</dd>
<dd>
<span
class=
"submit-express btn"
>
提交
</span>
<span
class=
"error-tip blue hide"
>
请填写完整寄回物流信息
</span>
</dd>
</dl>
</div>
</div>
{{/
refundExpress
}}
{{#
refundAddress
}}
<div
class=
"return-address"
>
<h4
class=
"third-title"
>
寄回地址
</h4>
<p>
地
址:
{{
address
}}
</p>
<p>
收
件
人:
{{
name
}}
</p>
<p>
邮
编:
{{
code
}}
</p>
<p>
联系电话:
{{
phone
}}
</p>
</div>
{{/
refundAddress
}}
<div
class=
"refund-detail-goods"
>
<h4
class=
"third-title"
>
退货商品
订单编号:
{{
orderCode
}}
</h4>
<ul
class=
"goods-header"
>
<li
class=
"info"
>
商品信息
</li>
<li>
退货原因
</li>
<li>
退货数量
</li>
</ul>
{{#
goods
}}
<div
class=
"goods-item clearfix"
>
<div
class=
"img"
>
<img
class=
"lazy"
title=
"
{{
name
}}
"
data-original=
"
{{
image
img
70
90
}}
"
>
</div>
<div
class=
"info"
>
<p
class=
"title"
title=
"
{{
name
}}
"
>
{{
name
}}
</p>
<p>
颜色:
{{
color
}}
尺码:
{{
size
}}
</p>
</div>
<div
class=
"reason"
>
{{
reason
}}
</div>
<div
class=
"num"
>
{{
num
}}
</div>
{{#if
remark
}}
<dl
class=
"special-info"
>
<dd
class=
"remark"
>
<label>
问题描述:
</label>
{{
remark
}}
</dd>
{{#if
evidence
}}
<dd>
<label>
照片凭证:
</label>
{{#
evidence
}}
<a
href=
"
{{
this
}}
"
class=
"evidence-img"
target=
"_blank"
>
<img
class=
"lazy"
data-original=
"
{{
this
}}
"
>
</a>
{{/
evidence
}}
</dd>
{{/if}}
</dl>
{{/if}}
</div>
{{/
goods
}}
</div>
</div>
{{/
refundDetail
}}
\ No newline at end of file
...
...
apps/product/controllers/shop.js
View file @
7d3d105
...
...
@@ -144,7 +144,7 @@ const shop = {
data
.
filter
=
DataHelper
.
filterHandle
(
ret
.
filter
,
q
);
data
.
filter
.
showPrice
=
ret
.
total
>
10
;
data
.
filter
.
showInfo
=
(
data
.
filter
.
style
&&
data
.
filter
.
style
.
length
>
0
)
||
(
ret
.
standard
&&
ret
.
standard
.
length
>
0
);
//eslint-disable-line
||
(
ret
.
standard
&&
ret
.
standard
.
length
>
0
);
//eslint-disable-line
}
...
...
apps/product/models/item-handler.js
View file @
7d3d105
...
...
@@ -823,9 +823,7 @@ const setDetailData = sizeInfo => {
titleCn
:
'商品详情'
};
if
(
sizeInfo
.
productDescBo
&&
sizeInfo
.
productDescBo
.
phrase
)
{
details
.
content
=
`
$
{
sizeInfo
.
productDescBo
.
phrase
}
<
br
/>
`
;
}
details
.
content
=
`
$
{
_
.
get
(
sizeInfo
,
'productDescBo.phrase'
,
''
)}
<
br
/>
`
;
// 图片换规则
const
replacePairs
=
[
...
...
apps/product/models/shop-service.js
View file @
7d3d105
...
...
@@ -153,8 +153,8 @@ const ShopService = {
info
.
sorts
=
sorts
;
if
(
resources
.
shopTopBanner
)
{
// eslint-disable-line
info
.
banner
=
resources
.
shopTopBanner
.
shopSrc
;
// eslint-disable-line
if
(
resources
.
shopTopBanner
)
{
// eslint-disable-line
info
.
banner
=
resources
.
shopTopBanner
.
shopSrc
;
// eslint-disable-line
}
info
.
resources
=
resources
;
info
.
menus
=
shopMenu
(
domain
,
resources
.
navigationBar
);
...
...
apps/product/views/partial/list/banner-info.hbs
View file @
7d3d105
{{#
banner
}}
<div
class=
"brand-info-wrapper"
>
<div
class=
"brand-info"
>
<div
class=
"
nano-content
"
>
<div
class=
""
>
<div
class=
"brand-info-title"
>
<h2>
{{
name
}}
</h2>
<h5>
品牌介绍
</h5>
</div>
<div
class=
"brand-info-content"
>
{{{
info
}}}
<div
class=
"brand-info-content nano"
>
<div
class=
"nano-content"
>
{{{
info
}}}
</div>
</div>
</div>
</div>
...
...
apps/shopping/controllers/cart.js
View file @
7d3d105
...
...
@@ -18,7 +18,6 @@ exports.index = (req, res, next) => {
if
(
result
.
code
===
200
)
{
res
.
header
(
'Cache-Control'
,
'no-store'
);
res
.
display
(
'cart'
,
_
.
merge
({
module
:
'shopping'
,
page
:
'cart'
,
...
...
@@ -135,7 +134,7 @@ exports.addToCart = (req, res, next) => {
shoppingKey
:
req
.
cookies
.
_SPK
||
null
,
uid
:
req
.
user
.
uid
}).
then
((
result
)
=>
{
res
.
cookie
(
'_SPK'
,
result
.
data
.
shopping_key
,
{
maxAge
:
1000
*
60
*
60
*
24
*
365
,
httpOnly
:
true
,
path
:
'/'
});
res
.
cookie
(
'_SPK'
,
result
.
data
.
shopping_key
,
{
maxAge
:
1000
*
60
*
60
*
24
*
365
,
httpOnly
:
true
,
path
:
'/'
});
res
.
json
(
result
);
}).
catch
(
next
);
};
...
...
@@ -147,9 +146,6 @@ exports.toggleSelectGoods = (req, res, next) => {
const
shoppingKey
=
req
.
cookies
.
_SPK
;
// 商品sku列表
// skuList:
// [{"goods_type":"advance","buy_number":1,"selected":"Y","product_sku":"1006277","promotion_id":0}, {...}]
// [{"goods_type":"ordinary","buy_number":1,"selected":"Y","product_sku":"1006277","promotion_id":0}, {...}]
const
productSkuList
=
req
.
body
.
skuList
;
if
(
uid
)
{
...
...
apps/shopping/controllers/order.js
View file @
7d3d105
...
...
@@ -11,6 +11,8 @@ const orderModel = require('../models/order');
const
_
=
require
(
'lodash'
);
const
helper
=
global
.
yoho
.
helpers
;
const
crypto
=
global
.
yoho
.
crypto
;
const
config
=
global
.
yoho
.
config
;
// 结算页面
const
index
=
(
req
,
res
,
next
)
=>
{
...
...
@@ -21,10 +23,7 @@ const index = (req, res, next) => {
// 设置头部路径索引focus
data
.
bcNavFocus
=
2
;
// 构造诡异的配送方式数据【显示普通快递的文字,确用顺丰发货和顺丰的快递费】
data
.
delivery_way
=
_
.
concat
(
_
.
assign
(
_
.
find
(
data
.
delivery_way
,
{
delivery_way_id
:
2
}),
{
delivery_way_name
:
'普通快递'
}));
data
.
delivery_way
=
_
.
concat
(
_
.
find
(
data
.
delivery_way
,
{
delivery_way_id
:
1
}));
// 发票抬头
data
.
invoices
.
invoiceTitle
=
[
...
...
@@ -93,6 +92,8 @@ const orderSub = (req, res, next) => {
message
:
'配送地址不能为空'
});
return
;
}
else
{
other
.
address_id
=
crypto
.
decrypt
(
config
.
crypto
.
common
,
other
.
address_id
);
}
orderModel
.
submit
(
req
.
user
.
uid
,
other
).
then
(
result
=>
{
...
...
apps/shopping/helpers/pay/alipay.js
View file @
7d3d105
...
...
@@ -26,7 +26,7 @@ const Alipay = {
_input_charset
:
'utf-8'
,
notify_url
:
config
.
pay
.
serviceNotify
+
'payment/alipay_notify'
,
return_url
:
'http:'
+
helpers
.
urlFormat
(
'/shopping/pay/callback/alipay'
),
subject
:
'
有货
订单号:'
+
order
.
orderCode
,
subject
:
'
BLK
订单号:'
+
order
.
orderCode
,
out_trade_no
:
order
.
orderCode
,
it_b_pay
:
common
.
getPayExpireMin
(
order
.
payExpire
)
+
'm'
,
total_fee
:
order
.
paymentAmount
,
...
...
apps/shopping/models/cart.js
View file @
7d3d105
...
...
@@ -132,40 +132,40 @@ const toggleSelectGoods = (params) => {
_
.
merge
(
params
,
{
method
});
/*
let resultData;
let skus = JSON.parse(params.product_sku_list).map(sku => return sku.product_sku);
const skusLen = skus.length;
_.merge(params, {method});
return getCartData(params.shopping_key, params.uid).then(function(result) {
// 检查库存量
resultData = result.data;
_.find(
_.concat(resultData.ordinary_cart_data.goods_list, resultData.advance_cart_data.goods_list),
(goodItem) => {
if (skusLen == 1 && goodItem.product_sku === skus[0] &&
(parseInt(goodItem.buy_number, 10) > parseInt(goodItem.storage_number, 10))) {
// 单个商品
return {
code: '1000',
message: '您勾选的商品库存不足'
};
} else {
if((parseInt(goodItem.buy_number, 10) > parseInt(goodItem.storage_number, 10))) {
// 全选
return api.get('', params).then(result => {
return _.merge(result, {
code: '1001',
message: '您全选的商品中存在库存不足商品,已帮您自动取消勾选'
})
});
}
}
});
});
*/
let resultData;
let skus = JSON.parse(params.product_sku_list).map(sku => return sku.product_sku);
const skusLen = skus.length;
_.merge(params, {method});
return getCartData(params.shopping_key, params.uid).then(function(result) {
// 检查库存量
resultData = result.data;
_.find(
_.concat(resultData.ordinary_cart_data.goods_list, resultData.advance_cart_data.goods_list),
(goodItem) => {
if (skusLen == 1 && goodItem.product_sku === skus[0] &&
(parseInt(goodItem.buy_number, 10) > parseInt(goodItem.storage_number, 10))) {
// 单个商品
return {
code: '1000',
message: '您勾选的商品库存不足'
};
} else {
if((parseInt(goodItem.buy_number, 10) > parseInt(goodItem.storage_number, 10))) {
// 全选
return api.get('', params).then(result => {
return _.merge(result, {
code: '1001',
message: '您全选的商品中存在库存不足商品,已帮您自动取消勾选'
})
});
}
}
});
});
*/
return
api
.
get
(
''
,
params
);
};
...
...
@@ -295,15 +295,33 @@ const filterCartData = (result, uid) => {
});
}
let
freeShippingTip
=
''
;
if
(
_
.
has
(
result
,
'data.ordinary_cart_data.promotion_info'
))
{
let
promotions
=
result
.
data
.
ordinary_cart_data
.
promotion_info
;
_
.
each
(
promotions
,
p
=>
{
if
(
p
.
promotion_type
===
'VipFreeShippingCost'
)
{
freeShippingTip
=
p
.
promotion_title
;
}
if
(
p
.
promotion_type
===
'FreeShippingCost'
)
{
freeShippingTip
=
p
.
promotion_title
;
}
});
}
return
_
.
merge
(
resData
,
{
hasGoods
:
advancedGoods
.
length
||
ordinaryGoods
.
length
||
invalidGoods
.
length
,
preSalePros
:
(
advancedSoldOutGoods
.
length
||
advancedGoods
.
length
)
?
_
.
concat
(
advancedGoods
,
advancedSoldOutGoods
)
:
[],
_
.
concat
(
advancedGoods
,
advancedSoldOutGoods
)
:
[],
commonPros
:
ordinaryGoods
,
invalidPros
:
invalidGoods
,
selectedNum
:
selectedAdvanceNum
+
selectedOrdinaryNum
,
checkAll
:
totalNum
===
(
selectedAdvanceNum
+
selectedOrdinaryNum
),
totalMoney
:
totalAdvanceMoney
+
totalOrdinaryMoney
,
freeShippingTip
:
freeShippingTip
,
noStorage
});
};
...
...
apps/shopping/models/order.js
View file @
7d3d105
...
...
@@ -105,7 +105,7 @@ const _computeApi = (uid, deliveryWay, paymentType, yohoCoin) => api.get('', {
*/
const
compute
=
(
uid
,
yohoCoin
)
=>
{
// 目前仅支持普通快递和在线支付
let
deliveryWay
=
2
;
let
deliveryWay
=
1
;
let
paymentType
=
1
;
let
coin
;
...
...
@@ -166,7 +166,7 @@ const submit = (uid, other) => {
Object
.
assign
(
theOther
,
other
,
{
delivery_time
:
2
,
// 平时和周末都送货
delivery_way
:
2
,
// blk统一为顺丰
delivery_way
:
1
,
// blk统一为普通垮堤
payment_id
:
1
,
// 支付宝
payment_type
:
1
,
// 在线支付
use_yoho_coin
:
other
.
use_yoho_coin
/
100
// 有货币稀释
...
...
apps/shopping/views/partial/cart/cart-list-body.hbs
View file @
7d3d105
...
...
@@ -17,7 +17,7 @@
</li>
<li>
<a
href=
"/product/pro_
{{
product_id
}}
_
{{
goods_id
}}
/
{{
cn_alphabet
}}
.html"
target=
"_blank"
>
<img
src=
"
{{
image
goods_images
100
134
}}
"
alt=
"
{{
product_name
}}
"
>
<img
src=
"
{{
image
goods_images
100
134
}}
"
alt=
"
{{
product_name
}}
"
width=
"100"
height=
"134"
>
</a>
</li>
<li
class=
"pro-info"
>
...
...
@@ -72,7 +72,7 @@
</li>
<li>
<a
href=
"/product/pro_
{{
product_id
}}
_
{{
goods_id
}}
/
{{
cn_alphabet
}}
.html"
target=
"_blank"
>
<img
src=
"
{{
image
goods_images
100
134
}}
"
alt=
"
{{
product_name
}}
"
>
<img
src=
"
{{
image
goods_images
100
134
}}
"
alt=
"
{{
product_name
}}
"
width=
"100"
height=
"134"
>
</a>
</li>
<li
class=
"pro-info"
>
...
...
@@ -116,7 +116,7 @@
</li>
<li>
<a
href=
"javascript:void(0)"
>
<img
src=
"
{{
image
goods_images
100
134
}}
"
alt=
"
{{
product_name
}}
"
>
<img
src=
"
{{
image
goods_images
100
134
}}
"
alt=
"
{{
product_name
}}
"
width=
"100"
height=
"134"
>
</a>
</li>
<li
class=
"pro-info"
>
...
...
apps/shopping/views/partial/cart/statement.hbs
View file @
7d3d105
{{#if
freeShippingTip
}}
<div
class=
"fregit-remark"
>
<span>
免运费
</span>
{{
freeShippingTip
}}
</div>
{{/if}}
<div
class=
"cart-statement"
>
<div
class=
"actions"
>
<div
class=
"action"
>
...
...
@@ -24,4 +30,4 @@
<div
class=
"checkout"
>
<span
class=
"btn
{{#
unless
selectedNum
}}
disable
{{/
unless
}}
"
id=
"checkout_btn"
>
去结算
</span>
</div>
</div>
\ No newline at end of file
</div>
...
...
config/common.js
View file @
7d3d105
...
...
@@ -22,10 +22,10 @@ module.exports = {
},
cookieDomain
:
'yohoblk.com'
,
domains
:
{
singleApi
:
'http://192.168.102.31:8092/'
,
api
:
'http://api.yoho.yohoops.org/'
,
service
:
'http://service.yoho.yohoops.org/'
,
search
:
'http://192.168.102.216:8080/yohosearch/'
singleApi
:
'http://single.yoho.cn/'
,
api
:
'http://api-test3.yohops.com:9999/'
,
service
:
'http://service-test3.yohops.com:9999/'
,
search
:
'http://search.yohoops.org/yohosearch/'
},
useOneapm
:
false
,
useCache
:
false
,
...
...
@@ -85,13 +85,16 @@ module.exports = {
partnerID
:
'2088421464239504'
,
appSecret
:
'e3i54meghrac3qhryzhw1h5yzeijik7e'
},
sina
:
{
// 还未申请
appID
:
'3739328910'
,
appSecret
:
'9d44cded26d048e23089e5e975c93df1'
sina
:
{
// OK
appID
:
'1379621535'
,
appSecret
:
'aa29bf39b5fd9f247c93e900d679ab6a'
}
},
pay
:
{
serviceNotify
:
'http://devservice.yoho.cn:58077/'
},
crypto
:
{
common
:
'yohoblk9646abcde'
}
};
...
...
doraemon/middleware/user.js
View file @
7d3d105
...
...
@@ -10,7 +10,6 @@ const LoginService = require('../../apps/passport/models/login-service');
*/
module
.
exports
=
()
=>
{
return
(
req
,
res
,
next
)
=>
{
req
.
user
.
uid
=
8039837
;
// 从 SESSION 中获取到当前登录用户的 UID
if
(
req
.
session
&&
_
.
isNumber
(
req
.
session
.
_LOGIN_UID
))
{
...
...
public/img/layout/404.svg
View file @
7d3d105
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version=
"1.1"
id=
"图层_1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 243.422 102.159"
enable-background=
"new 0 0 243.422 102.159"
xml:space=
"preserve"
>
<g
id=
"XMLID_16_"
>
<path
id=
"XMLID_2_"
fill=
"#3B95C8"
d=
"M56.974,1.928v70.768h18.478V76H56.974v24.231h-3.359V76H0v-3.442l53.194-70.63H56.974z
M3.92,72.695h49.694V7.298h-0.42L3.92,72.695z"
/>
<path
id=
"XMLID_5_"
fill=
"#040000"
d=
"M148.238,17.485c3.919,8.536,6.019,19.688,6.019,33.595c0,13.768-2.1,25.058-6.019,33.594
c-5.459,11.564-14.278,17.485-26.597,17.485c-12.318,0-21.277-5.921-26.597-17.485c-3.92-8.536-5.879-19.688-5.879-33.594
c0-14.044,1.959-25.196,5.879-33.595C100.364,5.783,109.323,0,121.641,0C133.96,0,142.779,5.783,148.238,17.485z
M98.124,19
c-3.78,7.985-5.6,18.587-5.6,32.08c0,13.354,1.82,24.094,5.6,32.079c4.899,10.464,12.738,15.695,23.517,15.695
c10.639,0,18.478-5.231,23.518-15.695c3.779-8.123,5.739-18.862,5.739-32.079c0-13.355-1.96-24.095-5.739-32.08
c-5.04-10.464-12.878-15.695-23.518-15.695C110.862,3.305,103.023,8.536,98.124,19z"
/>
<path
id=
"XMLID_8_"
fill=
"#3B95C8"
d=
"M224.944,1.928v70.768h18.478V76h-18.478v24.231h-3.359V76h-53.614v-3.442l53.194-70.63
H224.944z
M171.891,72.695h49.694V7.298h-0.42L171.891,72.695z"
/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version=
"1.1"
id=
"图层_1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 243.422 102.159"
enable-background=
"new 0 0 243.422 102.159"
xml:space=
"preserve"
>
<g
id=
"XMLID_16_"
>
<path
id=
"XMLID_2_"
fill=
"#3B95C8"
d=
"M56.974,1.928v70.768h18.478V76H56.974v24.231h-3.359V76H0v-3.442l53.194-70.63H56.974z
M3.92,72.695h49.694V7.298h-0.42L3.92,72.695z"
/>
<path
id=
"XMLID_5_"
fill=
"#040000"
d=
"M148.238,17.485c3.919,8.536,6.019,19.688,6.019,33.595c0,13.768-2.1,25.058-6.019,33.594
c-5.459,11.564-14.278,17.485-26.597,17.485c-12.318,0-21.277-5.921-26.597-17.485c-3.92-8.536-5.879-19.688-5.879-33.594
c0-14.044,1.959-25.196,5.879-33.595C100.364,5.783,109.323,0,121.641,0C133.96,0,142.779,5.783,148.238,17.485z
M98.124,19
c-3.78,7.985-5.6,18.587-5.6,32.08c0,13.354,1.82,24.094,5.6,32.079c4.899,10.464,12.738,15.695,23.517,15.695
c10.639,0,18.478-5.231,23.518-15.695c3.779-8.123,5.739-18.862,5.739-32.079c0-13.355-1.96-24.095-5.739-32.08
c-5.04-10.464-12.878-15.695-23.518-15.695C110.862,3.305,103.023,8.536,98.124,19z"
/>
<path
id=
"XMLID_8_"
fill=
"#3B95C8"
d=
"M224.944,1.928v70.768h18.478V76h-18.478v24.231h-3.359V76h-53.614v-3.442l53.194-70.63
H224.944z
M171.891,72.695h49.694V7.298h-0.42L171.891,72.695z"
/>
</g>
</svg>
...
...
public/img/layout/500.svg
View file @
7d3d105
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version=
"1.1"
id=
"图层_1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 232.923 102.159"
enable-background=
"new 0 0 232.923 102.159"
xml:space=
"preserve"
>
<g
id=
"XMLID_27_"
>
<path
id=
"XMLID_2_"
fill=
"#3B95C8"
d=
"M61.593,1.928v3.305H11.059L7,47.638h0.56c2.799-3.718,6.439-6.608,11.199-8.674
c4.339-1.928,8.959-2.892,13.718-2.892c9.519,0,17.218,2.754,23.097,8.398c6.16,5.921,9.239,14.181,9.239,24.783
c0,9.361-3.08,17.21-9.239,23.543c-6.159,6.195-13.998,9.362-23.657,9.362c-8.399,0-15.398-2.341-21.138-6.746
C4.34,90.456,0.7,83.572,0,74.898h3.5c0.56,7.572,3.779,13.63,9.519,18.036c5.18,3.992,11.479,6.058,18.898,6.058
c8.679,0,15.678-2.892,21.278-8.536c5.459-5.782,8.259-12.804,8.259-21.202c0-9.638-2.8-17.21-8.259-22.442
c-5.319-5.094-12.179-7.572-20.718-7.572c-5.459,0-10.499,1.377-15.258,4.13c-4.759,2.754-8.399,6.472-10.639,11.152h-3.5
L7.839,1.928H61.593z"
/>
<path
id=
"XMLID_4_"
fill=
"#040000"
d=
"M142.919,17.485c3.919,8.536,6.019,19.688,6.019,33.595c0,13.767-2.1,25.057-6.019,33.593
c-5.459,11.564-14.278,17.485-26.597,17.485c-12.318,0-21.277-5.921-26.597-17.485c-3.92-8.536-5.879-19.688-5.879-33.593
c0-14.044,1.959-25.196,5.879-33.595C95.044,5.783,104.003,0,116.322,0C128.641,0,137.459,5.783,142.919,17.485z
M92.805,19
c-3.78,7.985-5.6,18.587-5.6,32.08c0,13.354,1.82,24.093,5.6,32.079c4.899,10.464,12.738,15.695,23.517,15.695
c10.639,0,18.478-5.231,23.518-15.695c3.779-8.123,5.739-18.862,5.739-32.079c0-13.355-1.96-24.095-5.739-32.08
C134.8,8.536,126.961,3.305,116.322,3.305C105.543,3.305,97.704,8.536,92.805,19z"
/>
<path
id=
"XMLID_7_"
fill=
"#040000"
d=
"M226.904,17.485c3.919,8.536,6.019,19.688,6.019,33.595c0,13.767-2.1,25.057-6.019,33.593
c-5.46,11.564-14.278,17.485-26.598,17.485c-12.318,0-21.277-5.921-26.597-17.485c-3.92-8.536-5.879-19.688-5.879-33.593
c0-14.044,1.959-25.196,5.879-33.595C179.029,5.783,187.988,0,200.307,0C212.626,0,221.444,5.783,226.904,17.485z
M176.79,19
c-3.78,7.985-5.6,18.587-5.6,32.08c0,13.354,1.819,24.093,5.6,32.079c4.899,10.464,12.738,15.695,23.517,15.695
c10.639,0,18.479-5.231,23.518-15.695c3.779-8.123,5.739-18.862,5.739-32.079c0-13.355-1.96-24.095-5.739-32.08
c-5.039-10.464-12.879-15.695-23.518-15.695C189.528,3.305,181.689,8.536,176.79,19z"
/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version=
"1.1"
id=
"图层_1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 232.923 102.159"
enable-background=
"new 0 0 232.923 102.159"
xml:space=
"preserve"
>
<g
id=
"XMLID_27_"
>
<path
id=
"XMLID_2_"
fill=
"#3B95C8"
d=
"M61.593,1.928v3.305H11.059L7,47.638h0.56c2.799-3.718,6.439-6.608,11.199-8.674
c4.339-1.928,8.959-2.892,13.718-2.892c9.519,0,17.218,2.754,23.097,8.398c6.16,5.921,9.239,14.181,9.239,24.783
c0,9.361-3.08,17.21-9.239,23.543c-6.159,6.195-13.998,9.362-23.657,9.362c-8.399,0-15.398-2.341-21.138-6.746
C4.34,90.456,0.7,83.572,0,74.898h3.5c0.56,7.572,3.779,13.63,9.519,18.036c5.18,3.992,11.479,6.058,18.898,6.058
c8.679,0,15.678-2.892,21.278-8.536c5.459-5.782,8.259-12.804,8.259-21.202c0-9.638-2.8-17.21-8.259-22.442
c-5.319-5.094-12.179-7.572-20.718-7.572c-5.459,0-10.499,1.377-15.258,4.13c-4.759,2.754-8.399,6.472-10.639,11.152h-3.5
L7.839,1.928H61.593z"
/>
<path
id=
"XMLID_4_"
fill=
"#040000"
d=
"M142.919,17.485c3.919,8.536,6.019,19.688,6.019,33.595c0,13.767-2.1,25.057-6.019,33.593
c-5.459,11.564-14.278,17.485-26.597,17.485c-12.318,0-21.277-5.921-26.597-17.485c-3.92-8.536-5.879-19.688-5.879-33.593
c0-14.044,1.959-25.196,5.879-33.595C95.044,5.783,104.003,0,116.322,0C128.641,0,137.459,5.783,142.919,17.485z
M92.805,19
c-3.78,7.985-5.6,18.587-5.6,32.08c0,13.354,1.82,24.093,5.6,32.079c4.899,10.464,12.738,15.695,23.517,15.695
c10.639,0,18.478-5.231,23.518-15.695c3.779-8.123,5.739-18.862,5.739-32.079c0-13.355-1.96-24.095-5.739-32.08
C134.8,8.536,126.961,3.305,116.322,3.305C105.543,3.305,97.704,8.536,92.805,19z"
/>
<path
id=
"XMLID_7_"
fill=
"#040000"
d=
"M226.904,17.485c3.919,8.536,6.019,19.688,6.019,33.595c0,13.767-2.1,25.057-6.019,33.593
c-5.46,11.564-14.278,17.485-26.598,17.485c-12.318,0-21.277-5.921-26.597-17.485c-3.92-8.536-5.879-19.688-5.879-33.593
c0-14.044,1.959-25.196,5.879-33.595C179.029,5.783,187.988,0,200.307,0C212.626,0,221.444,5.783,226.904,17.485z
M176.79,19
c-3.78,7.985-5.6,18.587-5.6,32.08c0,13.354,1.819,24.093,5.6,32.079c4.899,10.464,12.738,15.695,23.517,15.695
c10.639,0,18.479-5.231,23.518-15.695c3.779-8.123,5.739-18.862,5.739-32.079c0-13.355-1.96-24.095-5.739-32.08
c-5.039-10.464-12.879-15.695-23.518-15.695C189.528,3.305,181.689,8.536,176.79,19z"
/>
</g>
</svg>
...
...
public/img/layout/empty-bag.svg
View file @
7d3d105
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version=
"1.1"
id=
"图层_1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 173 196.5"
style=
"enable-background:new 0 0 173 196.5;"
xml:space=
"preserve"
>
<style
type=
"text/css"
>
.st0{fill:#B0B0B0;}
</style>
<path
id=
"XMLID_3_"
class=
"st0"
d=
"M173,196.5H0V51.6h173V196.5z M4,192.5h165V55.6H4V192.5z"
/>
<path
id=
"XMLID_2_"
class=
"st0"
d=
"M132.5,52.4h-4V46c0-23.2-18.9-42-42-42c-23.2,0-42,18.9-42,42v6.3h-4V46c0-25.4,20.6-46,46-46
c25.4,0,46,20.6,46,46V52.4z"
/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version=
"1.1"
id=
"图层_1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 173 196.5"
style=
"enable-background:new 0 0 173 196.5;"
xml:space=
"preserve"
>
<style
type=
"text/css"
>
.st0{fill:#B0B0B0;}
</style>
<path
id=
"XMLID_3_"
class=
"st0"
d=
"M173,196.5H0V51.6h173V196.5z M4,192.5h165V55.6H4V192.5z"
/>
<path
id=
"XMLID_2_"
class=
"st0"
d=
"M132.5,52.4h-4V46c0-23.2-18.9-42-42-42c-23.2,0-42,18.9-42,42v6.3h-4V46c0-25.4,20.6-46,46-46
c25.4,0,46,20.6,46,46V52.4z"
/>
</svg>
...
...
public/img/product/search.svg
View file @
7d3d105
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version=
"1.1"
id=
"图层_1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 181.9 181.9"
style=
"enable-background:new 0 0 181.9 181.9;"
xml:space=
"preserve"
>
<style
type=
"text/css"
>
.st0{fill:#B0B0B0;}
</style>
<g
id=
"XMLID_691_"
>
<path
id=
"XMLID_3_"
class=
"st0"
d=
"M76.4,152.8C34.3,152.8,0,118.5,0,76.4C0,34.3,34.3,0,76.4,0s76.4,34.3,76.4,76.4
C152.8,118.5,118.5,152.8,76.4,152.8z
M76.4,4C36.5,4,4,36.5,4,76.4c0,39.9,32.5,72.4,72.4,72.4c39.9,0,72.4-32.5,72.4-72.4
C148.8,36.5,116.3,4,76.4,4z"
/>
<rect
id=
"XMLID_2_"
x=
"118.9"
y=
"153"
transform=
"matrix(0.7071 0.7071 -0.7071 0.7071 155 -64.2031)"
class=
"st0"
width=
"72.1"
height=
"4"
/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version=
"1.1"
id=
"图层_1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 181.9 181.9"
style=
"enable-background:new 0 0 181.9 181.9;"
xml:space=
"preserve"
>
<style
type=
"text/css"
>
.st0{fill:#B0B0B0;}
</style>
<g
id=
"XMLID_691_"
>
<path
id=
"XMLID_3_"
class=
"st0"
d=
"M76.4,152.8C34.3,152.8,0,118.5,0,76.4C0,34.3,34.3,0,76.4,0s76.4,34.3,76.4,76.4
C152.8,118.5,118.5,152.8,76.4,152.8z
M76.4,4C36.5,4,4,36.5,4,76.4c0,39.9,32.5,72.4,72.4,72.4c39.9,0,72.4-32.5,72.4-72.4
C148.8,36.5,116.3,4,76.4,4z"
/>
<rect
id=
"XMLID_2_"
x=
"118.9"
y=
"153"
transform=
"matrix(0.7071 0.7071 -0.7071 0.7071 155 -64.2031)"
class=
"st0"
width=
"72.1"
height=
"4"
/>
</g>
</svg>
...
...
public/js/common/header.js
View file @
7d3d105
...
...
@@ -14,12 +14,10 @@ var $searchWrap = $('.search-wrapper'),
$clearInput
=
$
(
'.clear-input'
);
var
goodsTpl
=
require
(
'../../tpl/common/bag-goods.hbs'
);
var
delayer
;
require
(
'yoho-jquery-nanoscroller'
);
var
delayer
;
function
handelProduct
(
data
)
{
var
goods
=
[],
list
=
[
'commonPros'
,
'preSalePros'
,
'noStorage'
];
...
...
@@ -66,8 +64,7 @@ function refreshBag() {
$bagGoodsList
.
empty
();
$miniBag
.
addClass
(
'bag-empty'
);
}
$
(
'.nano'
).
nanoScroller
({
disableResize
:
true
});
$
(
'.mini-goods-list-wrap.nano'
).
nanoScroller
({
disableResize
:
true
});
}
}
});
...
...
public/js/help/help.page.js
View file @
7d3d105
...
...
@@ -38,3 +38,5 @@ if (!$cate.hasClass('big-category')) {
$
(
'.parentId-'
+
parentID
).
show
();
$
(
'.cateId-'
+
parentID
).
find
(
'.plus'
).
css
(
'background-image'
,
'url(\'../img/help/minus.png\')'
);
}
$
(
'.center-content'
).
css
(
'border-top-color'
,
'#fff'
);
...
...
public/js/me/address.page.js
View file @
7d3d105
...
...
@@ -37,10 +37,12 @@ $(function() {
return
{
id
:
$addressId
.
val
(),
aid
:
$
(
'#tr_'
+
$addressId
.
val
()).
data
(
'addressid'
),
consignee
:
$consignee
.
val
(),
address
:
$address
.
val
(),
mobile
:
$mobile
.
val
(),
phone
:
$phone
.
val
()
phone
:
$phone
.
val
(),
default
:
$
(
'#tr_'
+
$addressId
.
val
()).
data
(
'default'
)
===
'true'
};
},
...
...
@@ -87,16 +89,20 @@ $(function() {
getHtml
:
function
(
info
)
{
var
html
=
'<tr class="table-body">'
;
html
+=
'<input type="hidden" id="tr_'
+
info
.
address_id
+
'" value="'
+
info
.
address_id
+
'">'
+
html
+=
'<input type="hidden" id="tr_'
+
info
.
address_id
+
'" value="'
+
info
.
address_id
+
'" data-addressid="'
+
info
.
aid
+
'">'
+
'<input type="hidden" id="tr_'
+
info
.
area_code
+
'" value="'
+
info
.
area_code
+
'">'
+
'<td class=\'width-name\'>'
+
info
.
consignee
+
'</td>'
+
'<td class=\'width-address\'>'
+
info
.
area
+
'</td>'
+
'<td class=\'width-fulladdress\'>'
+
info
.
address
+
'</td>'
+
'<td class=\'width-mobile\'><p>'
+
info
.
mobile
+
'</p><p>'
+
info
.
phone
+
'</p></td>'
+
'<td class=\'width-opearte\'><div><span class=\'blue opreation update-address\' data-id=\''
+
info
.
address_id
+
'\'>修改</span>\n<em class="op-sep">|</em>\n'
+
'<span class=\'blue opreation del-address\' data-id=\''
+
info
.
address_id
+
'\'>删除</span>\n'
+
'<span class=\'btn set-default opreation set\' data-id=\''
+
info
.
address_id
+
'\'>设为默认</span>'
+
info
.
address_id
+
'\'>修改</span>\n<em class="op-sep">|</em>\n'
;
if
(
!
info
.
default
)
{
html
+=
'<span class=\'blue opreation del-address\' data-id=\''
+
info
.
aid
+
'\'>删除</span>\n'
;
}
html
+=
'<span class=\'btn set-default opreation set\' data-id=\''
+
info
.
aid
+
'\'>设为默认</span>'
+
'</div></td>'
;
html
+=
'</tr>'
;
return
html
;
...
...
@@ -123,7 +129,7 @@ $(function() {
$
(
document
).
on
(
'click'
,
'#save-address'
,
function
()
{
var
info
,
area
,
areaInfo
;
areaInfo
,
info2
;
info
=
Bll
.
getInfo
();
area
=
address
.
getAreaIds
();
...
...
@@ -132,8 +138,14 @@ $(function() {
info
.
area_code
=
area
.
split
(
','
)[
2
];
info
.
area
=
areaInfo
.
split
(
','
).
join
(
' '
);
info2
=
$
.
extend
({},
info
);
info2
.
id
=
info
.
aid
;
delete
info2
.
aid
;
if
(
Bll
.
check
(
info
)
===
true
)
{
console
.
log
(
info
.
id
);
// 新增
if
(
info
.
id
===
''
)
{
if
(
currentLength
>=
7
)
{
...
...
@@ -146,16 +158,8 @@ $(function() {
dataType
:
'json'
,
data
:
info
,
success
:
function
(
data
)
{
var
html
;
if
(
data
.
code
===
200
)
{
html
=
Bll
.
getHtml
(
data
.
data
);
currentLength
++
;
leftLength
--
;
$
(
'tbody'
).
append
(
html
);
Bll
.
setTableTile
();
Bll
.
clearInput
();
location
.
reload
();
}
else
{
new
_alert
(
data
.
message
).
show
();
}
...
...
@@ -168,14 +172,10 @@ $(function() {
type
:
'POST'
,
url
:
'/me/address/update'
,
dataType
:
'json'
,
data
:
info
,
data
:
info
2
,
success
:
function
(
data
)
{
if
(
data
.
code
===
200
)
{
info
.
mobile
=
info
.
mobile
.
substring
(
0
,
3
)
+
'****'
+
info
.
mobile
.
substring
(
7
,
11
);
info
.
address_id
=
info
.
id
;
$
(
'#tr_'
+
info
.
id
).
parents
(
'tr'
).
before
(
Bll
.
getHtml
(
info
)).
remove
();
Bll
.
clearInput
();
$
(
'.tip em'
).
html
(
'新增地址'
);
location
.
reload
();
}
else
{
new
_alert
(
data
.
message
).
show
();
}
...
...
@@ -187,14 +187,10 @@ $(function() {
type
:
'POST'
,
url
:
'/me/address/update'
,
dataType
:
'json'
,
data
:
info
,
data
:
info
2
,
success
:
function
(
data
)
{
if
(
data
.
code
===
200
)
{
info
.
mobile
=
info
.
mobile
.
substring
(
0
,
3
)
+
'****'
+
info
.
mobile
.
substring
(
7
,
11
);
info
.
address_id
=
info
.
id
;
$
(
'#tr_'
+
info
.
id
).
parents
(
'tr'
).
before
(
Bll
.
getHtml
(
info
)).
remove
();
Bll
.
clearInput
();
$
(
'.tip em'
).
html
(
'新增地址'
);
location
.
reload
();
}
else
{
new
_alert
(
data
.
message
).
show
();
}
...
...
@@ -206,8 +202,6 @@ $(function() {
}
}
$
(
'#address_id'
).
val
(
''
);
});
// 修改收货地址
...
...
public/js/me/order-detail.page.js
View file @
7d3d105
...
...
@@ -26,7 +26,7 @@ $('.order .cancel-btn').on('click', function() {
$
(
'.order .edit-btn'
).
on
(
'click'
,
function
()
{
var
$this
=
$
(
this
);
var
$userInfo
=
$
(
'.user-info.info-box'
);
var
code
=
$this
.
closest
(
'.order'
).
data
(
'code'
);
var
code
=
$this
.
closest
(
'.order'
).
data
(
'code
m
'
);
var
areaCode
=
$userInfo
.
data
(
'area'
);
var
userName
=
$userInfo
.
find
(
'.user-name-sel'
).
data
(
'name'
);
...
...
public/js/passport/back/back.js
View file @
7d3d105
...
...
@@ -127,7 +127,7 @@ function validatePhoneNumLocal() {
*/
function
validatePhoneNum
()
{
function
validate
()
{
var
defer
=
$
.
Deferred
();
//eslint-disable-line
var
defer
=
$
.
Deferred
();
//eslint-disable-line
if
(
validatePhoneNumLocal
())
{
validatePhoneNumAsync
().
then
(
function
(
result
)
{
...
...
@@ -197,7 +197,7 @@ function validateImgCaptchaAsync() {
*/
function
validateImgCaptcha
()
{
function
validate
()
{
var
defer
=
$
.
Deferred
();
//eslint-disable-line
var
defer
=
$
.
Deferred
();
//eslint-disable-line
if
(
validateImgCaptchaLocal
())
{
validateImgCaptchaAsync
().
then
(
function
(
result
)
{
...
...
public/js/product/shop-list.page.js
View file @
7d3d105
...
...
@@ -12,8 +12,8 @@ var Shop = {
$
(
'#brand-info'
).
click
(
function
()
{
Shop
.
brandInfoDialog
().
show
();
$
(
'.brand-info'
).
addClass
(
'nano'
);
$
(
'.brand-info'
).
nanoScroller
();
//$('.brand-info').addClass('nano');
$
(
'.brand-info-dialog .brand-info-content'
).
nanoScroller
();
});
},
...
...
public/scss/components/_header.css
View file @
7d3d105
...
...
@@ -182,7 +182,7 @@
.go-bag-btn
{
font-size
:
20px
;
line-height
:
1
;
padding-top
:
2
0
px
;
padding-top
:
2
2
px
;
border-top
:
1px
solid
#ddd
;
text-align
:
center
;
}
...
...
@@ -235,7 +235,8 @@
.del-good-btn
{
cursor
:
pointer
;
color
:
#999
;
&:hover{
&:hover
{
color
:
#1b1b1b
;
}
}
...
...
@@ -279,7 +280,7 @@
left
:
50%
;
position
:
absolute
;
margin-left
:
-132px
;
margin-top
:
2
0px
;
margin-top
:
3
0px
;
background
:
resolve
(
"layout/blk-logo.svg"
)
no-repeat
center
center
;
background-size
:
100%
;
...
...
@@ -297,8 +298,9 @@
.sub-nav-list
{
max-width
:
94%
;
line-height
:
50px
;
display
:
inline-block
;
line-height
:
55px
;
height
:
44px
;
li
{
float
:
left
;
...
...
public/scss/components/_share.css
View file @
7d3d105
...
...
@@ -23,7 +23,7 @@
margin-top
:
9px
;
text-align
:
center
;
top
:
15px
;
left
:
26
px
;
left
:
10
px
;
z-index
:
2
;
h2
{
...
...
public/scss/help/_index.css
View file @
7d3d105
.help-page
{
padding-bottom
:
30px
;
background
:
#f5f5f5
;
.help-navigation
{
width
:
150px
;
margin-right
:
10px
;
background
:
#fff
;
.title
{
height
:
60px
;
line-height
:
60px
;
text-align
:
center
;
background
:
#fff
;
}
.nav
{
li
{
cursor
:
pointer
;
padding
:
10px
15px
;
width
:
200px
;
font-size
:
14px
;
.plus
{
cursor
:
pointer
;
margin-right
:
10px
;
height
:
14px
;
width
:
14px
;
background-repeat
:
no-repeat
;
background-image
:
resolve
(
"help/plus.png"
);
background-size
:
14px
14px
;
position
:
relative
;
top
:
3px
;
}
.mult
{
margin-right
:
26px
;
height
:
14px
;
width
:
14px
;
}
}
li
.selected
>
a
{
color
:
#379ed6
;
}
.smll-category
{
display
:
none
;
}
}
}
.help-main
{
width
:
990px
;
padding
:
35px
30px
;
background-color
:
#fff
;
font-size
:
14px
;
.normal-data,
.step-data
{
padding
:
2px
;
line-height
:
25px
;
}
.big-title
{
font-size
:
20px
;
}
.step-title
{
font-weight
:
bolder
;
padding-bottom
:
5px
;
}
.step
{
list-style
:
disc
;
}
}
}
.help-page
{
padding-bottom
:
30px
;
background
:
#f5f5f5
;
/* 个人中心布局下重置默认的底部样式 */
+
.blk-footer
.center-content
{
border-top
:
none
;
}
.help-navigation
{
width
:
150px
;
margin-right
:
10px
;
background
:
#fff
;
.title
{
height
:
60px
;
line-height
:
60px
;
text-align
:
center
;
background
:
#fff
;
}
.nav
{
li
{
cursor
:
pointer
;
padding
:
10px
15px
;
width
:
200px
;
font-size
:
14px
;
.plus
{
cursor
:
pointer
;
margin-right
:
10px
;
height
:
14px
;
width
:
14px
;
background-repeat
:
no-repeat
;
background-image
:
resolve
(
"help/plus.png"
);
background-size
:
14px
14px
;
position
:
relative
;
top
:
3px
;
}
.mult
{
margin-right
:
26px
;
height
:
14px
;
width
:
14px
;
}
}
li
.selected
>
a
{
color
:
#379ed6
;
}
.smll-category
{
display
:
none
;
}
}
}
.help-main
{
width
:
990px
;
padding
:
35px
30px
;
background-color
:
#fff
;
font-size
:
14px
;
.normal-data,
.step-data
{
padding
:
2px
;
line-height
:
25px
;
}
.big-title
{
font-size
:
20px
;
}
.step-title
{
font-weight
:
bolder
;
padding-bottom
:
5px
;
}
.step
{
list-style
:
disc
;
}
}
}
...
...
public/scss/me/_address.css
View file @
7d3d105
...
...
@@ -123,23 +123,18 @@
padding
:
8px
0
8px
10px
;
}
.select-row
{
border
:
solid
2px
black
;
height
:
54px
;
}
.width-name
{
width
:
6
0px
;
width
:
7
0px
;
word-break
:
break-all
;
}
.width-address
{
width
:
1
4
5px
;
width
:
1
6
5px
;
word-break
:
break-all
;
}
.width-fulladdress
{
width
:
2
4
0px
;
width
:
2
6
0px
;
word-break
:
break-all
;
}
...
...
public/scss/me/_exchange.css
View file @
7d3d105
...
...
@@ -20,6 +20,7 @@
font-size
:
16px
;
color
:
#5cb0de
;
padding-bottom
:
15px
;
margin-top
:
40px
;
span
{
font-size
:
20px
;
...
...
public/scss/me/order/_table.css
View file @
7d3d105
...
...
@@ -220,10 +220,10 @@
}
}
.marginhack
{
.marginhack
{
margin-top
:
-4px
;
.black{
.black
{
margin-top
:
0
;
}
}
...
...
@@ -259,7 +259,7 @@
width
:
100%
;
.bg
{
height
:
25
0px
;
height
:
16
0px
;
background-image
:
resolve
(
"me/no-order.png"
);
background-repeat
:
no-repeat
;
background-position
:
center
bottom
;
...
...
public/scss/me/return/_index.css
View file @
7d3d105
...
...
@@ -40,7 +40,7 @@
.number
{
position
:
relative
;
top
:
-1
7
px
;
top
:
-1
9
px
;
}
.act
.state-bg
{
...
...
public/scss/me/setting/_footer.css
View file @
7d3d105
...
...
@@ -3,8 +3,10 @@
hr
{
color
:
#f0f0f0
;
margin-bottom
:
20px
;
}
p
{
padding-bottom
:
20px
;
font-size
:
14px
;
}
}
...
...
public/scss/passport/_login.css
View file @
7d3d105
...
...
@@ -17,7 +17,6 @@
color
:
$
blue
;
font-weight
:
bold
;
}
}
.country-code
{
...
...
@@ -36,7 +35,7 @@
@mixin
input;
&.phone-num
{
width
:
1
5
0px
;
width
:
1
7
0px
;
display
:
block
;
float
:
left
;
border
:
none
!important
;
...
...
@@ -46,7 +45,6 @@
&
.captcha
{
width
:
$
captcha
;
float
:
left
;
}
}
...
...
@@ -93,7 +91,6 @@
.small
{
@mixin
small;
}
}
.other-opts
{
...
...
@@ -104,6 +101,7 @@
.third-party-login
{
margin
:
0
30px
;
span
{
float
:
left
;
width
:
calc
((
$
item-width
-
60px
)
/
4
);
...
...
public/scss/product/_item.css
View file @
7d3d105
...
...
@@ -251,6 +251,10 @@
width
:
304px
;
padding-left
:
15px
;
margin
:
0
auto
;
.weixin-share-box
{
left
:
6px
;
}
}
.balance-wrapper
{
...
...
public/scss/product/_list.css
View file @
7d3d105
...
...
@@ -397,11 +397,15 @@
display
:
inline-block
;
vertical-align
:
top
;
width
:
60px
;
margin-right
:
10px
;
margin-right
:
11px
;
}
.goods-img-col
:last-child
{
margin-right
:
0
;
}
img
{
margin
:
8px
0
;
margin
-top
:
11px
;
cursor
:
pointer
;
}
}
...
...
public/scss/product/_shop.css
View file @
7d3d105
...
...
@@ -23,7 +23,7 @@
display
:
block
;
position
:
absolute
;
right
:
20px
;
bottom
:
3
0px
;
bottom
:
2
0px
;
font-size
:
14px
;
a,
...
...
@@ -33,6 +33,9 @@
padding
:
10px
;
margin-left
:
10px
;
cursor
:
pointer
;
display
:
inline-block
;
line-height
:
12px
;
height
:
32px
;
.iconfont
{
font-size
:
14px
;
...
...
@@ -289,6 +292,7 @@
text-align
:
left
;
font-size
:
12px
;
line-height
:
20px
;
height
:
396px
;
p
{
font-size
:
12px
;
...
...
public/scss/shopping/_order.css
View file @
7d3d105
.shopping-order-page
{
.order-block
{
border-bottom
:
1px
solid
#eee
;
padding-bottom
:
30px
;
}
.radio
{
font-size
:
16px
;
}
.address-info
{
padding-bottom
:
15px
;
ul
{
width
:
1173px
;
&.shrink
{
height
:
195px
;
overflow
:
hidden
;
}
}
.new-address
{
cursor
:
pointer
;
height
:
52px
;
}
}
.address
{
cursor
:
pointer
;
.address-chosed
{
display
:
none
;
}
&
.focus
.address-chosed
{
display
:
block
;
}
}
.new-address
.iconfont
{
font-size
:
12px
;
}
.address-header
{
height
:
11px
;
background
:
#eee
url(/shopping/address-tag.png)
;
}
.new-address-block
{
float
:
left
;
width
:
270px
;
height
:
180px
;
margin-right
:
23px
;
border
:
1px
solid
#eee
;
margin-bottom
:
15px
;
height
:
180px
;
text-align
:
center
;
color
:
#999
;
cursor
:
pointer
;
.iconfont
{
display
:
block
;
color
:
#eee
;
font-size
:
60px
;
line-height
:
80px
;
margin-top
:
30px
;
}
}
.address
{
position
:
relative
;
float
:
left
;
width
:
270px
;
height
:
180px
;
margin-right
:
23px
;
border
:
1px
solid
#eee
;
margin-bottom
:
15px
;
&.focus
{
border-color
:
#000
;
.address-header
{
background-image
:
url(/shopping/address-tag-chosed.png)
;
}
}
.default-or-not
{
text-align
:
right
;
font-size
:
12px
;
height
:
40px
;
line-height
:
40px
;
}
&
.default
.default-or-not
{
line-height
:
normal
;
.set-default
{
display
:
none
;
}
.default-tag
{
display
:
inline-block
;
}
}
&
.default
.delete
{
display
:
none
;
}
.set-default
{
display
:
inline-block
;
color
:
#ccc
;
cursor
:
pointer
;
&:hover
{
color
:
#379ed6
;
}
}
.default-tag
{
display
:
none
;
border
:
1px
solid
#ccc
;
color
:
#000
;
padding
:
5px
;
margin-top
:
8px
;
}
.consignee
{
display
:
block
;
float
:
left
;
max-width
:
140px
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
}
}
.address-chosed
{
position
:
absolute
;
bottom
:
0
;
bottom
:
-1px
\
9
;
/* stylelint-disable-line */
right
:
0
;
}
.address-content
{
padding
:
0
15px
;
}
.address-area
{
line-height
:
40px
;
border-top
:
1px
solid
#ccc
;
margin-top
:
10px
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
.address-detail
{
line-height
:
15px
;
height
:
30px
;
}
.address-detail
,
.address-opration
{
font-size
:
12px
;
color
:
#999
;
}
.address-opration
{
cursor
:
pointer
;
line-height
:
30px
;
text-align
:
right
;
>
span
:
hover
{
color
:
#379ed6
;
}
}
.address-all
{
font-size
:
12px
;
color
:
#7e7e7e
;
cursor
:
pointer
;
.iconfont
{
font-size
:
12px
;
}
}
.payment-type
,
.dispatch-type
{
padding-bottom
:
10px
;
}
.title
{
line-height
:
52px
;
}
.chose-row
{
color
:
#ccc
;
line-height
:
40px
;
&.focus
{
color
:
#000
;
.chose-block
{
border-color
:
#000
;
}
}
}
.chose-block
{
float
:
left
;
display
:
block
;
height
:
40px
;
margin-right
:
20px
;
text-align
:
center
;
border
:
1px
solid
#ccc
;
cursor
:
pointer
;
}
.payment-type
.chose-block
{
width
:
160px
;
}
.dispatch-type
.chose-block
{
width
:
200px
;
}
ul
.content
>
li
{
margin-bottom
:
20px
;
}
.dispatch-call
{
margin-top
:
30px
;
}
.call-before-dispatch-tip
{
color
:
#ccc
;
margin-left
:
75px
;
}
.go-cart-link
:hover
{
color
:
#379ed6
;
.iconfont
{
color
:
#379ed6
;
}
}
.go-cart-link
.iconfont
{
font-size
:
16px
;
}
.order-info
{
margin-top
:
50px
;
}
.order-inner
{
border
:
1px
solid
#ccc
;
.title
{
padding
:
0
15px
;
border-bottom
:
1px
solid
#eee
;
overflow
:
hidden
;
}
.block
{
margin
:
0
15px
;
}
.info
{
width
:
548px
;
}
/* [表格内容]商品图片 */
.goods-img
{
position
:
relative
;
width
:
180px
;
padding
:
0
40px
;
img
{
width
:
100px
;
height
:
148px
;
}
.gift-tag
{
position
:
absolute
;
bottom
:
0
;
left
:
40px
;
right
:
40px
;
height
:
25px
;
color
:
#fff
;
background
:
#379ed6
;
font-size
:
12px
;
text-align
:
center
;
line-height
:
25px
;
}
}
/* [表格内容]品牌和商品名称 */
.brand-and-name
{
width
:
368px
;
text-align
:
left
;
padding-right
:
30px
;
>
a
:
hover
{
color
:
#379ed6
;
}
}
.color-size
{
width
:
190px
;
}
.price
{
width
:
190px
;
}
.number
{
width
:
190px
;
}
}
.multi-package-row
{
position
:
relative
;
height
:
40px
;
font-size
:
14px
;
line-height
:
40px
;
border-bottom
:
1px
solid
#eee
;
text-align
:
center
;
background
:
#f4fbff
;
.show-package
{
font-size
:
16px
;
cursor
:
pointer
;
}
.package-up-icon
{
position
:
absolute
;
width
:
10px
;
height
:
7px
;
background
:
url(/shopping/package-up.png)
;
top
:
-7px
;
left
:
282px
;
+
.package-item
.package-title
{
border-top
:
none
;
}
}
.package-item
{
position
:
relative
;
.toggle-icon
{
position
:
absolute
;
font-size
:
34px
;
top
:
106px
;
cursor
:
pointer
;
}
.left-icon
{
left
:
-24px
;
}
.right-icon
{
right
:
-24px
;
}
}
.package-goods-wrap
{
height
:
134px
;
overflow
:
hidden
;
}
.package-list
{
position
:
absolute
;
background
:
#fff
;
border
:
2px
solid
#bbb
;
width
:
586px
;
right
:
36px
;
padding
:
0
50px
;
}
.package-title
,
.package-shipping
{
text-align
:
left
;
margin-left
:
10px
;
}
.package-title
{
border-top
:
1px
solid
#eee
;
line-height
:
55px
;
}
.package-shipping
{
color
:
#595959
;
margin-top
:
20px
;
margin-bottom
:
30px
;
}
.package-goods
li
{
width
:
120px
;
}
.package-goods-img
{
display
:
block
;
width
:
100px
;
height
:
134px
;
margin
:
0
auto
;
}
}
.order-table-head
{
height
:
50px
;
line-height
:
50px
;
margin
:
0
15px
;
>
span
{
display
:
block
;
float
:
left
;
text-align
:
center
;
}
}
.order-table-body
{
display
:
table
;
}
.order-goods
{
border-top
:
1px
solid
#eee
;
padding
:
20px
0
;
margin
:
0
15px
;
text-align
:
center
;
.brand-name
{
display
:
block
;
line-height
:
50px
;
width
:
338px
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
.name
{
display
:
inline-block
;
font-size
:
14px
;
line-height
:
16px
;
max-height
:
32px
;
}
>
*
{
display
:
table-cell
;
vertical-align
:
middle
;
}
.number
>
.iconfont
{
font-size
:
14px
;
}
}
.invoice-info
.content
{
>
*
{
display
:
inline-block
;
}
.invoice-detail
{
margin-left
:
40px
;
}
em
{
margin-right
:
20px
;
}
.modify-invoice
{
display
:
inline-block
;
width
:
40px
;
height
:
20px
;
line-height
:
20px
;
}
}
.invoice-radio
{
cursor
:
pointer
;
color
:
#666
;
label
{
font-size
:
14px
;
}
}
.coin-and-remark
{
padding
:
20px
0
;
}
.coin
.title
,
.remark
.title
{
line-height
:
30px
;
}
.coin-ctrl
,
.remark-ctrl
{
cursor
:
pointer
;
&.iconfont
{
font-size
:
16px
;
}
}
.balance
{
padding
:
10px
20px
;
border
:
1px
solid
#ccc
;
font-size
:
14px
;
margin-bottom
:
80px
;
}
.balance-info
{
line-height
:
30px
;
width
:
670px
;
}
.receiver-wrap
{
position
:
relative
;
i
{
position
:
absolute
;
width
:
70px
;
}
em
{
display
:
inline-block
;
width
:
480px
;
margin-left
:
70px
;
}
}
.balance-list
{
width
:
364px
;
li
{
line-height
:
30px
;
}
}
.balance-cost
{
float
:
right
;
}
li
.need-pay
{
border-top
:
1px
solid
#000
;
line-height
:
50px
;
margin-top
:
10px
;
}
.submit-order
{
width
:
160px
;
height
:
40px
;
line-height
:
40px
;
}
/* 使用有货币&备注 */
.coin-and-remark
.content
{
background
:
#f5f5f5
;
padding
:
15px
20px
;
margin
:
20px
0
;
font-size
:
14px
;
}
.coin-input
{
width
:
70px
;
margin-left
:
20px
;
}
.coin-tip
{
line-height
:
30px
;
}
.used-coin
.btn
{
display
:
inline-block
;
width
:
auto
;
height
:
20px
;
line-height
:
20px
;
padding
:
0
5px
;
border
:
none
;
cursor
:
pointer
;
&.modify
{
margin-left
:
130px
;
margin-right
:
10px
;
}
}
.remark-content
{
width
:
1110px
;
height
:
118px
;
padding
:
10px
;
resize
:
none
;
}
.print-price-radio-group
{
display
:
inline-block
;
}
.print-price
{
margin
:
20px
0
10px
;
}
.print-price-radio
{
display
:
inline-block
;
cursor
:
pointer
;
>
.iconfont
{
font-size
:
16px
;
}
}
.remark-tip
{
color
:
#b1b1b1
;
}
.checked
{
position
:
relative
;
top
:
2px
;
}
}
.yoho-dialog.address
,
.yoho-dialog.invoice
{
background
:
#fff
;
.content
{
text-align
:
left
;
}
.btns
.btn
{
width
:
140px
;
height
:
40px
;
line-height
:
40px
;
&.white
{
border-color
:
#000
;
color
:
#000
;
}
}
}
.yoho-dialog.address
{
width
:
765px
;
padding
:
0
40px
10px
;
.label-name
{
text-align
:
right
;
}
.dialog-title
{
margin
:
25px
0
;
font-size
:
18px
;
}
&
.is-init
.cancel-address
{
display
:
none
;
}
.cascading-address
{
float
:
left
;
margin-left
:
0
!important
;
}
}
.yoho-dialog.invoice
{
width
:
702px
;
.dialog-title
{
color
:
#777
;
line-height
:
50px
;
border-bottom
:
1px
solid
#eee
;
}
.invoice-tab
{
margin
:
17px
0
;
.btn
{
width
:
85px
;
height
:
26px
;
line-height
:
26px
;
}
}
.tip
{
background
:
#f5f5f5
;
padding
:
20px
;
font-size
:
15px
;
line-height
:
18px
;
}
.required-mark
{
color
:
#f00
;
}
.invoice-title-radio
,
.invoice-content-radio
{
display
:
inline-block
;
cursor
:
pointer
;
width
:
115px
;
}
.row
{
margin
:
18px
0
;
line-height
:
30px
;
.iconfont
{
font-size
:
16px
;
color
:
#e0e0e0
;
}
.checked
{
color
:
#1b1b1b
;
}
.input
{
width
:
200px
;
height
:
30px
;
border-color
:
#eee
;
background
:
#f5f5f5
;
}
.label
{
float
:
left
;
font-size
:
14px
;
width
:
100px
;
}
.row-content
{
float
:
left
;
width
:
520px
;
}
}
}
.address-confirm-dialog
{
.content
{
padding-top
:
0
!important
;
p
{
position
:
static
!important
;
}
p
.main
{
line-height
:
100px
;
font-size
:
28px
;
}
}
}
.shopping-order-page
{
.order-block
{
border-bottom
:
1px
solid
#eee
;
padding-bottom
:
30px
;
}
.radio
{
font-size
:
16px
;
}
.address-info
{
padding-bottom
:
15px
;
ul
{
width
:
1173px
;
&.shrink
{
height
:
195px
;
overflow
:
hidden
;
}
}
.new-address
{
cursor
:
pointer
;
height
:
52px
;
}
.title
{
font-size
:
15px
;
}
}
.address
{
cursor
:
pointer
;
.address-chosed
{
display
:
none
;
}
&
.focus
.address-chosed
{
display
:
block
;
}
}
.new-address
.iconfont
{
font-size
:
12px
;
}
.address-header
{
height
:
11px
;
background
:
#eee
url(/shopping/address-tag.png)
;
}
.new-address-block
{
float
:
left
;
width
:
270px
;
height
:
180px
;
margin-right
:
23px
;
border
:
1px
solid
#eee
;
margin-bottom
:
15px
;
height
:
180px
;
text-align
:
center
;
color
:
#999
;
cursor
:
pointer
;
.iconfont
{
display
:
block
;
color
:
#eee
;
font-size
:
60px
;
line-height
:
80px
;
margin-top
:
30px
;
}
}
.address
{
position
:
relative
;
float
:
left
;
width
:
270px
;
height
:
180px
;
margin-right
:
23px
;
border
:
1px
solid
#eee
;
margin-bottom
:
15px
;
&.focus
{
border-color
:
#000
;
.address-header
{
background-image
:
url(/shopping/address-tag-chosed.png)
;
}
}
.default-or-not
{
text-align
:
right
;
font-size
:
12px
;
height
:
40px
;
line-height
:
40px
;
}
&
.default
.default-or-not
{
line-height
:
normal
;
.set-default
{
display
:
none
;
}
.default-tag
{
display
:
inline-block
;
}
}
&
.default
.delete
{
display
:
none
;
}
.set-default
{
display
:
inline-block
;
color
:
#ccc
;
cursor
:
pointer
;
&:hover
{
color
:
#379ed6
;
}
}
.default-tag
{
display
:
none
;
border
:
1px
solid
#ccc
;
color
:
#000
;
padding
:
5px
;
margin-top
:
8px
;
}
.consignee
{
display
:
block
;
float
:
left
;
max-width
:
140px
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
}
}
.address-chosed
{
position
:
absolute
;
bottom
:
0
;
bottom
:
-1px
\
9
;
/* stylelint-disable-line */
right
:
0
;
}
.address-content
{
padding
:
0
15px
;
}
.address-area
{
line-height
:
40px
;
border-top
:
1px
solid
#ccc
;
margin-top
:
10px
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
font-size
:
14px
;
}
.address-detail
{
line-height
:
15px
;
height
:
30px
;
}
.address-detail
,
.address-opration
{
font-size
:
12px
;
color
:
#999
;
}
.address-opration
{
cursor
:
pointer
;
line-height
:
30px
;
text-align
:
right
;
>
span
:
hover
{
color
:
#379ed6
;
}
}
.address-all
{
font-size
:
12px
;
color
:
#7e7e7e
;
cursor
:
pointer
;
.iconfont
{
font-size
:
12px
;
}
}
.payment-type
,
.dispatch-type
{
padding-bottom
:
10px
;
}
.title
{
line-height
:
52px
;
font-size
:
14px
;
}
.chose-row
{
color
:
#ccc
;
line-height
:
40px
;
&.focus
{
color
:
#000
;
.chose-block
{
border-color
:
#000
;
font-size
:
15px
;
}
.tip-text
{
font-size
:
14px
;
}
}
}
.chose-block
{
float
:
left
;
display
:
block
;
height
:
40px
;
margin-right
:
20px
;
text-align
:
center
;
border
:
1px
solid
#ccc
;
cursor
:
pointer
;
}
.payment-type
.chose-block
{
width
:
160px
;
}
.dispatch-type
.chose-block
{
width
:
200px
;
}
ul
.content
>
li
{
margin-bottom
:
20px
;
}
.dispatch-call
{
margin-top
:
30px
;
}
.call-before-dispatch-tip
{
color
:
#ccc
;
margin-left
:
75px
;
}
.go-cart-link
:hover
{
color
:
#379ed6
;
.iconfont
{
color
:
#379ed6
;
}
}
.go-cart-link
.iconfont
{
font-size
:
16px
;
}
.order-info
{
margin-top
:
50px
;
}
.order-inner
{
border
:
1px
solid
#ccc
;
.title
{
padding
:
0
15px
;
border-bottom
:
1px
solid
#eee
;
overflow
:
hidden
;
}
.block
{
margin
:
0
15px
;
}
.info
{
width
:
548px
;
}
/* [表格内容]商品图片 */
.goods-img
{
position
:
relative
;
width
:
180px
;
padding
:
0
40px
;
img
{
width
:
100px
;
height
:
148px
;
}
.gift-tag
{
position
:
absolute
;
bottom
:
0
;
left
:
40px
;
right
:
40px
;
height
:
25px
;
color
:
#fff
;
background
:
#379ed6
;
font-size
:
12px
;
text-align
:
center
;
line-height
:
25px
;
}
}
/* [表格内容]品牌和商品名称 */
.brand-and-name
{
width
:
368px
;
text-align
:
left
;
padding-right
:
30px
;
>
a
:
hover
{
color
:
#379ed6
;
}
}
.color-size
{
width
:
190px
;
font-size
:
14px
;
}
.price
{
width
:
190px
;
}
.number
{
width
:
190px
;
}
}
.multi-package-row
{
position
:
relative
;
height
:
40px
;
font-size
:
14px
;
line-height
:
40px
;
border-bottom
:
1px
solid
#eee
;
text-align
:
center
;
background
:
#f4fbff
;
.show-package
{
font-size
:
16px
;
cursor
:
pointer
;
}
.package-up-icon
{
position
:
absolute
;
width
:
10px
;
height
:
7px
;
background
:
url(/shopping/package-up.png)
;
top
:
-7px
;
left
:
282px
;
+
.package-item
.package-title
{
border-top
:
none
;
}
}
.package-item
{
position
:
relative
;
.toggle-icon
{
position
:
absolute
;
font-size
:
34px
;
top
:
106px
;
cursor
:
pointer
;
}
.left-icon
{
left
:
-24px
;
}
.right-icon
{
right
:
-24px
;
}
}
.package-goods-wrap
{
height
:
134px
;
overflow
:
hidden
;
}
.package-list
{
position
:
absolute
;
background
:
#fff
;
border
:
2px
solid
#bbb
;
width
:
586px
;
right
:
36px
;
padding
:
0
50px
;
}
.package-title
,
.package-shipping
{
text-align
:
left
;
margin-left
:
10px
;
}
.package-title
{
border-top
:
1px
solid
#eee
;
line-height
:
55px
;
}
.package-shipping
{
color
:
#595959
;
margin-top
:
20px
;
margin-bottom
:
30px
;
}
.package-goods
li
{
width
:
120px
;
}
.package-goods-img
{
display
:
block
;
width
:
100px
;
height
:
134px
;
margin
:
0
auto
;
}
}
.order-table-head
{
height
:
50px
;
line-height
:
50px
;
margin
:
0
15px
;
>
span
{
display
:
block
;
float
:
left
;
text-align
:
center
;
font-size
:
14px
;
}
}
.order-table-body
{
display
:
table
;
}
.order-goods
{
border-top
:
1px
solid
#eee
;
padding
:
20px
0
;
margin
:
0
15px
;
text-align
:
center
;
.brand-name
{
display
:
block
;
line-height
:
50px
;
width
:
338px
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
.name
{
display
:
inline-block
;
font-size
:
14px
;
line-height
:
16px
;
max-height
:
32px
;
}
>
*
{
display
:
table-cell
;
vertical-align
:
middle
;
}
.number
>
.iconfont
{
font-size
:
14px
;
}
}
.invoice-info
.content
{
>
*
{
display
:
inline-block
;
}
.invoice-detail
{
margin-left
:
40px
;
}
em
{
margin-right
:
20px
;
}
.modify-invoice
{
display
:
inline-block
;
width
:
40px
;
height
:
20px
;
line-height
:
20px
;
}
}
.invoice-radio
{
cursor
:
pointer
;
color
:
#666
;
label
{
font-size
:
14px
;
}
}
.coin-and-remark
{
padding
:
20px
0
;
}
.coin
.title
,
.remark
.title
{
line-height
:
30px
;
}
.coin-ctrl
,
.remark-ctrl
{
cursor
:
pointer
;
&.iconfont
{
font-size
:
16px
;
}
}
.balance
{
padding
:
10px
20px
;
border
:
1px
solid
#ccc
;
font-size
:
14px
;
margin-bottom
:
80px
;
}
.balance-info
{
line-height
:
30px
;
width
:
670px
;
}
.receiver-wrap
{
position
:
relative
;
i
{
position
:
absolute
;
width
:
70px
;
}
em
{
display
:
inline-block
;
width
:
480px
;
margin-left
:
70px
;
}
}
.balance-list
{
width
:
364px
;
li
{
line-height
:
30px
;
}
}
.balance-cost
{
float
:
right
;
}
li
.need-pay
{
border-top
:
1px
solid
#000
;
line-height
:
50px
;
margin-top
:
10px
;
}
.submit-order
{
width
:
160px
;
height
:
40px
;
line-height
:
40px
;
}
/* 使用有货币&备注 */
.coin-and-remark
.content
{
background
:
#f5f5f5
;
padding
:
15px
20px
;
margin
:
20px
0
;
font-size
:
14px
;
}
.coin-input
{
width
:
70px
;
margin-left
:
20px
;
}
.coin-tip
{
line-height
:
30px
;
}
.used-coin
.btn
{
display
:
inline-block
;
width
:
auto
;
height
:
20px
;
line-height
:
20px
;
padding
:
0
5px
;
border
:
none
;
cursor
:
pointer
;
&.modify
{
margin-left
:
130px
;
margin-right
:
10px
;
}
}
.remark-content
{
width
:
1110px
;
height
:
118px
;
padding
:
10px
;
resize
:
none
;
}
.print-price-radio-group
{
display
:
inline-block
;
}
.print-price
{
margin
:
20px
0
10px
;
}
.print-price-radio
{
display
:
inline-block
;
cursor
:
pointer
;
>
.iconfont
{
font-size
:
16px
;
}
}
.remark-tip
{
color
:
#b1b1b1
;
}
.checked
{
position
:
relative
;
top
:
2px
;
}
}
.yoho-dialog.address
,
.yoho-dialog.invoice
{
background
:
#fff
;
.content
{
text-align
:
left
;
}
.btns
.btn
{
width
:
140px
;
height
:
40px
;
line-height
:
40px
;
&.white
{
border-color
:
#000
;
color
:
#000
;
}
}
}
.yoho-dialog.address
{
width
:
765px
;
padding
:
0
40px
10px
;
.label-name
{
text-align
:
right
;
}
.dialog-title
{
margin
:
25px
0
;
font-size
:
18px
;
}
&
.is-init
.cancel-address
{
display
:
none
;
}
.cascading-address
{
float
:
left
;
margin-left
:
0
!important
;
}
}
.yoho-dialog.invoice
{
width
:
702px
;
.dialog-title
{
color
:
#777
;
line-height
:
50px
;
border-bottom
:
1px
solid
#eee
;
}
.invoice-tab
{
margin
:
17px
0
;
.btn
{
width
:
85px
;
height
:
26px
;
line-height
:
26px
;
}
}
.tip
{
background
:
#f5f5f5
;
padding
:
20px
;
font-size
:
15px
;
line-height
:
18px
;
}
.required-mark
{
color
:
#f00
;
}
.invoice-title-radio
,
.invoice-content-radio
{
display
:
inline-block
;
cursor
:
pointer
;
width
:
115px
;
}
.row
{
margin
:
18px
0
;
line-height
:
30px
;
.iconfont
{
font-size
:
16px
;
color
:
#e0e0e0
;
}
.checked
{
color
:
#1b1b1b
;
}
.input
{
width
:
200px
;
height
:
30px
;
border-color
:
#eee
;
background
:
#f5f5f5
;
}
.label
{
float
:
left
;
font-size
:
14px
;
width
:
100px
;
}
.row-content
{
float
:
left
;
width
:
520px
;
}
}
}
.address-confirm-dialog
{
.content
{
padding-top
:
0
!important
;
p
{
position
:
static
!important
;
}
p
.main
{
line-height
:
100px
;
font-size
:
28px
;
}
}
}
...
...
public/scss/shopping/_pay.css
View file @
7d3d105
$
width
:
1150px
;
$
liWidth
:
140px
;
$
liHeight
:
40px
;
$
liBorderColor
:
#e6e6e6
;
$
fontColor
:
#616161
;
.pay-online-wrapper
{
.title
{
margin-top
:
35px
;
margin-bottom
:
20px
;
height
:
60px
;
.content
{
font-weight
:
bold
;
height
:
40px
;
}
.footer
{
height
:
20px
;
}
}
.pay-notice
{
color
:
#999
;
font-size
:
14px
;
}
.order-detail-ctrl
{
font-size
:
14px
;
cursor
:
pointer
;
.up
{
display
:
none
;
}
.down
{
display
:
inline-block
;
}
/* 默认情况为展开状态 箭头方向为下 */
&
.shrink
{
.up
{
display
:
inline-block
;
}
.down
{
display
:
none
;
}
}
.iconfont
{
font-size
:
12px
;
margin-left
:
10px
;
}
}
.order-detail
{
border
:
1px
solid
$
liBorderColor
;
margin-bottom
:
30px
;
height
:
calc
(
135px
+
2px
);
padding
:
20px
30px
;
.row
{
height
:
30px
;
line-height
:
@
height
;
font-weight
:
bold
;
.item
{
float
:
left
;
width
:
calc
(
$
width
/
2
-
31px
);
}
}
.item.receiver-address
{
width
:
100%
;
}
}
.pay-nav
{
height
:
calc
(
$
liHeight
+
2px
);
line-height
:
calc
(
$
liHeight
+
2px
);
border-bottom
:
1px
solid
$
liBorderColor
;
z-index
:
0
;
clear
:
both
;
.tabs
{
display
:
inline-block
;
height
:
$
liHeight
;
li
{
width
:
$
liWidth
;
height
:
$
liHeight
;
line-height
:
$
liHeight
;
float
:
left
;
font-size
:
16px
;
text-align
:
center
;
background-color
:
#fff
;
color
:
$
fontColor
;
cursor
:
pointer
;
position
:
relative
;
&.active
{
border
:
1px
solid
$
liBorderColor
;
height
:
calc
(
$
liHeight
+
1px
);
line-height
:
calc
(
$
liHeight
-
2px
);
top
:
1px
;
border-bottom
:
none
;
color
:
#000
;
z-index
:
3
;
}
}
}
}
.pay-type-icon
{
position
:
relative
;
float
:
left
;
width
:
250px
;
height
:
80px
;
margin-bottom
:
30px
;
margin-right
:
50px
;
margin-top
:
30px
;
cursor
:
pointer
;
border
:
1px
solid
$
liBorderColor
;
text-align
:
center
;
img
{
display
:
inline-block
;
margin-top
:
19px
;
}
.choose-tag
{
display
:
none
;
position
:
absolute
;
bottom
:
0
;
right
:
0
;
height
:
22px
;
width
:
23px
;
}
&
.active
{
border
:
2px
solid
black
;
.choose-tag
{
display
:
inline-block
;
}
}
}
.pay-ctrl
{
height
:
40px
;
margin-top
:
20px
;
margin-bottom
:
20px
;
clear
:
both
;
.btn-shape
{
width
:
160px
;
height
:
40px
;
line-height
:
@
height
;
}
}
}
.pay-info-dialog
{
.pay-page-tips
{
text-align
:
center
;
h3
{
font-size
:
18px
;
font-weight
:
700
;
margin
:
30px
0
;
}
p
{
font-size
:
14px
;
color
:
#999
;
margin
:
10px
0
;
}
.btn
{
margin-top
:
20px
;
}
}
}
$
width
:
1150px
;
$
liWidth
:
140px
;
$
liHeight
:
40px
;
$
liBorderColor
:
#e6e6e6
;
$
fontColor
:
#616161
;
.pay-online-wrapper
{
.title
{
margin-top
:
35px
;
margin-bottom
:
20px
;
height
:
60px
;
.content
{
font-weight
:
bold
;
height
:
40px
;
}
.footer
{
height
:
20px
;
}
}
.pay-notice
{
color
:
#999
;
font-size
:
14px
;
}
.order-detail-ctrl
{
font-size
:
14px
;
cursor
:
pointer
;
.up
{
display
:
none
;
}
.down
{
display
:
inline-block
;
}
/* 默认情况为展开状态 箭头方向为下 */
&
.shrink
{
.up
{
display
:
inline-block
;
}
.down
{
display
:
none
;
}
}
.iconfont
{
font-size
:
12px
;
margin-left
:
10px
;
}
}
.order-detail
{
border
:
1px
solid
$
liBorderColor
;
margin-bottom
:
30px
;
height
:
calc
(
135px
+
2px
);
padding
:
20px
30px
;
font-size
:
14px
;
.row
{
height
:
30px
;
line-height
:
@
height
;
font-weight
:
bold
;
.item
{
float
:
left
;
width
:
calc
(
$
width
/
2
-
31px
);
}
}
.item.receiver-address
{
width
:
100%
;
}
}
.pay-nav
{
height
:
calc
(
$
liHeight
+
2px
);
line-height
:
calc
(
$
liHeight
+
2px
);
border-bottom
:
1px
solid
$
liBorderColor
;
z-index
:
0
;
clear
:
both
;
.tabs
{
display
:
inline-block
;
height
:
$
liHeight
;
li
{
width
:
$
liWidth
;
height
:
$
liHeight
;
line-height
:
$
liHeight
;
float
:
left
;
font-size
:
16px
;
text-align
:
center
;
background-color
:
#fff
;
color
:
$
fontColor
;
cursor
:
pointer
;
position
:
relative
;
font-size
:
14px
;
&.active
{
border
:
1px
solid
$
liBorderColor
;
height
:
calc
(
$
liHeight
+
1px
);
line-height
:
calc
(
$
liHeight
-
2px
);
top
:
1px
;
border-bottom
:
none
;
color
:
#000
;
z-index
:
3
;
}
}
}
}
.pay-type-icon
{
position
:
relative
;
float
:
left
;
width
:
250px
;
height
:
80px
;
margin-bottom
:
30px
;
margin-right
:
50px
;
margin-top
:
30px
;
cursor
:
pointer
;
border
:
1px
solid
$
liBorderColor
;
text-align
:
center
;
img
{
display
:
inline-block
;
margin-top
:
19px
;
}
.choose-tag
{
display
:
none
;
position
:
absolute
;
bottom
:
0
;
right
:
0
;
height
:
22px
;
width
:
23px
;
}
&
.active
{
border
:
2px
solid
black
;
.choose-tag
{
display
:
inline-block
;
}
}
}
.pay-ctrl
{
height
:
40px
;
margin-top
:
20px
;
margin-bottom
:
20px
;
clear
:
both
;
.btn-shape
{
width
:
160px
;
height
:
40px
;
line-height
:
@
height
;
}
}
}
.pay-info-dialog
{
.pay-page-tips
{
text-align
:
center
;
h3
{
font-size
:
18px
;
font-weight
:
700
;
margin
:
30px
0
;
}
p
{
font-size
:
14px
;
color
:
#999
;
margin
:
10px
0
;
}
.btn
{
margin-top
:
20px
;
}
}
}
...
...
public/scss/shopping/_statement.css
View file @
7d3d105
.blk-cart-page
{
.fregit-remark
{
margin
:
50px
0
20px
;
padding-left
:
30px
;
font-size
:
12px
;
span
{
display
:
inline-block
;
width
:
50px
;
height
:
20px
;
line-height
:
22px
;
text-align
:
center
;
background
:
#424242
;
border-radius
:
12px
;
color
:
#fff
;
margin-right
:
10px
;
}
}
.cart-statement
{
margin
:
50px
auto
;
margin
-bottom
:
50px
;
width
:
100%
;
height
:
194px
;
padding
:
30px
;
border
:
1px
solid
#eee
;
.toggle-chk
{
.not-checked
{
color
:
#999
;
...
...
@@ -19,6 +38,7 @@
.checked
{
display
:
inline-block
;
}
.not-checked
{
display
:
none
;
}
...
...
public/scss/shopping/_stepper.css
View file @
7d3d105
...
...
@@ -30,8 +30,11 @@
}
.disable
{
background
:
#
999
;
background
:
#
eee
;
color
:
#fff
;
&:hover
{
background-color
:
#eee
;
}
}
.input
{
...
...
@@ -39,6 +42,9 @@
width
:
38px
;
height
:
28px
;
text-align
:
center
;
font-family
:
BrownStd
;
font-weight
:
bold
;
color
:
#1b1b1b
;
}
.warning
{
...
...
public/tpl/me/size-list.hbs
View file @
7d3d105
<div>
{{#
goodsList
}}
<div
class=
"hide size-list"
data-index=
"
{{
@index
}}
"
>
{{#
sizeList
}}
<span
data-size=
"
{{
sizeName
}}
"
data-sku=
"
{{
productSku
}}
"
data-id=
"
{{
goodsId
}}
"
{{#
unless
storageNumber
}}
class=
"disable"
{{/
unless
}}
>
{{
sizeName
}}
</span>
{{/
sizeList
}}
</div>
{{/
goodsList
}}
</div>
<div>
{{#
goodsList
}}
<div
class=
"hide size-list"
data-index=
"
{{
@index
}}
"
>
{{#
sizeList
}}
<span
data-size=
"
{{
sizeName
}}
"
data-sku=
"
{{
productSku
}}
"
data-id=
"
{{
goodsId
}}
"
{{#
unless
storageNumber
}}
class=
"disable"
{{/
unless
}}
>
{{
sizeName
}}
</span>
{{/
sizeList
}}
</div>
{{/
goodsList
}}
</div>
...
...
public/tpl/shopping/address-list.hbs
View file @
7d3d105
{{#
each
address
}}
<li
class=
"address
{{#
isY
is_default
}}
default
{{/
isY
}}{{#if
focus
}}
focus
{{/if}}
"
data-id=
"
{{
address_id
}}
"
data-name=
"
{{
consignee
}}
"
data-mobile=
"
{{
mobile
}}
"
data-phone=
"
{{
phone
}}
"
data-areacode=
"
{{
area_code
}}
"
data-area=
"
{{
area
}}
"
"
data-address=
"
{{
address
}}
"
>
<div
class=
"address-header"
></div>
<div
class=
"address-content"
>
<p
class=
"default-or-not"
>
<span
class=
"default-tag"
>
默认地址
</span>
<span
class=
"set-default"
>
设为默认
</span>
</p>
<p
class=
"name-and-phone"
>
<em
class=
"consignee"
>
{{
consignee
}}
</em>
<span
class=
"phone bold"
>
{{
mobile
}}
</span>
</p>
<p
class=
"address-area bold"
>
{{
area
}}
</p>
<p
class=
"address-detail"
>
{{
address
}}
</p>
<p
class=
"address-opration"
>
<span
class=
"modify"
>
修改
</span>
<span
class=
"delete"
>
删除
</span>
</p>
</div>
<span
class=
"address-chosed iconfont"
>

</span>
</li>
{{/
each
}}
{{#if
hasNew
}}
<li
class=
"new-address-block"
>
<span
class=
"iconfont"
>

</span>
增加收货地址
</li>
{{#
each
address
}}
<li
class=
"address
{{#
isY
is_default
}}
default
{{/
isY
}}{{#if
focus
}}
focus
{{/if}}
"
data-id=
"
{{
address_id
}}
"
data-name=
"
{{
consignee
}}
"
data-mobile=
"
{{
mobile
}}
"
data-phone=
"
{{
phone
}}
"
data-areacode=
"
{{
area_code
}}
"
data-area=
"
{{
area
}}
"
"
data-address=
"
{{
address
}}
"
>
<div
class=
"address-header"
></div>
<div
class=
"address-content"
>
<p
class=
"default-or-not"
>
<span
class=
"default-tag"
>
默认地址
</span>
<span
class=
"set-default"
>
设为默认
</span>
</p>
<p
class=
"name-and-phone"
>
<em
class=
"consignee"
>
{{
consignee
}}
</em>
<span
class=
"phone bold"
>
{{
mobile
}}
</span>
</p>
<p
class=
"address-area bold"
>
{{
area
}}
</p>
<p
class=
"address-detail"
>
{{
address
}}
</p>
<p
class=
"address-opration"
>
<span
class=
"modify"
>
修改
</span>
<span
class=
"delete"
>
删除
</span>
</p>
</div>
<span
class=
"address-chosed iconfont"
>

</span>
</li>
{{/
each
}}
{{#if
hasNew
}}
<li
class=
"new-address-block"
>
<span
class=
"iconfont"
>

</span>
增加收货地址
</li>
{{/if}}
\ No newline at end of file
...
...
public/tpl/shopping/cart-content.hbs
View file @
7d3d105
...
...
@@ -33,7 +33,7 @@
</li>
<li>
<a
href=
"/product/pro_
{{
product_id
}}
_
{{
goods_id
}}
/
{{
cn_alphabet
}}
.html"
target=
"_blank"
>
<img
src=
"
{{
image
goods_images
100
134
}}
"
alt=
"
{{
product_name
}}
"
>
<img
src=
"
{{
image
goods_images
100
134
}}
"
alt=
"
{{
product_name
}}
"
width=
"100"
height=
"134"
>
</a>
</li>
<li
class=
"pro-info"
>
...
...
@@ -101,7 +101,7 @@
</li>
<li>
<a
href=
"/product/pro_
{{
product_id
}}
_
{{
goods_id
}}
/
{{
cn_alphabet
}}
.html"
target=
"_blank"
>
<img
src=
"
{{
image
goods_images
100
134
}}
"
alt=
"
{{
product_name
}}
"
>
<img
src=
"
{{
image
goods_images
100
134
}}
"
alt=
"
{{
product_name
}}
"
width=
"100"
height=
"134"
>
</a>
</li>
<li
class=
"pro-info"
>
...
...
@@ -158,7 +158,7 @@
</li>
<li>
<a
href=
"javascript:void(0)"
>
<img
src=
"
{{
image
goods_images
100
134
}}
"
alt=
"
{{
product_name
}}
"
>
<img
src=
"
{{
image
goods_images
100
134
}}
"
alt=
"
{{
product_name
}}
"
width=
"100"
height=
"134"
>
</a>
</li>
<li
class=
"pro-info"
>
...
...
@@ -203,6 +203,13 @@
</div>
{{/if}}
{{#if
@root
.
freeShippingTip
}}
<div
class=
"fregit-remark"
>
<span>
免运费
</span>
{{
@root
.
freeShippingTip
}}
</div>
{{/if}}
<div
class=
"cart-statement"
>
<div
class=
"actions"
>
<div
class=
"action"
>
...
...
@@ -229,4 +236,4 @@
<div
class=
"checkout"
>
<span
class=
"btn
{{#
unless
selectedNum
}}
disable
{{/
unless
}}
"
id=
"checkout_btn"
>
去结算
</span>
</div>
</div>
\ No newline at end of file
</div>
...
...
public/webpack.config.js
View file @
7d3d105
...
...
@@ -25,7 +25,9 @@ shelljs.ls(path.join(__dirname, '/js/**/*.page.js')).forEach((f) => {
'yoho-jquery-lazyload'
,
'yoho-slider'
,
'yoho-jquery-accordion'
,
'yoho-jquery-nanoscroller'
'yoho-jquery-nanoscroller'
,
'yoho-jquery-placeholder'
,
'yoho-jquery-dotdotdot'
];
});
...
...
Please
register
or
login
to post a comment