Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
yohobuy-node
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
1
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Plain Diff
Browse Files
Authored by
yyq
8 years ago
Commit
00d915f990bee112662e3a52f684aaf17acd41f4
2 parents
f1514e4c
752dc9ea
Merge branch 'feature/invoice' into release/5.8.1
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
105 additions
and
115 deletions
apps/cart/models/order-ensure-api.js
apps/cart/models/order-ensure.js
apps/cart/views/partial/ensure-tpl.hbs
apps/home/views/action/home/orders/order-detail.hbs
public/js/cart/order/invoice.js
public/scss/cart/_order-ensure2016.css
apps/cart/models/order-ensure-api.js
View file @
00d915f
...
...
@@ -125,7 +125,8 @@ const orderSubmitAsync = (uid, cartType, addressId, deliveryTime, deliveryWay, p
invoices_type
:
other
.
invoicesType
,
invoices_title
:
other
.
invoicesTitle
,
invoice_content
:
other
.
invoicesContent
,
receiverMobile
:
other
.
receiverMobile
receiverMobile
:
other
.
receiverMobile
,
buyerTaxNumber
:
other
.
taxNumber
});
}
...
...
apps/cart/models/order-ensure.js
View file @
00d915f
...
...
@@ -70,6 +70,15 @@ const submit = (uid, cartType, p, remoteIp) => {
p
.
addressId
=
crypto
.
decrypt
(
''
,
`
$
{
p
.
addressId
}
`
);
}
// 5.8.1 发票优化需求
// 只接受电子发票(1 纸质 2 电子),发票内容为明细(id 12:明细)
if
(
p
.
invoicesType
)
{
Object
.
assign
(
p
,
{
invoicesType
:
2
,
invoicesContent
:
12
});
}
return
ensureApi
.
orderSubmitAsync
(
uid
,
cartType
,
p
.
addressId
,
p
.
deliveryTime
,
p
.
deliveryWay
,
p
.
paymentType
,
p
.
paymentId
,
p
.
printPrice
,
p
,
remoteIp
).
then
(
result
=>
{
if
(
result
.
code
===
200
)
{
...
...
apps/cart/views/partial/ensure-tpl.hbs
View file @
00d915f
...
...
@@ -77,21 +77,22 @@
<script
id=
"invoice-chose-tpl"
type=
"text/html"
>
<div class="invoice-close"><i class="iconfont"></i></div>
<p class="invoice-header">发票信息</p>
<ul class="invoice-type">
<li class="el-invoice focus">电子发票</li>
<li class="pa-invoice">纸质发票</li>
</ul>
<div class="invoice-content el-content">
<p class="invoice-type-text">
<span class="row-title">发 票 类 型:</span>
电子发票
</p>
<p class="el-tip">
※ 电子发票是税务局认可的有效凭证,其法律效力、基本用途及使用规定同纸质发票,如需纸质发票可自行下载打印。<br>
<a href="/help/detail?id=33&contId=139" target="_blank">
什么是电子发票?
</a>
<a href="/help/detail?id=33&contId=139" target="_blank">
查看发票须知
</a>
</p>
<ul>
<li class="invoice-title invoice-row">
<span class="row-title">
<em>*</em>
发
票抬头
发
票 抬 头:
</span>
<div class="row-content">
<span class="radio-wrap">
...
...
@@ -100,36 +101,41 @@
<span class="radio-wrap">
<label class="rbt-2 radio-btn" data-id="2"></label> 单位
</span>
<div class="company-row hide">
<input id="company-name" class="company-name" type="text" placeholder="请填写单位名称">
<span class="input-tip invoice-title-tip red hide">
<span class="iconfont"></span>
请填写发票抬头
</span>
</div>
</div>
</li>
<li class="invoice-goods-type invoice-row">
<li class="invoice-title-name invoice-row company-row hide">
<span class="row-title">
<em>*</em>
单 位 名 称:
</span>
<div class="row-content">
<input id="company-name" class="company-name" type="text" placeholder="请填写单位名称">
<span class="input-tip company-name-tip red hide">
<span class="iconfont"></span>
<em>请填写发票抬头</em>
</span>
</div>
</li>
<li class="invoice-tax-num invoice-row company-row hide">
<span class="row-title">
<em>*</em>
发票内容
:
税 号
:
</span>
<div class="row-content">
{{#
each
invoices
.
invoiceContentList
}}
<span class="radio-wrap">
<label class="radio-btn rbc-
{{
invoices_type_id
}}{{#if
@first
}}
on
{{/if}}
" data-id="
{{
invoices_type_id
}}
" data-name="
{{
invoices_type_name
}}
"></label>
{{
invoices_type_name
}}
</span>
{{/
each
}}
<input id="company-tax-num" class="company-tax-num" type="text" placeholder="请输入纳税人识别号">
<span class="input-tip company-tax-tip red hide">
<span class="iconfont"></span>
<em>请填写纳税人识别号</em>
</span>
</div>
</li>
<li class="receiver invoice-row" data-full="
{{
receiverMobile
}}
" data-hide="
{{
hideReceiverMobile
}}
">
<span class="
row
-
title
">
<em>*</em>
手
机号
码:
手
机 号
码:
</span>
<div class="
row
-
content
">
<input id="
receiver
-
phone
" class="
receiver
-
phone
" type="
text
">
<input id="
receiver
-
phone
" class="
receiver
-
phone
" type="
text
"
placeholder="
可通过手机号码在发票服务平台查询
"
>
<span class="
input
-
tip
receiver
-
tip
red
hide
">
<span class="
iconfont
"
>&
#
xe629
;
<
/span
>
<
em
><
/em
>
...
...
apps/home/views/action/home/orders/order-detail.hbs
View file @
00d915f
...
...
@@ -135,7 +135,6 @@
{{/if}}
</div>
<p>
发票抬头:
{{
title
}}
</p>
<p>
发票内容:
{{
contentValue
}}
</p>
{{^}}
<p>
暂不需要发票
{{/if}}
...
...
public/js/cart/order/invoice.js
View file @
00d915f
...
...
@@ -23,9 +23,18 @@ function validateInvoice($el, info) {
// 发票抬头
if
(
!
info
.
titleName
)
{
pass
=
false
;
$
(
'.
invoice-titl
e-tip'
,
$el
).
removeClass
(
'hide'
);
$
(
'.
company-nam
e-tip'
,
$el
).
removeClass
(
'hide'
);
}
else
{
$
(
'.invoice-title-tip'
,
$el
).
addClass
(
'hide'
);
$
(
'.company-name-tip'
,
$el
).
addClass
(
'hide'
);
}
if
(
info
.
titleId
===
2
)
{
if
(
!
info
.
taxNumber
)
{
pass
=
false
;
$
(
'.company-tax-tip'
,
$el
).
removeClass
(
'hide'
);
}
else
{
$
(
'.company-tax-tip'
,
$el
).
addClass
(
'hide'
);
}
}
// 收票人手机号
...
...
@@ -38,7 +47,7 @@ function validateInvoice($el, info) {
}
else
if
(
info
.
receiver
===
defaultReceiver
.
hide
)
{
$receiverTip
.
addClass
(
'hide'
);
}
else
if
(
!
/^
[
0-9
]{11}
$/
.
test
(
info
.
receiver
))
{
$receiverTip
.
removeClass
(
'hide'
).
find
(
'em'
).
html
(
'
手机号码不正确
'
);
$receiverTip
.
removeClass
(
'hide'
).
find
(
'em'
).
html
(
'
请输入正确手机号
'
);
pass
=
false
;
}
else
{
$receiverTip
.
addClass
(
'hide'
);
...
...
@@ -49,29 +58,9 @@ function validateInvoice($el, info) {
}
function
bindInvoiceEvent
(
$el
)
{
var
$invoiceTypeWrap
=
$
(
'.invoice-type'
,
$el
),
$titleWrap
=
$
(
'.invoice-title'
,
$el
),
$goodsTypeWrap
=
$
(
'.invoice-goods-type'
,
$el
),
$receiver
=
$
(
'.receiver'
,
$el
),
var
$titleWrap
=
$
(
'.invoice-title'
,
$el
),
$companyRow
=
$
(
'.company-row'
,
$el
);
$invoiceTypeWrap
.
on
(
'click'
,
'li'
,
function
()
{
var
$this
=
$
(
this
);
if
(
$this
.
hasClass
(
'focus'
))
{
return
;
}
if
(
$this
.
hasClass
(
'el-invoice'
))
{
$receiver
.
removeClass
(
'hide'
);
}
else
{
$receiver
.
addClass
(
'hide'
);
}
$this
.
siblings
(
'.focus'
).
removeClass
(
'focus'
);
$this
.
addClass
(
'focus'
);
});
$titleWrap
.
on
(
'click'
,
'.radio-btn'
,
function
()
{
var
$this
=
$
(
this
),
id
=
$this
.
data
(
'id'
);
...
...
@@ -90,17 +79,6 @@ function bindInvoiceEvent($el) {
$this
.
addClass
(
'on'
);
});
$goodsTypeWrap
.
on
(
'click'
,
'.radio-btn'
,
function
()
{
var
$this
=
$
(
this
);
if
(
$this
.
hasClass
(
'on'
))
{
return
;
}
$goodsTypeWrap
.
find
(
'.on'
).
removeClass
(
'on'
);
$this
.
addClass
(
'on'
);
});
$el
.
on
(
'click'
,
'.invoice-close'
,
function
()
{
$
(
'.btn-close'
,
$el
).
trigger
(
'click'
);
});
...
...
@@ -109,48 +87,35 @@ function bindInvoiceEvent($el) {
function
bindInvoiceInfo
(
$el
,
info
)
{
info
=
info
||
{};
// 发票类型
if
(
info
.
invocesType
===
1
)
{
$
(
'.pa-invoice'
,
$el
).
trigger
(
'click'
);
}
if
(
info
.
titleId
)
{
$
(
'.rbt-'
+
info
.
titleId
).
trigger
(
'click'
);
if
(
info
.
titleId
===
2
&&
info
.
titleName
)
{
$
(
'#company-name'
,
$el
).
val
(
info
.
titleName
);
if
(
info
.
titleId
===
2
)
{
$
(
'#company-name'
,
$el
).
val
(
info
.
titleName
||
''
);
$
(
'#company-tax-num'
,
$el
).
val
(
info
.
taxNumber
||
''
);
}
}
if
(
info
.
contentId
)
{
$
(
'.rbc-'
+
info
.
contentId
,
$el
).
trigger
(
'click'
);
}
$
(
'#receiver-phone'
,
$el
).
val
(
info
.
receiver
||
defaultReceiver
.
hide
||
''
);
}
function
packInvoiceInfo
(
$el
)
{
var
$goodsType
=
$
(
'.invoice-goods-type .on'
,
$el
);
var
resData
=
{},
var
resData
=
{
// 5.8.1需求,只支持电子发票(type: 2),发票内容只能开明细(id:12)
invocesType
:
2
,
contentId
:
12
,
contentName
:
'明细'
},
receiver
=
$
(
'#receiver-phone'
,
$el
).
val
();
if
(
$
(
'.pa-invoice'
,
$el
).
hasClass
(
'focus'
))
{
resData
.
invocesType
=
1
;
}
else
{
resData
.
invocesType
=
2
;
}
resData
.
titleId
=
$
(
'.invoice-title .on'
,
$el
).
data
(
'id'
)
||
1
;
if
(
resData
.
titleId
*
1
===
1
)
{
resData
.
titleName
=
'个人'
;
}
else
{
resData
.
titleName
=
$
(
'#company-name'
,
$el
).
val
();
resData
.
taxNumber
=
$
(
'#company-tax-num'
,
$el
).
val
();
}
resData
.
contentId
=
$goodsType
.
data
(
'id'
);
resData
.
contentName
=
$goodsType
.
data
(
'name'
);
if
(
receiver
)
{
resData
.
receiver
=
receiver
;
}
...
...
@@ -173,8 +138,7 @@ function setShowInvoiceInfo() {
_h
+=
'电子发票'
;
}
_h
+=
' '
+
invoiceInfo
.
titleName
+
' '
+
invoiceInfo
.
contentName
;
_h
+=
' '
+
invoiceInfo
.
titleName
;
$dom
.
removeClass
(
'hide'
).
find
(
'span'
).
html
(
_h
);
}
...
...
@@ -186,7 +150,7 @@ function invoiceEditDialog(baseInfo) {
btns
:
[
{
id
:
'save-invoice'
,
name
:
'
保存发票信息
'
,
name
:
'
提交
'
,
btnClass
:
[
'save-invoice'
],
cb
:
function
()
{
var
info
=
packInvoiceInfo
(
invoice
.
$el
);
...
...
@@ -258,6 +222,7 @@ exports.getInvoice = function() {
invoicesType
:
invoiceInfo
.
invocesType
,
invoicesTitle
:
invoiceInfo
.
titleName
,
invoicesContent
:
invoiceInfo
.
contentId
,
taxNumber
:
invoiceInfo
.
taxNumber
||
''
,
receiver
:
invoiceInfo
.
receiver
===
defaultReceiver
.
hide
?
defaultReceiver
.
full
:
invoiceInfo
.
receiver
};
};
...
...
public/scss/cart/_order-ensure2016.css
View file @
00d915f
...
...
@@ -771,6 +771,15 @@
padding-right
:
20px
;
font-size
:
14px
;
>
span
{
display
:
inline-block
;
max-width
:
300px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
vertical-align
:
middle
;
}
>
label
{
width
:
80px
;
height
:
24px
;
...
...
@@ -1555,10 +1564,12 @@
.ensure-invoice-dialog
{
$
red
:
#d0021b
;
width
:
440px
;
width
:
690px
;
padding
:
20px
58px
;
font-size
:
14px
;
color
:
#444
;
background-color
:
#fff
;
box-sizing
:
border-box
;
>
.close
{
display
:
none
;
...
...
@@ -1601,31 +1612,17 @@
}
.invoice-header
{
font-size
:
18px
;
padding-bottom
:
10px
;
font-size
:
14px
;
padding
:
24px
0
20px
;
border-bottom
:
1px
solid
#e8e8e8
;
}
.invoice-type
{
padding
:
20px
0
;
>
li
{
width
:
98px
;
height
:
28px
;
line-height
:
28px
;
text-align
:
center
;
font-size
:
14px
;
margin-right
:
17px
;
border
:
1px
solid
#505050
;
color
:
#505050
;
display
:
inline-block
;
cursor
:
pointer
;
}
.invoice-content
{
font-weight
:
300
;
}
.focus
{
border-color
:
#d0021b
;
color
:
#d0021b
;
}
.row-title
{
font-weight
:
normal
;
}
.el-tip
{
...
...
@@ -1634,15 +1631,24 @@
line-height
:
1.5
;
>
a
{
color
:
$
red
;
display
:
inline-block
;
padding-top
:
12px
;
font-weight
:
500
;
}
}
.invoice-type-text
{
line-height
:
20px
;
padding
:
20px
10px
;
.row-title
{
margin-right
:
10px
;
}
}
.invoice-row
{
padding-top
:
16px
;
padding-left
:
84
px
;
padding-left
:
92
px
;
overflow
:
hidden
;
.row-content
{
...
...
@@ -1652,7 +1658,7 @@
.row-title
{
line-height
:
30px
;
position
:
absolute
;
margin-left
:
-
84
px
;
margin-left
:
-
92
px
;
>
em
{
color
:
$
red
;
...
...
@@ -1669,9 +1675,11 @@
}
input
{
width
:
194px
;
height
:
26px
;
width
:
210px
;
height
:
30px
;
padding
:
0
10px
;
background
:
#f5f5f5
;
border
:
1px
solid
#e0e0e0
;
}
.red
{
...
...
@@ -1684,15 +1692,17 @@
padding-bottom
:
10px
;
.btn
{
width
:
130px
;
height
:
28px
;
line-height
:
28px
;
width
:
140px
;
height
:
40px
;
line-height
:
38px
;
box-sizing
:
border-box
;
}
.save-invoice
{
background-color
:
#000
;
color
:
#fff
;
font-weight
:
300
;
margin-right
:
30px
;
}
}
}
...
...
Please
register
or
login
to post a comment