Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
hls-xcmg-vue-app
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xugong
hls-xcmg-vue-app
Commits
68461fe7
Commit
68461fe7
authored
Nov 05, 2019
by
786817560
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
'代码提交'
parent
0dfde824
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
831 additions
and
302 deletions
+831
-302
fileIcon.png
src/assets/distributorSign/fileIcon.png
+0
-0
contract-detail.vue
src/pages/contractSigning/contract-detail.vue
+137
-8
contract-repay-plan.vue
src/pages/contractSigning/contract-repay-plan.vue
+432
-0
contract-signing.vue
src/pages/contractSigning/contract-signing.vue
+103
-136
contract-list.vue
src/pages/distributorSign/contract-list.vue
+107
-146
financing-details.vue
src/pages/financingTrial/financing-details.vue
+28
-3
product-detailed.vue
src/pages/productQuery/product-detailed.vue
+6
-5
product-list.vue
src/pages/productQuery/product-list.vue
+7
-1
query-home.vue
src/pages/productQuery/query-home.vue
+8
-2
index.js
src/router/index.js
+3
-1
No files found.
src/assets/distributorSign/fileIcon.png
0 → 100644
View file @
68461fe7
1.13 KB
src/pages/contractSigning/contract-detail.vue
View file @
68461fe7
<!--
* @Author: your name
* @Date: 2019-09-29 10:02:11
* @LastEditTime: 2019-11-0
4 18:34:35
* @LastEditTime: 2019-11-0
5 13:36:11
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
-->
...
...
@@ -22,6 +22,26 @@
<span>
合同详情
</span>
</div>
</h-header>
<div
v-if=
"!isConfirm&&con_confirm_status!=='APPROVED'"
v-once
class=
"myModal"
>
<div
class=
"box"
>
<span
class=
"title-box"
>
征信授权书
</span>
<div
class=
"content-box"
>
<p>
本人知晓并同意_(会员机构XXX)___依据《征信业管理条例》及相关法律法规,委托第三方征信机构,合法调查本人信息,包括但不限于个人基本信息、借贷交易信息、银行卡交易信息、电商交易信息、公用事业信息、央行征信报告。所获取的信息,仅在此笔借贷业务的贷前审批和贷后管理工作中使用。(会员机构XXX)_将对所获取的信息妥善进行保管,除为本人提供信审服务/借款资金的合作方外,未经本人授权,不得向其他机构或个人公开、编辑或透露信息内容。
</p>
<p>
本人知晓并同意_(会员机构XXX)_依据《征信业管理条例》及相关法律法规,向第三方征信机构提交本人在此笔借贷业务中产生的相关信息,包括但不限于个人基本信息、借款申请信息、借款合同信息以及还款行为信息,并记录在征信机构的个人信用信息数据库中。
</p>
<p>
本人同意若本人出现不良还款行为,__(会员机构XXX)__按合同所留联系方式对本人进行提醒并告知,本人若仍未履行还款义务,_(会员机构XXX)__可将本人的不良还款信息提交至第三方征信机构,记录在征信机构的个人信用信息库中。
</p>
<p>
本人已被明确告知不良还款信息一旦记录在第三方征信机构的个人信用信息数据库中,在日后的经济活动中对本人可能产生的不良影响。
</p>
<p>
若本人所约定的联络方式产生变化,本人将及时通知_(会员机构XXX)_,若因未通知造成的相应损失,本人愿承担相应责任。
</p>
<p>
本人知晓第三方征信机构包含:北京安融惠众征信有限公司。
</p>
<p>
授权人签名:_______________
</p>
<p>
日期:_____________________
</p>
</div>
<div
class=
"confirm"
>
<input
type=
"checkbox"
@
click=
"select"
>
<span>
我本人已阅读本协议,并同意授权xxxx
</span>
</div>
<button
class=
"appro"
@
click=
"confirm"
>
同意
</button>
</div>
</div>
<div
class=
"tab-style"
>
<div
:class=
"
{'done':num === 0,'undone':num !== 0}" @click="num = 0;">
<img
:src=
"num === 0?check1:uncheck1"
>
基本信息
</div>
<div
:class=
"
{'done':num === 1,'undone':num !== 1}" @click="num = 1;">
<img
:src=
"num === 1?check3:uncheck3"
>
租赁信息
</div>
...
...
@@ -244,7 +264,7 @@
</div>
</div>
-->
</h-content>
<bottom-tab
v-
show=
"num === 1 && confirm_status =
== 'SUBMIT'"
>
<bottom-tab
v-
if=
"con_confirm_status
== 'SUBMIT'"
>
<tab-button
class=
"footer"
@
click
.
native=
"inSure"
>
确认签约
</tab-button>
...
...
@@ -279,20 +299,30 @@ export default {
baseInfo
:
{},
// 基本信息
project_id
:
''
,
bank_flag
:
false
,
isConfirm
:
false
,
// 征信授权书状态
confirm_id
:
''
,
conditionInfo
:
{},
check1
:
Check1
,
ischecked
:
false
,
check2
:
Check2
,
check3
:
Check3
,
uncheck1
:
unCheck1
,
uncheck2
:
unCheck2
,
uncheck3
:
unCheck3
,
con
firm_status
:
''
,
con
_confirm_status
:
this
.
$route
.
params
.
item
.
con_confirm_status
,
entry_info_flag
:
false
,
}
},
computed
:
{},
watch
:
{
'ischecked'
:
function
(
newVal
,
oldVal
)
{
let
appro
=
document
.
querySelector
(
'.appro'
)
// 同意按钮
if
(
newVal
)
{
appro
.
style
.
backgroundColor
=
'#00469c'
}
else
{
appro
.
style
.
backgroundColor
=
'rgba(56, 63, 69, 0.5)'
}
},
bp_class
()
{
if
(
this
.
bp_class
===
'NP'
)
{
this
.
bp_flag
=
false
...
...
@@ -306,10 +336,13 @@ export default {
next
(
vm
=>
{
if
(
from
.
name
===
'ContractSigning'
)
{
vm
.
bank_flag
=
false
vm
.
isConfirm
=
false
vm
.
ischecked
=
false
console
.
log
(
vm
.
$route
.
params
.
item
)
vm
.
bp_name
=
vm
.
$route
.
params
.
item
.
bp_name
vm
.
project_id
=
vm
.
$route
.
params
.
item
.
project_id
vm
.
confirm_id
=
vm
.
$route
.
params
.
item
.
confirm_id
vm
.
con
firm_status
=
vm
.
$route
.
params
.
item
.
confirm_status
vm
.
con
_confirm_status
=
vm
.
$route
.
params
.
item
.
con_
confirm_status
if
(
vm
.
$route
.
params
.
item
.
bp_class
===
'NP'
)
{
vm
.
bp_flag
=
false
}
else
{
...
...
@@ -328,7 +361,29 @@ export default {
activated
()
{
// this.bankCardQuery()
},
mounted
()
{
if
(
this
.
con_confirm_status
!==
'APPROVED'
)
{
this
.
popProtocol
()
}
},
methods
:
{
popProtocol
()
{
let
modal
=
document
.
querySelector
(
'.myModal'
)
let
alpha
=
0
let
addOpacity
=
setInterval
(()
=>
{
alpha
+=
1
modal
.
style
.
backgroundColor
=
`rgba(56,63,69,
${
alpha
/
100
}
)`
if
(
alpha
>=
30
)
{
clearInterval
(
addOpacity
)
}
},
10
)
},
select
()
{
this
.
ischecked
=
!
this
.
ischecked
},
confirm
()
{
this
.
ischecked
?
(
this
.
isConfirm
=
true
)
:
(
this
.
isConfirm
=
false
)
},
// 担保人
getGuarantor
()
{
let
vm
=
this
...
...
@@ -403,10 +458,10 @@ export default {
// 还款计划
repayPlan
()
{
this
.
$router
.
push
({
name
:
'
FinancDetails
'
,
name
:
'
ContractRepayPlan
'
,
params
:
{
project_id
:
this
.
project_id
,
product_num
:
this
.
conditionI
nfo
.
product_num
,
product_num
:
this
.
i
nfo
.
product_num
,
},
})
},
...
...
@@ -439,7 +494,7 @@ export default {
let
param
=
{
master
:
{
confirm_id
:
vm
.
confirm_id
,
confirm_status
:
'APPROVED'
,
con
_con
firm_status
:
'APPROVED'
,
},
}
vm
.
hlsHttp
.
post
(
url
,
param
).
then
(
function
(
res
)
{
...
...
@@ -541,7 +596,7 @@ export default {
}
.alert {
//height: 100px;
padding-bottom:
10
px;
padding-bottom:
84
px;
width: 100%;
//margin-top: -10px;
background: #FbF2d2;
...
...
@@ -1013,5 +1068,79 @@ export default {
height: 40px;
margin: 4px 2% 0 2%;
}
.myModal {
width: 100%;
height: 100%;
position: absolute;
z-index: 999;
background-color: rgba(56, 63, 69, 0.3);
display: flex;
justify-content: center;
align-items: center;
.box {
position: relative;
width: 301px;
height: 467px;
background: url("../../assets/intoApproval/top.png") no-repeat;
background-size: 301px 24.7px;
background-color: #fff;
button {
width: 240px;
height: 40px;
position: absolute;
color: #fff;
bottom: 16px;
left: 30.5px;
background-color: rgba(56, 63, 69, 0.5);
}
.title-box {
width: 100%;
display: block;
text-align: center;
margin-top: 37px;
font-family: PingFangSC-Semibold;
font-size: 16px;
color: #00469c;
}
.content-box {
width: 240px;
height: 280px;
font-family: PingFangSC-Regular;
font-size: 12px;
color: #383f45;
margin: 0 auto;
margin-top: 12px;
overflow-y: scroll;
p {
text-indent: 25px;
line-height: 16px;
}
}
.confirm {
width: 240px;
height: 20px;
padding-top: 25px;
margin: 0 auto;
font-family: PingFangSC-Regular;
font-size: 12px;
color: #383f45;
line-height: 20px;
display: flex;
justify-content: center;
align-items: center;
input {
width: 16px;
height: 16px;
margin-right: 8px;
background: none;
}
input::before {
content: "";
display: block;
background-image: url("../../assets/intoApproval/top.png");
}
}
}
}
}
</
style
>
src/pages/contractSigning/contract-repay-plan.vue
0 → 100644
View file @
68461fe7
<!--
* @Author: your name
* @Date: 2019-10-30 19:29:24
* @LastEditTime: 2019-11-05 15:45:27
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
-->
<
template
>
<h-view
id=
"repay-plan"
class=
"public-style"
>
<h-header
:proportion=
"[5,1,1]"
class=
"bar-custom"
>
<div
slot=
"left"
class=
"h-header-btn"
>
<img
src=
"@/assets/userBind/arrow.png"
@
click=
"$routeGo()"
>
<span>
融资明细
</span>
</div>
</h-header>
<div
class=
"center"
>
<div
class=
"total"
>
<div
class=
"sum"
>
<div>
融资额
</div>
<p>
{{
info
.
total_rental_sum
|
currency
}}
</p>
<img
src=
"@/assets/contractInquire/num.png"
alt=
""
>
<h3><span>
{{
info
.
lease_times
}}
期
</span></h3>
</div>
<div
class=
"single"
>
<div><h4>
保证金
</h4><p>
¥
{{
info
.
deposit
*
product_num
|
currency
}}
</p></div>
<div><h4>
首付款
</h4><p>
¥
{{
info
.
down_payment
*
product_num
|
currency
}}
</p></div>
<div><h4>
手续费
</h4><p>
¥
{{
info
.
lease_charge
*
product_num
|
currency
}}
</p></div>
</div>
</div>
<div
class=
"plan-name"
>
<div
class=
"header"
>
还款计划
</div>
<img
:class=
"
{'rotate':show}" src="@/assets/contractInquire/top.png" alt="" @click="showDetails">
</div>
</div>
<h-content
id=
"content"
class=
"plan-content"
>
<scroll
ref=
"scrollList"
>
<!-- 已结清 black , 逾期 orange , 还款中 blue , 未还款 green -->
<div
v-for=
"(item,index) in lists"
:key=
"index"
:class=
"
{'plan-list':true,'or':statu==='orange','bl':statu==='blue','gr':statu==='green'}">
<div
:class=
"
{'period':true,'orange':statu==='orange','blue':statu==='blue','green':statu==='green'}">
{{
index
+
1
}}
期
</div>
<img
v-if=
"statu === 'black'"
src=
"@/assets/contractInquire/black.png"
alt=
""
class=
"left"
>
<img
v-if=
"statu === 'orange'"
src=
"@/assets/contractInquire/orange.png"
alt=
""
class=
"left"
>
<img
v-if=
"statu === 'blue'"
src=
"@/assets/contractInquire/blue.png"
alt=
""
class=
"left"
>
<img
v-if=
"statu === 'green'"
src=
"@/assets/contractInquire/green.png"
alt=
""
class=
"left"
>
<div
class=
"time"
>
<p>
{{
item
.
due_date
.
substr
(
0
,
4
)
}}
</p>
<span>
{{
dateConverse
(
item
.
due_date
).
substr
(
5
,
10
)
}}
</span>
</div>
<div
class=
"name"
>
<p>
现金流项目
</p>
<p>
应还金额
</p>
</div>
<div
class=
"number"
>
<p>
租金
</p>
<span
:class=
"
{'orang':statu==='orange','blu':statu==='blue','gree':statu==='green'}">
{{
item
.
rental
*
product_num
|
currency
}}
</span>
</div>
<img
v-if=
"statu === 'black'"
src=
"@/assets/contractInquire/done.png"
alt=
""
class=
"status"
>
<img
v-if=
"statu === 'orange'"
src=
"@/assets/contractInquire/prompt.png"
alt=
""
class=
"status"
>
</div>
</scroll>
</h-content>
</h-view>
</
template
>
<
script
>
export
default
{
name
:
'RepayPlan'
,
components
:
{
},
data
()
{
return
{
// 已结清 black , 逾期 orange , 还款中 blue , 未还款 green
statu
:
'orange'
,
info
:
{},
lists
:
[],
// 每期还款数据
show
:
false
,
height
:
0
,
oldHeight
:
0
,
newHeight
:
0
,
product_num
:
''
,
// 产品数量
}
},
computed
:
{},
watch
:
{},
beforeRouteEnter
(
to
,
from
,
next
)
{
next
(
vm
=>
{
if
(
from
.
name
===
'ContractDetail'
)
{
vm
.
product_num
=
vm
.
$route
.
params
.
product_num
vm
.
getInfo
()
}
})
next
()
},
methods
:
{
dateConverse
(
date
)
{
return
date
.
replace
(
/
\/
/g
,
'-'
)
},
arrSort
(
property
)
{
return
function
(
a
,
b
)
{
var
value1
=
a
[
property
]
var
value2
=
b
[
property
]
return
value1
-
value2
}
},
showDetails
()
{
if
(
!
this
.
flag
)
{
this
.
flag
=
true
this
.
height
=
document
.
getElementsByClassName
(
'total'
)[
0
].
clientHeight
this
.
oldHeight
=
document
.
getElementById
(
'content'
).
clientHeight
this
.
newHeight
=
this
.
height
+
this
.
oldHeight
}
if
(
!
this
.
show
)
{
this
.
show
=
!
this
.
show
document
.
getElementById
(
'content'
).
style
.
height
=
this
.
newHeight
+
'px'
document
.
getElementsByClassName
(
'center'
)[
0
].
style
.
transition
=
'all .3s cubic-bezier(0.165, 0.84, 0.44, 1) 0s'
document
.
getElementsByClassName
(
'center'
)[
0
].
style
.
transform
=
'translate(0px, -'
+
this
.
height
+
'px) scale(1) translateZ(0px)'
document
.
getElementById
(
'content'
).
style
.
transition
=
'all .3s cubic-bezier(0.165, 0.84, 0.44, 1) 0s'
document
.
getElementById
(
'content'
).
style
.
transform
=
'translate(0px, -'
+
this
.
height
+
'px) scale(1) translateZ(0px)'
}
else
{
this
.
show
=
!
this
.
show
document
.
getElementById
(
'content'
).
style
.
height
=
this
.
oldHeight
+
'px'
document
.
getElementsByClassName
(
'center'
)[
0
].
style
.
transition
=
'all .3s cubic-bezier(0.165, 0.84, 0.44, 1) 0s'
document
.
getElementsByClassName
(
'center'
)[
0
].
style
.
transform
=
'translate(0px, -'
+
0
+
'px) scale(1) translateZ(0px)'
document
.
getElementById
(
'content'
).
style
.
transition
=
'all .3s cubic-bezier(0.165, 0.84, 0.44, 1) 0s'
document
.
getElementById
(
'content'
).
style
.
transform
=
'translate(0px, -'
+
0
+
'px) scale(1) translateZ(0px)'
}
},
getInfo
()
{
let
vm
=
this
let
url
=
process
.
env
.
basePath
+
'prj_cashflow_query'
let
param
=
{
project_id
:
vm
.
$route
.
params
.
project_id
,
}
vm
.
hlsPopup
.
showLoading
(
'数据加载中'
)
vm
.
hlsHttp
.
post
(
url
,
param
).
then
(
function
(
res
)
{
vm
.
hlsPopup
.
hideLoading
()
if
(
res
.
result
===
'S'
)
{
vm
.
lists
=
res
.
lists
.
sort
(
vm
.
arrSort
(
'times'
))
// 根据还款期排序
Object
.
assign
(
vm
.
info
,
res
.
info
)
}
})
},
repayQuery
()
{
let
vm
=
this
let
url
=
$config
.
basePath
+
'prd_repayment_plan'
let
param
=
{
quotation_id
:
vm
.
$route
.
params
.
quotation_id
,
}
vm
.
hlsPopup
.
showLoading
(
'数据加载中'
)
vm
.
hlsHttp
.
post
(
url
,
param
).
then
(
function
(
res
)
{
vm
.
hlsPopup
.
hideLoading
()
if
(
res
.
result
===
'S'
)
{
vm
.
info
=
res
.
info
}
else
{
hlsPopup
.
showLongCenter
(
res
.
message
)
}
})
},
},
}
</
script
>
<
style
lang=
'less'
>
#repay-plan {
.h-header {
background-color: #1D3FFF;
.h-header-btn {
img {
width: 16px;
height: 16px;
margin-left: 4px;
}
span {
font-family: PingFangSC-Semibold;
margin-left: 16px;
font-size: 17px;
letter-spacing: 0.61px;
line-height: 24px;
}
}
}
.total {
position: relative;
background-color: #1D3FFF;
height: 138px;
color: #fff;
background-image: url(../../assets/contractInquire/background.png);
background-size: cover;
.sum {
padding: 0 20px;
div {
font-family: PingFangSC-Semibold;
font-size: 14px;
padding-top: 12px;
padding-bottom: 10px;
}
p {
font-family: Verdana-BoldItalic;
font-size: 20px;
font-weight: 700;
font-style: italic;
margin-left: -4px;
}
img {
width: 75px;
position: absolute;
right: 20px;
top: 25px;
}
h3 {
position: absolute;
font-weight: 700;
margin: 0;
right: 42px;
top: 32px;
color: #1D3FFF;
font-family: PingFangSC-Semibold;
font-size: 14px;
span {
font-style: italic;
margin-right: 5px;
}
}
}
.single {
display: flex;
margin-top: 28px;
div {
flex: auto;
text-align: center;
h4 {
opacity: 0.8;
margin: 0;
font-family: PingFangSC-Regular;
font-size: 12px;
color: #FFFFFF;
margin-bottom: 8px;
}
p {
font-family: Verdana;
font-size: 14px;
color: #FFFFFF;
font-weight: 700;
}
}
}
}
.plan-name {
position: relative;
background-color: #1D3FFF;
margin-top: -2px;
img {
position: absolute;
right: 30px;
top: 12px;
height: 20px;
transition: 0s;
}
.rotate {
transform: rotate(180deg);
}
.header {
position: relative;
height: 48px;
line-height: 48px;
background-color: #fff;
font-family: PingFangSC-Semibold;
font-size: 14px;
color: #21254C;
font-weight: 700;
text-indent: 2em;
border-radius: 24px 0 0 0 ;
&:before {
content: "";
position: absolute;
top: 16px;
left: 15px;
width: 4px;
height: 16px;
background: #1D3FFF;
}
}
}
.plan-content {
background-color: #fff;
padding: 0px 11px;
.plan-list {
position:relative;
background-color: #f7f7f7;
height: 78px;
display: flex;
padding-right: 20px;
padding-left: 10px;
padding-top: 20px;
margin-bottom: 10px;
.left {
height: 30px;
position: absolute;
left: -8px;
top: 24px;
}
.status {
position: absolute;
width:18px;
right: -3px;
top: -5px;
}
.period {
position: absolute;
top: 0;
left: 0;
background: rgba(75,74,75,.5);
border-radius: 4px 0 4px 0;
// width: 30px;
padding: 1px 2px;
height: 20px;
color: #fff;
font-family: PingFangSC-Semibold;
font-size: 12px;
letter-spacing: 1.09px;
line-height: 20px;
text-align: center;
}
.orange {
background: rgba(253, 182, 47,.5);
}
.blue {
background-color: rgba(29, 63, 255,.5);
}
.green {
background-color: rgba(27, 162, 97,.5);
}
.time {
flex: 5;
p {
font-family: DIN-Regular;
font-size: 12px;
color: rgba(56,63,69,0.60);
margin-bottom: 4px;
margin-top: 8px;
}
span {
font-family: DIN-Bold;
font-weight: 700;
font-size: 14px;
color: #21254C;
}
}
.name {
flex: 9;
opacity: 0.6;
font-family: PingFangSC-Regular;
font-size: 13px;
color: #4B4A4B;
p {
margin-bottom: 17px;
}
}
.number {
flex: 9;
text-align: right;
font-family: PingFangSC-Regular;
font-size: 13px;
color: #4B4A4B;
p {
margin-bottom: 17px;
}
span.orang {
color: rgb(253, 182, 47);
font-weight: 700;
font-family: PingFangSC-Semibold;
}
span.blu {
color: #1D3FFF;
font-weight: 700;
font-family: PingFangSC-Semibold;
}
span.gree {
color: #1BA261;
}
}
}
.or {
background-color:rgba(253, 182, 47,.05);
}
.bl,.gr {
background: #FFFFFF;
box-shadow: 0 1px 5px 0 rgba(219,219,219,0.69);
}
}
}
</
style
>
src/pages/contractSigning/contract-signing.vue
View file @
68461fe7
<!--
* @Author: your name
* @Date: 2019-09-29 10:02:11
* @LastEditTime: 2019-11-0
3 17:35:19
* @LastEditTime: 2019-11-0
5 16:14:44
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
-->
...
...
@@ -25,53 +25,51 @@
</div>
<h-content
v-if=
"num === 1"
>
<div
v-for=
"(item,index) in submitLists"
:key=
"index"
class=
"contract-list"
>
<div
class=
"item"
>
<img
src=
"@/assets/constractSigning/Incoming.png"
alt=
""
style=
"height:18px"
>
<p
class=
"incoming-num"
>
进件号
</p>
<p
class=
"code"
>
{{
item
.
project_number
}}
</p>
<scroll
ref=
"scrollList"
>
<div
class=
"wrap"
>
<div
v-for=
"(item,index) in submitLists"
:key=
"index"
class=
"contract-lists"
>
<div
class=
"pro-code"
@
click=
"goDetails(item)"
>
<img
src=
"@/assets/distributorSign/fileIcon.png"
alt=
""
class=
"file-icon"
>
<p>
<span>
进件号
</span>
<span>
{{
item
.
project_number
}}
</span>
</p>
<img
src=
"@/assets/distributorSign/goDetails.png"
alt=
""
class=
"arrow"
>
</div>
<div
class=
"details"
@
click=
"goDetails(item)"
>
<div
class=
"option"
>
<p
class=
"name"
>
承租人
</p>
<p
class=
"full-name normal"
>
{{
item
.
bp_name
}}
</p>
</div>
<div
class=
"option"
>
<p
class=
"name"
>
合同租金
</p>
<p
class=
"normal money"
>
{{
item
.
total_price
|
currency
}}
</p>
<img
src=
"@/assets/distributorSign/goDetails.png"
alt=
""
>
</div>
<div
class=
"option"
>
<p
class=
"name"
>
申请时间
</p>
<p
class=
"normal"
>
{{
item
.
confirm_start_date
}}
</p>
<div
class=
"box"
>
<div><p>
承租人
</p><p>
{{
item
.
bp_name
}}
</p></div>
<div><p>
合同租金
</p><p
class=
"money"
>
{{
item
.
total_price
|
currency
}}
</p></div>
<div><p>
申请时间
</p><p>
{{
dateConverse
(
item
.
confirm_start_date
)
}}
</p></div>
</div>
</div>
</div>
</scroll>
</h-content>
<h-content
v-if=
"num === 2"
>
<div
v-for=
"(item,index) in approvedLists"
:key=
"index"
class=
"contract-list"
>
<div
class=
"item"
>
<img
src=
"@/assets/constractSigning/Incoming.png"
alt=
""
style=
"height:18px"
>
<p
class=
"incoming-num"
>
进件号
</p>
<p
class=
"code"
>
{{
item
.
project_number
}}
</p>
</div>
<div
class=
"details"
@
click=
"goDetails(item)"
>
<div
class=
"option"
>
<p
class=
"name"
>
承租人
</p>
<p
class=
"full-name normal"
>
{{
item
.
bp_name
}}
</p>
</div>
<div
class=
"option"
>
<p
class=
"name"
>
合同金额
</p>
<p
class=
"normal money"
>
{{
item
.
total_price
|
currency
}}
</p>
<img
src=
"@/assets/distributorSign/goDetails.png"
alt=
""
>
<scroll
ref=
"scrollList"
>
<div
class=
"wrap"
>
<div
v-for=
"(item,index) in approvedLists"
:key=
"index"
class=
"contract-lists"
>
<div
class=
"pro-code"
@
click=
"goDetails(item)"
>
<img
src=
"@/assets/distributorSign/fileIcon.png"
alt=
""
class=
"file-icon"
>
<p>
<span>
进件号
</span>
<span>
{{
item
.
project_number
}}
</span>
</p>
<img
src=
"@/assets/distributorSign/goDetails.png"
alt=
""
class=
"arrow"
>
</div>
<div
class=
"option"
>
<p
class=
"name"
>
申请时间
</p>
<p
class=
"normal"
>
{{
item
.
confirm_start_date
}}
</p>
<div
class=
"box"
>
<div><p>
承租人
</p><p>
{{
item
.
bp_name
}}
</p></div>
<div><p>
合同租金
</p><p
class=
"money"
>
{{
item
.
total_price
|
currency
}}
</p></div>
<div><p>
申请时间
</p><p>
{{
dateConverse
(
item
.
confirm_start_date
)
}}
</p></div>
</div>
</div>
</div>
</scroll>
</h-content>
</h-view>
</
template
>
...
...
@@ -109,6 +107,9 @@ export default {
// next()
},
methods
:
{
dateConverse
(
date
)
{
return
date
.
replace
(
/
\/
/g
,
'-'
)
},
// 合同查询
contractList
()
{
let
vm
=
this
...
...
@@ -142,22 +143,6 @@ export default {
<
style
lang=
"less"
type=
"text/less"
>
.contract-signing{
.h-header-btn {
img {
width: 16px;
height: 16px;
margin-left: 4px;
}
span {
font-family: PingFangSC-Semibold;
margin-left: 16px;
font-size: 17px;
letter-spacing: 0.61px;
line-height: 24px;
}
}
.tab-style{
display:flex;
...
...
@@ -236,98 +221,80 @@ export default {
}
}
}
.
content
{
padding-bottom: 14px
;
}
.contract-list
{
.
wrap
{
width: 100%
;
padding: 0 8px;
.contract-lists
{
width: 100%;
height: 120px;
// border: 1px solid #ccc;
background: #fff;
//margin-bottom: 8px;
.item {
margin-bottom: 8px;
.pro-code {
height: 44px;
width: 100%;
height: 34px;
background: rgba(00, 70, 156, 0.1);
display: flex;
flex-direction: row;
align-items: center;
img {
margin-left: 16.6px;
.file-icon {
width: 30px;
height: 30px;
margin-left: 10px;
}
.incoming-num {
p {
height: 44px;
line-height: 44px;
margin-left: 10px;
flex: 1;
font-family: PingFangSC-Semibold;
// width: 42px;
height: 20px;
font-weight: bolder;
line-height: 20px;
font-size: 14px;
color: #00469C;
font-size: 15px;
color: #4B4A4B;
letter-spacing: 0;
margin-left: 8.8px;
border-bottom: 1px solid #F3F3F7
}
.code {
font-family: PingFangSC-Semibold;
font-size: 14px;
color: #00469C;
margin-left: 8px;
font-weight: bolder
.arrow {
height: 16px;
width: 16px;
margin-right: 10px;
margin-left: -8px;
}
}
.details {
.box {
height: 96px;
margin-left: 50px;
margin-right: 19px;
div {
width: 100%;
height: 86px;
display: flex;
flex-direction: column;
justify-content: space-around;
padding: 6px 0;
.option {
width: 100%;
height: 18px;
display: flex;
flex-direction: row;
.name {
font-family: PingFangSC-Regular;
font-size: 13px;
color: rgba(56, 63, 69, 0.60);
width: 80px;
height: 18px;
line-height: 18px;
text-align: right
height: 32px;
position: relative;
.money {
font-family: Verdana-Bold;
font-size: 14px;
color: #4B4A4B;
letter-spacing: 0;
font-weight: 600;
}
.normal {
p {
height: 32px;
line-height: 32px;
position: absolute;
font-family: PingFangSC-Regular;
font-size: 13px;
color: #383F45;
height: 18px;
line-height: 18px;
margin-left: 8px;
font-size: 14px;
letter-spacing: 0;
}
.money {
color: #FCC800
;
p:nth-of-type(1){
left: 0;
color: rgba(75,74,75,0.60)
;
}
img {
margin-left: 47%
p:nth-of-type(2){
right: 0;
color: #4B4A4B;
}
}
.option:nth-of-type(2) {
position: relative;
img{
position: absolute;
right: 10px;
}
}
}
.content{
padding-bottom: 14px;
}
}
</
style
>
src/pages/distributorSign/contract-list.vue
View file @
68461fe7
...
...
@@ -20,53 +20,51 @@
</div>
</div>
<h-content
v-if=
"tabNum === 0"
>
<div
v-for=
"(item,index) in submitLists"
:key=
"index"
class=
"contract-list"
>
<div
class=
"item"
>
<img
src=
"@/assets/distributorSign/icon-进件合同.png"
alt=
""
>
<p
class=
"incoming-num"
>
进件号
</p>
<p
class=
"code"
>
{{
item
.
project_number
}}
</p>
<scroll
ref=
"scrollList"
>
<div
class=
"wrap"
>
<div
v-for=
"(item,index) in submitLists"
:key=
"index"
class=
"contract-lists"
>
<div
class=
"pro-code"
@
click=
"goDetails(item)"
>
<img
src=
"@/assets/distributorSign/fileIcon.png"
alt=
""
class=
"file-icon"
>
<p>
<span>
进件号
</span>
<span>
{{
item
.
project_number
}}
</span>
</p>
<img
src=
"@/assets/distributorSign/goDetails.png"
alt=
""
class=
"arrow"
>
</div>
<div
class=
"details"
@
click=
"goDetails(item)"
>
<div
class=
"option"
>
<p
class=
"name"
>
承租人
</p>
<p
class=
"full-name normal"
>
{{
item
.
bp_name
}}
</p>
</div>
<div
class=
"option"
>
<p
class=
"name"
>
合同金额
</p>
<p
class=
"normal money"
>
{{
item
.
total_price
|
currency
}}
</p>
<img
src=
"@/assets/distributorSign/goDetails.png"
alt=
""
>
</div>
<div
class=
"option"
>
<p
class=
"name"
>
申请时间
</p>
<p
class=
"normal"
>
{{
dateConverse
(
item
.
confirm_start_date
)
}}
</p>
<div
class=
"box"
>
<div><p>
承租人
</p><p>
{{
item
.
bp_name
}}
</p></div>
<div><p>
合同租金
</p><p
class=
"money"
>
{{
item
.
total_price
|
currency
}}
</p></div>
<div><p>
申请时间
</p><p>
{{
dateConverse
(
item
.
confirm_start_date
)
}}
</p></div>
</div>
</div>
</div>
</scroll>
</h-content>
<h-content
v-if=
"tabNum === 1"
>
<div
v-for=
"(item,index) in approvedLists"
:key=
"index"
class=
"contract-list"
>
<div
class=
"item"
>
<img
src=
"@/assets/distributorSign/icon-进件合同.png"
alt=
""
>
<p
class=
"incoming-num"
>
进件号
</p>
<p
class=
"code"
>
{{
item
.
project_number
}}
</p>
</div>
<div
class=
"details"
@
click=
"goDetails(item)"
>
<div
class=
"option"
>
<p
class=
"name"
>
承租人
</p>
<p
class=
"full-name normal"
>
{{
item
.
bp_name
}}
</p>
<scroll
ref=
"scrollList"
>
<div
class=
"wrap"
>
<div
v-for=
"(item,index) in approvedLists"
:key=
"index"
class=
"contract-lists"
>
<div
class=
"pro-code"
@
click=
"goDetails(item)"
>
<img
src=
"@/assets/distributorSign/fileIcon.png"
alt=
""
class=
"file-icon"
>
<p>
<span>
进件号
</span>
<span>
{{
item
.
project_number
}}
</span>
</p>
<img
src=
"@/assets/distributorSign/goDetails.png"
alt=
""
class=
"arrow"
>
</div>
<div
class=
"option"
>
<p
class=
"name"
>
合同金额
</p>
<p
class=
"normal money"
>
{{
parseFloat
(
item
.
total_price
).
toFixed
(
2
)
|
currency
}}
</p>
<img
src=
"@/assets/distributorSign/goDetails.png"
alt=
""
>
</div>
<div
class=
"option"
>
<p
class=
"name"
>
申请时间
</p>
<p
class=
"normal"
>
{{
dateConverse
(
item
.
confirm_start_date
)
}}
</p>
<div
class=
"box"
>
<div><p>
承租人
</p><p>
{{
item
.
bp_name
}}
</p></div>
<div><p>
合同租金
</p><p
class=
"money"
>
{{
item
.
total_price
|
currency
}}
</p></div>
<div><p>
申请时间
</p><p>
{{
dateConverse
(
item
.
confirm_start_date
)
}}
</p></div>
</div>
</div>
</div>
</scroll>
</h-content>
</h-view>
...
...
@@ -127,19 +125,76 @@ export default {
</
script
>
<
style
lang=
"less"
scoped
>
#sign {
.h-header-btn {
img {
width: 16px;
height: 16px;
margin-left: 4px;
}
.wrap {
width: 100%;
padding: 0 8px;
.contract-lists {
width: 100%;
background: #fff;
margin-bottom: 8px;
.pro-code {
height: 44px;
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
span {
.file-icon {
width: 30px;
height: 30px;
margin-left: 10px;
}
p {
height: 44px;
line-height: 44px;
margin-left: 10px;
flex: 1;
font-family: PingFangSC-Semibold;
margin-left: 16px;
font-size: 17px;
letter-spacing: 0.61px;
line-height: 24px;
font-size: 15px;
color: #4B4A4B;
letter-spacing: 0;
border-bottom: 1px solid #F3F3F7
}
.arrow {
height: 16px;
width: 16px;
margin-right: 10px;
margin-left: -8px;
}
}
.box {
height: 96px;
margin-left: 50px;
margin-right: 19px;
div {
width: 100%;
height: 32px;
position: relative;
.money {
font-family: Verdana-Bold;
font-size: 14px;
color: #4B4A4B;
letter-spacing: 0;
font-weight: 600;
}
p {
height: 32px;
line-height: 32px;
position: absolute;
font-family: PingFangSC-Regular;
font-size: 14px;
letter-spacing: 0;
}
p:nth-of-type(1){
left: 0;
color: rgba(75,74,75,0.60);
}
p:nth-of-type(2){
right: 0;
color: #4B4A4B;
}
}
}
}
}
...
...
@@ -180,100 +235,6 @@ export default {
}
}
.content {
padding-bottom: 14px;
}
.contract-list {
width: 100%;
height: 120px;
// border: 1px solid #ccc;
background: #fff;
//margin-bottom: 8px;
.item {
width: 100%;
height: 34px;
background: rgba(00, 70, 156, 0.1);
display: flex;
flex-direction: row;
align-items: center;
img {
margin-left: 16.6px;
}
.incoming-num {
font-family: PingFangSC-Semibold;
// width: 42px;
height: 20px;
font-weight: bolder;
line-height: 20px;
font-size: 14px;
color: #00469C;
letter-spacing: 0;
margin-left: 8.8px;
}
.code {
font-family: PingFangSC-Semibold;
font-size: 14px;
color: #00469C;
margin-left: 8px;
font-weight: bolder
}
}
.details {
width: 100%;
height: 86px;
display: flex;
flex-direction: column;
justify-content: space-around;
padding: 6px 0;
.option {
width: 100%;
height: 18px;
display: flex;
flex-direction: row;
.name {
font-family: PingFangSC-Regular;
font-size: 13px;
color: rgba(56, 63, 69, 0.60);
width: 80px;
height: 18px;
line-height: 18px;
text-align: right
}
.normal {
font-family: PingFangSC-Regular;
font-size: 13px;
color: #383F45;
height: 18px;
line-height: 18px;
margin-left: 8px;
}
.money {
color: #FCC800;
}
img {
margin-left: 47%
}
}
.option:nth-of-type(2) {
position: relative;
img{
position: absolute;
right: 10px;
}
}
}
}
}
</
style
>
src/pages/financingTrial/financing-details.vue
View file @
68461fe7
...
...
@@ -2,7 +2,7 @@
* @Descrip""/>User Settings Edit
* @Author: your name
* @Date: 2019-09-29 20:31:00
* @LastEditTime: 2019-11-0
1 12:27:20
* @LastEditTime: 2019-11-0
5 15:35:42
* @LastEditors: Please set LastEditors
-->
<
template
>
...
...
@@ -23,6 +23,11 @@
<div
slot=
"name"
class=
"font-color"
>
设备总价
</div>
<input
slot=
"content"
v-model=
"equip_price"
placeholder=
"请输入设备总价"
>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
融资金额
</div>
<span
v-if=
"!equip_price"
slot=
"content"
class=
"autoColor"
>
融资金额自动填充
</span>
<span
v-if=
"equip_price"
slot=
"content"
>
{{
equip_price
-
equip_price
*
info
.
down_payment_ratio_n
.
replace
(
"%"
,
""
)
/
100
|
currency
}}
</span>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
首付款比例
</div>
<input
slot=
"content"
v-model=
"info.down_payment_ratio_n"
placeholder=
"30%"
>
...
...
@@ -48,7 +53,20 @@
<item>
<div
slot=
"name"
class=
"font-color"
>
手续费
</div>
<span
v-if=
"!equip_price"
slot=
"content"
class=
"autoColor"
>
手续费金额自动填充
</span>
<span
v-if=
"equip_price"
slot=
"content"
>
{{
equip_price
*
info
.
lease_charge_ratio_n
.
replace
(
"%"
,
""
)
/
100
|
currency
}}
</span>
<span
v-if=
"equip_price"
slot=
"content"
>
{{
(
equip_price
-
equip_price
*
info
.
down_payment_ratio_n
.
replace
(
"%"
,
""
)
/
100
)
*
(
info
.
lease_charge_ratio_n
.
replace
(
"%"
,
""
)
/
100
)
|
currency
}}
</span>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
保险押金
</div>
<input
slot=
"content"
v-model=
"insurance_fee"
placeholder=
"请输入保险押金"
>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
GPS费用
</div>
<input
slot=
"content"
v-model=
"gps_fee"
placeholder=
"请输入GPS费用"
>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
首次付款合计
</div>
<span
v-if=
"!equip_price"
slot=
"content"
class=
"autoColor"
>
首次付款合计金额自动填充
</span>
<span
v-if=
"equip_price"
slot=
"content"
>
{{
equip_price
*
info
.
down_payment_ratio_n
.
replace
(
"%"
,
""
)
/
100
+
equip_price
*
info
.
deposit_ratio_n
.
replace
(
"%"
,
""
)
/
100
+
(
equip_price
-
equip_price
*
info
.
down_payment_ratio_n
.
replace
(
"%"
,
""
)
/
100
)
*
(
info
.
lease_charge_ratio_n
.
replace
(
"%"
,
""
)
/
100
)
|
currency
}}
</span>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
预计付款日
</div>
...
...
@@ -68,6 +86,10 @@
<div
slot=
"name"
class=
"font-color"
>
年利率
</div>
<input
slot=
"content"
v-model=
"info.int_rate_n"
placeholder=
"6.5%"
>
</item>
<!--
<item>
<div
slot=
"name"
class=
"font-color"
>
产品数量
</div>
<input
slot=
"content"
v-model=
"product_num"
placeholder=
"请输入产品数量"
>
</item>
-->
<item
:showArrow=
"true"
@
click
.
native=
"goRepay"
>
<div
slot=
"name"
class=
"font-color"
>
查看还款计划
</div>
</item>
...
...
@@ -97,9 +119,12 @@ export default {
return
{
info
:
{},
dates
:
''
,
gps_fee
:
''
,
// gps费用
insurance_fee
:
''
,
// 保险押金
quotation_id
:
''
,
// 试算成功返回id
trial_flag
:
false
,
// 检测是否通过试算
equip_price
:
''
,
equip_price
:
null
,
product_num
:
''
,
price_date_to
:
''
,
product_plan_id
:
''
,
}
...
...
src/pages/productQuery/product-detailed.vue
View file @
68461fe7
...
...
@@ -2,7 +2,7 @@
* @Descrip: 产品明细
* @Author: your name
* @Date: 2019-10-15 14:30:00
* @LastEditTime: 2019-11-04 19:
00:2
4
* @LastEditTime: 2019-11-04 19:
12:4
4
* @LastEditors: Please set LastEditors
-->
<
template
>
...
...
@@ -112,6 +112,7 @@ export default {
if
(
from
.
name
===
'ProductList'
||
from
.
name
===
'MyProductList'
)
{
next
(
vm
=>
{
vm
.
tabNum
=
0
vm
.
slide
=
false
vm
.
product_id
=
vm
.
$route
.
params
.
product_id
vm
.
bp_id
=
vm
.
$route
.
params
.
bp_id
vm
.
baseMsg
()
...
...
@@ -136,10 +137,10 @@ export default {
methods
:
{
returnGo
()
{
//
this.$router.replace({
//
name: 'ProductList',
//
})
this
.
$router
.
go
(
-
1
)
this
.
$router
.
replace
({
name
:
'ProductList'
,
})
//
this.$router.go(-1)
},
vueTouch
:
function
(
s
,
e
)
{
console
.
log
(
s
,
e
)
...
...
src/pages/productQuery/product-list.vue
View file @
68461fe7
...
...
@@ -7,7 +7,7 @@
<h-view
id=
"prolist"
class=
"public-style"
title=
"产品查询"
>
<h-header
:proportion=
"[5,1,1]"
class=
"bar-custom"
>
<div
slot=
"left"
class=
"h-header-btn"
>
<img
src=
"@/assets/userBind/arrow.png"
@
click=
"
$route
Go()"
>
<img
src=
"@/assets/userBind/arrow.png"
@
click=
"
return
Go()"
>
<span>
产品信息
</span>
</div>
</h-header>
...
...
@@ -62,6 +62,12 @@ export default {
},
methods
:
{
returnGo
()
{
this
.
$router
.
replace
({
name
:
'QueryHome'
,
})
// this.$router.go(-1)
},
// 根据产品线查询列表
proQuery
()
{
let
vm
=
this
...
...
src/pages/productQuery/query-home.vue
View file @
68461fe7
...
...
@@ -2,14 +2,14 @@
* @Descrip: 查询首页
* @Author: your name
* @Date: 2019-10-15 14:30:00
* @LastEditTime: 2019-11-04 1
1:15
:13
* @LastEditTime: 2019-11-04 1
9:08
:13
* @LastEditors: Please set LastEditors
-->
<
template
>
<h-view
id=
"query"
class=
"public-style"
title=
"产品查询"
>
<h-header
:proportion=
"[5,1,1]"
class=
"bar-custom"
>
<div
slot=
"left"
class=
"h-header-btn"
>
<img
src=
"@/assets/userBind/arrow.png"
@
click=
"
$route
Go()"
>
<img
src=
"@/assets/userBind/arrow.png"
@
click=
"
return
Go()"
>
<span>
产品信息
</span>
</div>
</h-header>
...
...
@@ -74,6 +74,12 @@ export default {
},
methods
:
{
returnGo
()
{
this
.
$router
.
replace
({
name
:
'HomePage'
,
})
// this.$router.go(-1)
},
// 产品查询
proQuery
()
{
let
vm
=
this
...
...
src/router/index.js
View file @
68461fe7
...
...
@@ -2,7 +2,7 @@
* @Description: In User Settings Edit
* @Author: your name
* @Date: 2019-09-24 12:34:06
* @LastEditTime: 2019-1
0-30 11:24:48
* @LastEditTime: 2019-1
1-05 11:19:33
* @LastEditors: Please set LastEditors
*/
import
Vue
from
'vue'
...
...
@@ -49,6 +49,7 @@ import ContractSigning from '../pages/contractSigning/contract-signing'
import
ContractDetail
from
'@/pages/ContractSigning/contract-detail'
import
ContractContent
from
'@/pages/ContractSigning/contract-content'
import
EntryInfo
from
'@/pages/ContractSigning/entry-info'
import
ContractRepayPlan
from
'@/pages/ContractSigning/contract-repay-plan'
// 首付款支付
import
FirstPay
from
'../pages/pay/firstPay/first-pay'
import
PayEntry
from
'@/pages/pay/firstPay/pay-entry'
...
...
@@ -195,6 +196,7 @@ export default new Router({
{
path
:
'/contract-detail'
,
component
:
ContractDetail
,
name
:
'ContractDetail'
,
meta
:
{
keepAlive
:
true
}},
{
path
:
'/contract-content'
,
component
:
ContractContent
,
name
:
'ContractContent'
,
meta
:
{
keepAlive
:
true
}},
{
path
:
'/entry-info'
,
component
:
EntryInfo
,
name
:
'EntryInfo'
,
meta
:
{
keepAlive
:
true
}},
{
path
:
'/contract-repay-plan'
,
component
:
ContractRepayPlan
,
name
:
'ContractRepayPlan'
,
meta
:
{
keepAlive
:
true
}},
// 首付款支付
{
path
:
'/first-pay'
,
component
:
FirstPay
,
name
:
'FirstPay'
,
meta
:
{
keepAlive
:
true
}},
{
path
:
'/pay-entry'
,
component
:
PayEntry
,
name
:
'PayEntry'
,
meta
:
{
keepAlive
:
true
}},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment