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
杨延青
8 years ago
Commit
7498ddf4b37be19da2292c4818e587d46636811f
2 parents
27a9a744
5724ee4c
Merge branch 'release/5.8.1' into 'gray'
Release/5.8.1 See merge request
!142
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
180 additions
and
135 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
apps/service/controllers/client.js
apps/service/models/client-api.js
apps/service/models/client-service.js
package.json
public/js/cart/order/invoice.js
public/js/service/client.page.js
public/js/service/view.js
public/scss/cart/_order-ensure2016.css
apps/cart/models/order-ensure-api.js
View file @
7498ddf
...
...
@@ -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 @
7498ddf
...
...
@@ -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 @
7498ddf
...
...
@@ -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 @
7498ddf
...
...
@@ -135,7 +135,6 @@
{{/if}}
</div>
<p>
发票抬头:
{{
title
}}
</p>
<p>
发票内容:
{{
contentValue
}}
</p>
{{^}}
<p>
暂不需要发票
{{/if}}
...
...
apps/service/controllers/client.js
View file @
7498ddf
...
...
@@ -7,6 +7,7 @@
'use strict'
;
const
aes
=
require
(
'./aes-pwd'
);
const
helpers
=
global
.
yoho
.
helpers
;
const
common
=
require
(
'../../../config/common'
);
const
clientApi
=
require
(
'../models/client-api'
);
const
clientService
=
require
(
'../models/client-service'
);
...
...
@@ -16,10 +17,11 @@ const clientService = require('../models/client-service');
*/
const
index
=
(
req
,
res
,
next
)
=>
{
let
type
=
2
;
let
uid
=
req
.
user
.
uid
;
let
reg
=
/MSIE
\s?[
987
]\.
0/i
;
let
userAgent
=
req
.
headers
[
'user-agent'
];
let
unSupport
=
reg
.
test
(
userAgent
);
let
encryptedUid
=
aes
.
encryptionUid
(
req
.
user
.
uid
);
let
encryptedUid
=
aes
.
encryptionUid
(
uid
);
let
domains
=
common
.
domains
;
let
imCs
=
domains
.
imCs
;
let
imSocket
=
domains
.
imSocket
;
...
...
@@ -36,8 +38,11 @@ const index = (req, res, next) => {
layout
:
false
});
}
else
{
clientService
.
getClientData
(
type
,
encryptedUid
)
clientService
.
getClientData
(
uid
,
type
,
encryptedUid
)
.
then
(
result
=>
{
if
(
result
.
code
===
401
)
{
return
res
.
redirect
(
helpers
.
urlFormat
(
'/signin.html'
));
}
res
.
render
(
'client'
,
Object
.
assign
(
data
,
result
));
}).
catch
(
next
);
}
...
...
@@ -58,10 +63,11 @@ const domains = (req, res) => {
* @param next
*/
const
history
=
(
req
,
res
,
next
)
=>
{
const
encId
=
aes
.
encryptionUid
(
req
.
user
.
uid
);
const
uid
=
req
.
user
.
uid
;
const
encId
=
aes
.
encryptionUid
(
uid
);
const
endTime
=
req
.
body
.
endTime
;
clientApi
.
getMsgHistory
(
encId
,
endTime
)
clientApi
.
getMsgHistory
(
uid
,
encId
,
endTime
)
.
then
(
result
=>
{
res
.
json
(
result
);
}).
catch
(
next
);
...
...
@@ -74,7 +80,10 @@ const history = (req, res, next) => {
* @param next
*/
const
saveEval
=
(
req
,
res
,
next
)
=>
{
const
params
=
{};
const
uid
=
req
.
user
.
uid
;
const
params
=
{
uid
};
params
.
stars
=
req
.
body
.
stars
;
params
.
promoter
=
req
.
body
.
promoter
;
...
...
@@ -102,9 +111,12 @@ const saveEval = (req, res, next) => {
* @param next
*/
const
queryReason
=
(
req
,
res
,
next
)
=>
{
const
uid
=
req
.
user
.
uid
;
const
type
=
req
.
body
.
type
;
const
encryptedUid
=
aes
.
encryptionUid
(
uid
);
clientApi
.
queryReason
(
type
)
clientApi
.
queryReason
(
uid
,
encryptedUid
,
type
)
.
then
(
result
=>
{
res
.
json
(
result
);
}).
catch
(
next
);
...
...
@@ -117,11 +129,12 @@ const queryReason = (req, res, next) => {
* @param next
*/
const
saveMessage
=
(
req
,
res
,
next
)
=>
{
const
uid
=
req
.
user
.
uid
;
const
content
=
req
.
body
.
content
;
const
encId
=
req
.
body
.
encryptedUid
;
const
cvId
=
req
.
body
.
conversationId
;
clientApi
.
saveMessage
(
content
,
encId
,
cvId
)
clientApi
.
saveMessage
(
content
,
encId
,
cvId
,
uid
)
.
then
(
result
=>
{
res
.
json
(
result
);
}).
catch
(
next
);
...
...
apps/service/models/client-api.js
View file @
7498ddf
...
...
@@ -32,8 +32,9 @@ let urls = {
* @param { string } encryptedUid 用户ID
* @return { Object } 最近10条订单
*/
const
getLastTenOrders
=
(
encryptedUid
)
=>
{
const
getLastTenOrders
=
(
uid
,
encryptedUid
)
=>
{
return
api
.
post
(
urls
.
lastTen
,
{
uid
,
encryptedUid
});
};
...
...
@@ -43,8 +44,11 @@ const getLastTenOrders = (encryptedUid) => {
* @function getQas
* @return { Object } 问答列表
*/
const
getQas
=
()
=>
{
return
api
.
post
(
urls
.
qas
,
{});
const
getQas
=
(
uid
,
encryptedUid
)
=>
{
return
api
.
post
(
urls
.
qas
,
{
uid
,
encryptedUid
});
};
/**
...
...
@@ -65,8 +69,10 @@ const getCsSetting = (type) => {
* @param { string } endTime 截止时间
* @return { Array } 历史聊天记录
*/
const
getMsgHistory
=
(
encryptedUid
,
endTime
)
=>
{
const
getMsgHistory
=
(
uid
,
encryptedUid
,
endTime
)
=>
{
let
params
=
{
uid
,
encryptedUid
};
...
...
@@ -91,9 +97,11 @@ const saveEval = (params) => {
* @param cvId
* @returns {*}
*/
const
queryReason
=
(
type
)
=>
{
const
queryReason
=
(
uid
,
encryptedUid
,
type
)
=>
{
const
params
=
{
type
uid
,
type
,
encryptedUid
};
return
api
.
post
(
urls
.
evalReason
,
params
);
...
...
@@ -106,8 +114,9 @@ const queryReason = (type) => {
* @param cvId 会话ID
* @returns {*}
*/
const
saveMessage
=
(
content
,
encId
,
cvId
)
=>
{
const
saveMessage
=
(
content
,
encId
,
cvId
,
uid
)
=>
{
const
params
=
{
uid
,
content
,
encryptedUid
:
encId
,
conversationId
:
cvId
...
...
apps/service/models/client-service.js
View file @
7498ddf
...
...
@@ -17,7 +17,7 @@ const clientAPI = require('./client-api');
* @param { string } encryptedUid
* @return { Object } 客服设置
*/
const
getClientData
=
(
type
,
encryptedUid
)
=>
{
const
getClientData
=
(
uid
,
type
,
encryptedUid
)
=>
{
const
logoSize
=
'136x40'
;
const
qcSize
=
'135x135'
;
const
advSize
=
'160x335'
;
...
...
@@ -25,9 +25,9 @@ const getClientData = (type, encryptedUid) => {
let
apiMethod
=
[
clientAPI
.
getCsSetting
(
type
),
clientAPI
.
getMsgHistory
(
encryptedUid
),
clientAPI
.
getLastTenOrders
(
encryptedUid
),
clientAPI
.
getQas
()
clientAPI
.
getMsgHistory
(
uid
,
encryptedUid
),
clientAPI
.
getLastTenOrders
(
uid
,
encryptedUid
),
clientAPI
.
getQas
(
uid
,
encryptedUid
)
];
return
Promise
.
all
(
apiMethod
)
...
...
@@ -38,6 +38,14 @@ const getClientData = (type, encryptedUid) => {
let
records
=
[];
let
hasHistory
=
false
;
if
(
res
[
1
].
code
===
401
||
res
[
2
].
code
===
401
||
res
[
3
].
code
===
401
)
{
return
{
code
:
401
};
}
if
(
res
[
0
]
&&
res
[
0
].
code
===
200
)
{
if
(
res
[
0
].
data
.
config
)
{
csSetting
=
res
[
0
].
data
.
config
;
...
...
package.json
View file @
7498ddf
{
"name"
:
"yohobuy-node"
,
"version"
:
"5.8.
4
"
,
"version"
:
"5.8.
6
"
,
"private"
:
true
,
"description"
:
"A New Yohobuy Project With Express"
,
"repository"
:
{
...
...
public/js/cart/order/invoice.js
View file @
7498ddf
...
...
@@ -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/js/service/client.page.js
View file @
7498ddf
...
...
@@ -237,6 +237,7 @@ function _loadPage() {
// 接入人工客服需要评价
processInfo
.
manual
=
true
;
processInfo
.
savedEval
=
false
;
// 显示评价&隐藏人工
edit
.
setIcons
({
...
...
@@ -607,6 +608,12 @@ function _loadPage() {
serviceApi
.
history
(
data
)
.
done
(
function
(
res
)
{
if
(
res
&&
res
.
code
===
401
)
{
window
.
onbeforeunload
=
null
;
return
location
.
href
=
'//www.yohobuy.com/signin.html?refer='
+
// eslint-disable-line
encodeURIComponent
(
location
.
href
);
}
if
(
res
&&
res
.
code
===
200
)
{
if
(
processInfo
.
hasMore
)
{
msgList
=
res
.
data
.
records
||
[];
...
...
@@ -690,7 +697,13 @@ function _loadPage() {
encryptedUid
:
encryptedUid
,
conversationId
:
socketConfCM
.
conversationId
})
.
done
(
function
()
{})
.
done
(
function
(
res
)
{
if
(
res
&&
res
.
code
===
401
)
{
window
.
onbeforeunload
=
null
;
return
location
.
href
=
'//www.yohobuy.com/signin.html?refer='
+
// eslint-disable-line
encodeURIComponent
(
location
.
href
);
}
})
.
always
(
function
()
{
lMsg
.
modal
(
'hide'
);
});
...
...
public/js/service/view.js
View file @
7498ddf
...
...
@@ -36,6 +36,12 @@ var _fetchReason = (function() {
type
:
YOHO_CS
})
.
done
(
function
(
res
)
{
if
(
res
&&
res
.
code
===
401
)
{
window
.
onbeforeunload
=
null
;
return
location
.
href
=
'//www.yohobuy.com/signin.html?refer='
+
// eslint-disable-line
encodeURIComponent
(
location
.
href
);
}
if
(
res
.
code
===
200
)
{
cache
=
res
.
data
;
render
(
cache
);
...
...
@@ -131,6 +137,12 @@ function _evalSubmit() {
$btnEval
.
hide
();
processSign
.
savedEval
=
true
;
if
(
res
&&
res
.
code
===
401
)
{
window
.
onbeforeunload
=
null
;
return
location
.
href
=
'//www.yohobuy.com/signin.html?refer='
+
// eslint-disable-line
encodeURIComponent
(
location
.
href
);
}
if
(
res
&&
res
.
code
===
200
)
{
send
.
completeEval
();
self
.
close
();
...
...
public/scss/cart/_order-ensure2016.css
View file @
7498ddf
...
...
@@ -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
:
220px
;
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