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
1b2c7b7a
Commit
1b2c7b7a
authored
Dec 18, 2023
by
wjc
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
融租方案新增
parent
0744c914
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1831 additions
and
59 deletions
+1831
-59
contract-detail.vue
src/pages/contractSigning/contract-detail.vue
+23
-56
contract-new.vue
src/pages/contractSigning/contract-new.vue
+1795
-0
contract-signing.vue
src/pages/contractSigning/contract-signing.vue
+11
-3
index.js
src/router/index.js
+2
-0
No files found.
src/pages/contractSigning/contract-detail.vue
View file @
1b2c7b7a
...
...
@@ -94,7 +94,7 @@
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
是否征信授权
</div>
<h-switch
slot=
"content"
v-model=
"baseInfo.
auth
_flag"
/>
<h-switch
slot=
"content"
v-model=
"baseInfo.
credit
_flag"
/>
</item>
</list-item>
<div
class=
"equipment-list"
>
法定代表人
</div>
...
...
@@ -113,7 +113,7 @@
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
联系地址
</div>
<
span
slot=
"content"
>
{{
baseInfo
.
living_address
}}
</span
>
<
textarea
slot=
"content"
v-model=
"baseInfo.living_address"
></textarea
>
</item>
</list-item>
<div
class=
"equipment-list"
>
...
...
@@ -174,7 +174,7 @@
<div
slot=
"name"
class=
"font-color"
>
纳税人类型
</div>
<input
slot=
"content"
v-model=
"
invoic
eInfo.taxpayer_type_n"
v-model=
"
bas
eInfo.taxpayer_type_n"
type=
"text"
readonly
placeholder=
"请选择"
...
...
@@ -185,7 +185,7 @@
<div
slot=
"name"
class=
"font-color"
>
发票类型
</div>
<input
slot=
"content"
v-model=
"
invoic
eInfo.invoice_kind_n"
v-model=
"
bas
eInfo.invoice_kind_n"
type=
"text"
readonly
placeholder=
"请选择"
...
...
@@ -194,43 +194,43 @@
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
发票抬头
</div>
<input
slot=
"content"
v-model=
"
invoic
eInfo.invoice_title"
type=
"text"
placeholder=
"请输入发票抬头"
>
<input
slot=
"content"
v-model=
"
bas
eInfo.invoice_title"
type=
"text"
placeholder=
"请输入发票抬头"
>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
发票地址
</div>
<textarea
slot=
"content"
ref=
"myTestarea"
v-model=
"
invoic
eInfo.invoice_adds"
cols=
"22"
slot=
"content"
ref=
"myTestarea"
v-model=
"
bas
eInfo.invoice_adds"
cols=
"22"
rows=
"1"
type=
"text"
placeholder=
"请输入发票地址"
@
input=
"addRows(
invoic
eInfo.invoice_adds)"
/>
type=
"text"
placeholder=
"请输入发票地址"
@
input=
"addRows(
bas
eInfo.invoice_adds)"
/>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
开户电话
</div>
<input
slot=
"content"
v-model=
"
invoic
eInfo.invoice_tel"
type=
"text"
placeholder=
"请输入开户电话"
>
<input
slot=
"content"
v-model=
"
bas
eInfo.invoice_tel"
type=
"text"
placeholder=
"请输入开户电话"
>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
发票开户行
</div>
<textarea
slot=
"content"
ref=
"myTestareaLive"
v-model=
"
invoic
eInfo.open_bank"
v-model=
"
bas
eInfo.open_bank"
cols=
"22"
rows=
"1"
type=
"text"
placeholder=
"请输入发票开户行"
@
input=
"addRowsLive(
invoic
eInfo.open_bank)"
@
input=
"addRowsLive(
bas
eInfo.open_bank)"
/>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
开户行账号
</div>
<input
slot=
"content"
v-model=
"
invoic
eInfo.open_account"
type=
"text"
placeholder=
"请输入开户行账号"
>
<input
slot=
"content"
v-model=
"
bas
eInfo.open_account"
type=
"text"
placeholder=
"请输入开户行账号"
>
</item>
<item>
<
!--
<
item>
<div
slot=
"name"
class=
"font-color"
>
纳税人识别号
</div>
<input
slot=
"content"
v-model=
"invoiceInfo.organization_code"
placeholder=
"纳税人识别号"
type=
"text"
readonly
>
</item>
</item>
-->
</list-item>
<div
class=
"equipment-list"
>
基本账户信息
...
...
@@ -341,7 +341,7 @@
<item>
<div
slot=
"name"
class=
"font-color"
>
首付款
</div>
<!--
<span
slot=
"content"
>
{{
info
.
down_payment
*
info
.
product_num
|
currency
}}
</span>
-->
<CurrencyInput
slot=
"content"
v-model=
"quotationInfo.down_payment"
:readonly=
"true"
placeholder=
"请输入首付款"
/>
<CurrencyInput
slot=
"content"
v-model=
"quotationInfo.down_payment"
placeholder=
"请输入首付款"
/>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
保证金比例
</div>
...
...
@@ -481,7 +481,7 @@ export default {
bp_class
:
this
.
$route
.
params
.
item
.
bp_class
,
// 承租人性质(自然人,企业)
info
:
{},
// 租赁信息
baseInfo
:
{
auth
_flag
:
true
,
credit
_flag
:
true
,
},
// 基本信息
project_id
:
''
,
bank_flag
:
false
,
...
...
@@ -511,18 +511,7 @@ export default {
legalPic
:
''
,
// 法人授权书图片
abc_deduction_flag
:
'N'
,
// 代扣授权书状态
signCheckFlag
:
false
,
// 签约校验,为true已认证通过可进行签约,否则不可签约
invoiceInfo
:
{
invoice_kind
:
''
,
invoice_kind_n
:
''
,
taxpayer_type
:
''
,
invoice_title
:
''
,
taxpayer_type_n
:
''
,
organization_code
:
''
,
invoice_adds
:
''
,
invoice_tel
:
''
,
open_bank
:
''
,
open_account
:
''
,
},
bank_lists
:
{
bank_account_num
:
''
,
// 卡号
bank_account_name
:
''
,
// 账户姓名
...
...
@@ -699,25 +688,7 @@ export default {
}
})
},
invoiceQuery
()
{
let
vm
=
this
let
url
=
process
.
env
.
basePath
+
'bp_invoice_query'
let
param
=
{
bp_id
:
vm
.
bp_id
,
}
vm
.
hlsPopup
.
showLoading
(
'请稍候'
)
vm
.
hlsHttp
.
post
(
url
,
param
).
then
(
function
(
res
)
{
vm
.
hlsPopup
.
hideLoading
()
if
(
res
.
result
===
'S'
)
{
console
.
log
(
'invoiceInfo'
,
res
.
info
)
vm
.
invoiceInfo
=
res
.
info
vm
.
invoiceInfo
.
invoice_title
=
JSON
.
parse
(
window
.
localStorage
.
getItem
(
'handleUser'
)).
bp_name
// Object.assign(vm.invoiceInfo, res.info)
vm
.
addRows
(
vm
.
invoiceInfo
.
invoice_adds
)
vm
.
addRowsLive
(
vm
.
invoiceInfo
.
open_bank
)
}
})
},
addRows
(
e
)
{
if
(
e
)
{
...
...
@@ -834,15 +805,11 @@ export default {
object
:
{},
returnItem
:
function
(
index
,
obj
)
{
debugger
console
.
log
(
vm
.
bpTenantList
[
index
])
//
console.log(vm.bpTenantList[index])
vm
.
baseInfo
=
{
...
vm
.
baseInfo
,
...
vm
.
bpTenantList
[
index
],
}
vm
.
invoiceInfo
=
{
...
vm
.
invoiceInfo
,
...
vm
.
bpTenantList
[
index
],
}
},
})
},
...
...
@@ -915,9 +882,9 @@ export default {
code
:
'bp_type'
,
object
:
{},
returnItem
:
function
(
index
,
obj
)
{
vm
.
$set
(
vm
.
invoic
eInfo
,
'taxpayer_type'
,
obj
.
bp_type
)
vm
.
$set
(
vm
.
invoic
eInfo
,
'taxpayer_type_n'
,
obj
.
bp_type_n
)
console
.
log
(
'obj'
,
vm
.
invoic
eInfo
)
vm
.
$set
(
vm
.
bas
eInfo
,
'taxpayer_type'
,
obj
.
bp_type
)
vm
.
$set
(
vm
.
bas
eInfo
,
'taxpayer_type_n'
,
obj
.
bp_type_n
)
console
.
log
(
'obj'
,
vm
.
bas
eInfo
)
},
})
},
...
...
@@ -928,8 +895,8 @@ export default {
code
:
'bp_type'
,
object
:
{},
returnItem
:
function
(
index
,
obj
)
{
vm
.
$set
(
vm
.
invoic
eInfo
,
'invoice_kind'
,
obj
.
bp_type
)
vm
.
$set
(
vm
.
invoic
eInfo
,
'invoice_kind_n'
,
obj
.
bp_type_n
)
vm
.
$set
(
vm
.
bas
eInfo
,
'invoice_kind'
,
obj
.
bp_type
)
vm
.
$set
(
vm
.
bas
eInfo
,
'invoice_kind_n'
,
obj
.
bp_type_n
)
},
})
},
...
...
src/pages/contractSigning/contract-new.vue
0 → 100755
View file @
1b2c7b7a
<
template
>
<h-view
id=
"contract-details"
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=
"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>
</div>
<h-content
v-if=
"num === 0"
class=
"business-condition"
>
<list-item
:item-height=
"44"
class=
"second-part"
>
<item>
<div
slot=
"name"
class=
"font-color"
>
业务经办
</div>
<input
slot=
"content"
v-model=
"baseInfo.bp_user_id_n"
readonly
>
</item>
</list-item>
<div
class=
"equipment-list"
>
承租人信息
</div>
<list-item
:item-height=
"44"
class=
"second-part"
>
<item>
<div
slot=
"name"
class=
"font-color"
>
公司名称
</div>
<input
slot=
"content"
v-model=
"baseInfo.bp_name"
type=
"text"
readonly
placeholder=
"请选择"
@
click=
"selectBpTenant"
>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
营业执照号
</div>
<input
slot=
"content"
v-model=
"baseInfo.organization_code"
>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
注册资本
</div>
<input
slot=
"content"
v-model=
"baseInfo.registered_capital"
>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
注册地址
</div>
<textarea
slot=
"content"
v-model=
"baseInfo.registered_place"
/>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
经营地址
</div>
<input
slot=
"content"
v-model=
"baseInfo.business_address"
>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
固定电话
</div>
<input
slot=
"content"
v-model=
"baseInfo.phone"
>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
是否授权
</div>
<h-switch
slot=
"content"
v-model=
"baseInfo.auth_flag"
/>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
是否征信授权
</div>
<h-switch
slot=
"content"
v-model=
"baseInfo.credit_flag"
/>
</item>
</list-item>
<div
class=
"equipment-list"
>
法定代表人
</div>
<list-item
:item-height=
"44"
class=
"second-part"
>
<item>
<div
slot=
"name"
class=
"font-color"
>
姓名
</div>
<input
slot=
"content"
v-model=
"baseInfo.legal_person"
readonly
>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
证件号
</div>
<input
slot=
"content"
v-model=
"baseInfo.id_card_no"
readonly
>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
手机号码
</div>
<input
slot=
"content"
v-model=
"baseInfo.cell_phone"
readonly
>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
联系地址
</div>
<textarea
slot=
"content"
v-model=
"baseInfo.living_address"
/>
</item>
</list-item>
<div
class=
"equipment-list"
>
采矿权许可证
</div>
<list-item
:item-height=
"76"
>
<div
class=
"house spec"
>
<!--待上传图片列表-->
<div
v-for=
"(item, index) in upload_list_mining"
v-if=
"item.check_id === miningCheckId"
:key=
"index+'info2'"
class=
"card-upload"
>
<img
:src=
"item.picture"
@
click=
"showBigPicture(item.picture)"
>
<div
class=
"close"
@
click=
"remove_pic(item.attachment_id,index,'mining')"
>
<img
src=
"@/assets/userBind/deleteIcon.png"
>
</div>
</div>
<!--特批 从服务器上下载的图片-->
<div
v-for=
"(pic, index) in dowload_list_mining"
:key=
"index+'mining'"
>
<div
v-if=
"pic.check_id==miningCheckId"
:key=
"index+'info3'"
class=
"card-upload"
>
<img
:src=
"pic.url"
@
click=
"showBigPicture(pic.url)"
>
<div
class=
"close"
@
click=
"delete_pic(pic.attachment_id,'mining')"
>
<img
src=
"@/assets/userBind/deleteIcon.png"
>
</div>
</div>
</div>
<div
class=
"card-upload plus"
@
click=
"ocrShow('采矿权许可证',miningCheckId,'mining')"
>
<img
src=
"@/assets/userBind/camera.png"
class=
"upload-btn"
>
</div>
</div>
</list-item>
<div
class=
"equipment-list"
>
开票信息
</div>
<list-item
:item-height=
"44"
>
<item
:showArrow=
"true"
>
<div
slot=
"name"
class=
"font-color"
>
纳税人类型
</div>
<input
slot=
"content"
v-model=
"baseInfo.taxpayer_type_n"
type=
"text"
readonly
placeholder=
"请选择"
@
click=
"selectTaxpayer"
>
</item>
<item
:showArrow=
"true"
>
<div
slot=
"name"
class=
"font-color"
>
发票类型
</div>
<input
slot=
"content"
v-model=
"baseInfo.invoice_kind_n"
type=
"text"
readonly
placeholder=
"请选择"
@
click=
"selectInvoiceType"
>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
发票抬头
</div>
<input
slot=
"content"
v-model=
"baseInfo.invoice_title"
type=
"text"
placeholder=
"请输入发票抬头"
>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
发票地址
</div>
<textarea
slot=
"content"
ref=
"myTestarea"
v-model=
"baseInfo.invoice_adds"
cols=
"22"
rows=
"1"
type=
"text"
placeholder=
"请输入发票地址"
@
input=
"addRows(baseInfo.invoice_adds)"
/>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
开户电话
</div>
<input
slot=
"content"
v-model=
"baseInfo.invoice_tel"
type=
"text"
placeholder=
"请输入开户电话"
>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
发票开户行
</div>
<textarea
slot=
"content"
ref=
"myTestareaLive"
v-model=
"baseInfo.open_bank"
cols=
"22"
rows=
"1"
type=
"text"
placeholder=
"请输入发票开户行"
@
input=
"addRowsLive(baseInfo.open_bank)"
/>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
开户行账号
</div>
<input
slot=
"content"
v-model=
"baseInfo.open_account"
type=
"text"
placeholder=
"请输入开户行账号"
>
</item>
<!--
<item>
<div
slot=
"name"
class=
"font-color"
>
纳税人识别号
</div>
<input
slot=
"content"
v-model=
"invoiceInfo.organization_code"
placeholder=
"纳税人识别号"
type=
"text"
readonly
>
</item>
-->
</list-item>
<div
class=
"equipment-list"
>
基本账户信息
</div>
<list-item
:item-height=
"44"
>
<item>
<div
slot=
"name"
>
账户名称
</div>
<input
slot=
"content"
v-model=
"baseInfo.bank_account_name"
placeholder=
"请输入账户名称"
>
</item>
<item>
<div
slot=
"name"
>
开户行
</div>
<input
slot=
"content"
v-model=
"baseInfo.bank_full_name"
placeholder=
"请输入开户行"
>
</item>
<item>
<div
slot=
"name"
>
银行账号
</div>
<input
slot=
"content"
v-model=
"baseInfo.bank_account_num"
placeholder=
"请输入银行账号"
>
</item>
<item>
<div
slot=
"name"
>
联行号
</div>
<input
slot=
"content"
v-model=
"baseInfo.bank_branch_name"
placeholder=
"请输入联行号"
>
</item>
</list-item>
<div
class=
"equipment-list"
>
联系人信息
</div>
<list-item
:item-height=
"44"
>
<item>
<div
slot=
"name"
>
联系人姓名
</div>
<input
slot=
"content"
v-model=
"baseInfo.contact_name"
placeholder=
"请输入联系人姓名"
>
</item>
<item>
<div
slot=
"name"
>
身份证号码
</div>
<input
slot=
"content"
v-model=
"baseInfo.contact_card_no"
placeholder=
"请输入身份证号码"
>
</item>
<item>
<div
slot=
"name"
>
联系电话
</div>
<input
slot=
"content"
v-model=
"baseInfo.contact_tel"
placeholder=
"请输入联系电话"
>
</item>
<item>
<div
slot=
"name"
>
联系地址
</div>
<input
slot=
"content"
v-model=
"baseInfo.contact_adds"
placeholder=
"请输入联系地址"
>
</item>
</list-item>
<div
class=
"equipment-list"
>
财务报表
</div>
<list-item
:item-height=
"76"
>
<div
class=
"house spec"
>
<!--待上传图片列表-->
<div
v-for=
"(item, index) in upload_list_report"
v-if=
"item.check_id === reportCheckId"
:key=
"index+'info2'"
class=
"card-upload"
>
<img
:src=
"item.picture"
@
click=
"showBigPicture(item.picture)"
>
<div
class=
"close"
@
click=
"remove_pic(item.attachment_id,index,'report')"
>
<img
src=
"@/assets/userBind/deleteIcon.png"
>
</div>
</div>
<!--特批 从服务器上下载的图片-->
<div
v-for=
"(pic, index) in dowload_list_report"
:key=
"index+'report'"
>
<div
v-if=
"pic.check_id==reportCheckId"
:key=
"index+'info3'"
class=
"card-upload"
>
<img
:src=
"pic.url"
@
click=
"showBigPicture(pic.url)"
>
<div
class=
"close"
@
click=
"delete_pic(pic.attachment_id,'report')"
>
<img
src=
"@/assets/userBind/deleteIcon.png"
>
</div>
</div>
</div>
<div
class=
"card-upload plus"
@
click=
"ocrShow('财务报表',reportCheckId,'report')"
>
<img
src=
"@/assets/userBind/camera.png"
class=
"upload-btn"
>
</div>
</div>
</list-item>
</h-content>
<h-content
v-if=
"num === 1"
>
<list-item
:item-height=
"44"
class=
"second-part"
>
<item>
<div
slot=
"name"
class=
"font-color"
>
设备总价
</div>
<CurrencyInput
slot=
"content"
v-model=
"quotationInfo.equip_price"
placeholder=
"请输入设备总价"
/>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
融资金额
</div>
<CurrencyInput
slot=
"content"
v-model=
"quotationInfo.finance_amount"
placeholder=
"请输入融资金额"
/>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
首付款
</div>
<CurrencyInput
slot=
"content"
v-model=
"quotationInfo.down_payment"
placeholder=
"请输入首付款"
/>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
保证金比例
</div>
<RateInput
slot=
"content"
v-model=
"quotationInfo.deposit_ratio_n"
placeholder=
"请输入保证金比例"
/>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
保证金
</div>
<CurrencyInput
slot=
"content"
v-model=
"quotationInfo.deposit"
placeholder=
"请输入保证金"
/>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
手续费比例
</div>
<RateInput
slot=
"content"
v-model=
"quotationInfo.lease_charge_ratio_n"
placeholder=
"请输入手续费比例"
/>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
手续费
</div>
<currency-input
slot=
"content"
v-model=
"quotationInfo.lease_charge"
placeholder=
"请输入手续费"
/>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
保险押金
</div>
<!--
<span
slot=
"content"
>
{{
info
.
insurance_fee
*
info
.
product_num
|
currency
}}
</span>
-->
<CurrencyInput
slot=
"content"
v-model=
"quotationInfo.insurance_fee"
placeholder=
"请输入保险押金"
/>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
GPS费用
</div>
<CurrencyInput
slot=
"content"
v-model=
"quotationInfo.gps_fee"
placeholder=
"请输入GPS费用"
/>
</item>
<item>
<div
slot=
"name"
>
首次付款合计
</div>
<CurrencyInput
slot=
"content"
v-model=
"quotationInfo.first_pay"
placeholder=
"请输入首次付款合计"
/>
</item>
<item
:show-arrow=
"true"
@
click
.
native=
"showTime('YYYY-MM-DD')"
>
<div
slot=
"name"
class=
"font-color"
>
预计付款日
</div>
<div
slot=
"content"
class=
"autoColor"
>
{{
quotationInfo
.
lease_start_date
}}
</div>
</item>
<item
:show-arrow=
"true"
@
click
.
native=
"periodPull"
>
<div
slot=
"name"
class=
"font-color"
>
还款周期
</div>
<span
slot=
"content"
>
{{
quotationInfo
.
annual_pay_times_n
}}
</span>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
租赁期数
</div>
<input
slot=
"content"
v-model=
"quotationInfo.lease_times"
placeholder=
"请输入租赁期数"
type=
"number"
>
</item>
<item>
<div
slot=
"name"
class=
"font-color"
>
年利率
</div>
<RateInput
slot=
"content"
v-model=
"quotationInfo.int_rate_n"
placeholder=
"请输入年利率"
/>
</item>
</list-item>
</h-content>
<bottom-tab
class=
"add-box"
>
<tab-button
class=
"next"
@
click
.
native=
"handleSave()"
>
<img
src=
"@/assets/intoApproval/approve.png"
>
保存
</tab-button>
</bottom-tab>
</h-view>
</
template
>
<
script
>
import
LegalPerson
from
'@/pages/distributorSign/legal-person'
import
Personal
from
'@/pages/distributorSign/personal'
import
CurrencyInput
from
'@/components/currencyInput'
import
RateInput
from
'@/components/rateInput'
import
Check1
from
'@/assets/constractSigning/business.png'
import
Check2
from
'@/assets/constractSigning/constract.png'
import
Check3
from
'@/assets/constractSigning/lease.png'
import
unCheck1
from
'@/assets/constractSigning/unbusiness.png'
import
unCheck2
from
'@/assets/constractSigning/unconstract.png'
import
unCheck3
from
'@/assets/constractSigning/unLease.png'
export
default
{
name
:
'ContractNew'
,
components
:
{
Personal
,
LegalPerson
,
CurrencyInput
,
RateInput
,
// bodyCheck,
},
data
()
{
return
{
info
:
{},
// 租赁信息
num
:
1
,
downNum
:
false
,
leaseList
:
[],
baseInfo
:
{
credit_flag
:
true
,
},
// 基本信息
project_id
:
''
,
check1
:
Check1
,
check2
:
Check2
,
check3
:
Check3
,
uncheck1
:
unCheck1
,
uncheck2
:
unCheck2
,
uncheck3
:
unCheck3
,
quotationInfo
:
{},
itemInfo
:
{},
upload_list_mining
:
[],
dowload_list_mining
:
[],
upload_list_report
:
[],
dowload_list_report
:
[],
}
},
computed
:
{},
watch
:
{
$route
(
to
,
from
)
{
hlsPopup
.
hideConfirm
()
},
},
activated
()
{
},
mounted
()
{
this
.
getBpTenantSelects
()
this
.
getInvoiceType
()
this
.
getTaxpayer
()
this
.
repayPeriod
()
},
methods
:
{
dateConverse
(
date
)
{
return
date
.
replace
(
/
\/
/g
,
'-'
)
},
addRows
(
e
)
{
if
(
e
)
{
let
len
=
0
for
(
let
i
=
0
;
i
<
e
.
length
;
i
++
)
{
var
c
=
e
.
charCodeAt
(
i
)
// 统计字符串的字符长度
if
((
c
>=
0x0001
&&
c
<=
0x007e
)
||
(
c
>=
0xff60
&&
c
<=
0xff9f
))
{
len
+=
1
}
else
{
len
+=
2
}
}
let
addNum
=
Math
.
ceil
(
len
/
21
)
this
.
$refs
.
myTestarea
.
rows
=
addNum
}
},
addRowsLive
(
e
)
{
if
(
e
)
{
let
len
=
0
for
(
let
i
=
0
;
i
<
e
.
length
;
i
++
)
{
var
c
=
e
.
charCodeAt
(
i
)
// 统计字符串的字符长度
if
((
c
>=
0x0001
&&
c
<=
0x007e
)
||
(
c
>=
0xff60
&&
c
<=
0xff9f
))
{
len
+=
1
}
else
{
len
+=
2
}
}
let
addNum
=
Math
.
ceil
(
len
/
21
)
this
.
$refs
.
myTestareaLive
.
rows
=
addNum
}
},
getBpTenantSelects
()
{
let
vm
=
this
let
url
=
process
.
env
.
basePath
+
'bp_tenant_query'
let
param
=
{}
vm
.
hlsPopup
.
showLoading
(
'请稍候'
)
vm
.
hlsHttp
.
post
(
url
,
param
).
then
(
function
(
res
)
{
vm
.
hlsPopup
.
hideLoading
()
if
(
res
.
result
===
'S'
)
{
vm
.
bpTenantList
=
res
.
lists
.
map
(
item
=>
{
item
.
code
=
item
.
bp_id
item
.
code_name
=
item
.
bp_name
return
item
})
}
})
},
selectBpTenant
(
e
)
{
let
vm
=
this
vm
.
hlsPopup
.
selectList
({
list
:
vm
.
bpTenantList
,
code
:
'bp_id'
,
object
:
{},
returnItem
:
function
(
index
,
obj
)
{
debugger
// console.log(vm.bpTenantList[index])
vm
.
baseInfo
=
{
...
vm
.
baseInfo
,
...
vm
.
bpTenantList
[
index
],
}
},
})
},
getInvoiceType
()
{
let
vm
=
this
let
url
=
process
.
env
.
basePath
+
'bp_invoice_kind_query'
let
param
=
{}
vm
.
hlsPopup
.
showLoading
(
'请稍候'
)
vm
.
hlsHttp
.
post
(
url
,
param
).
then
(
function
(
res
)
{
vm
.
hlsPopup
.
hideLoading
()
if
(
res
.
result
===
'S'
)
{
vm
.
invoicList
=
res
.
lists
.
map
(
item
=>
{
return
{
code
:
item
.
invoice_kind
,
code_name
:
item
.
invoice_kind_n
,
}
})
}
})
},
getTaxpayer
()
{
let
vm
=
this
let
url
=
process
.
env
.
basePath
+
'bp_taxpayer_type_query'
let
param
=
{}
vm
.
hlsPopup
.
showLoading
(
'请稍候'
)
vm
.
hlsHttp
.
post
(
url
,
param
).
then
(
function
(
res
)
{
vm
.
hlsPopup
.
hideLoading
()
if
(
res
.
result
===
'S'
)
{
vm
.
taxpayerList
=
res
.
lists
.
map
(
item
=>
{
return
{
code
:
item
.
taxpayer_type
,
code_name
:
item
.
taxpayer_type_n
,
}
})
}
})
},
selectTaxpayer
(
e
)
{
let
vm
=
this
console
.
log
(
'vm.taxpayerList'
,
vm
.
taxpayerList
)
vm
.
hlsPopup
.
selectList
({
list
:
vm
.
taxpayerList
,
code
:
'bp_type'
,
object
:
{},
returnItem
:
function
(
index
,
obj
)
{
vm
.
$set
(
vm
.
baseInfo
,
'taxpayer_type'
,
obj
.
bp_type
)
vm
.
$set
(
vm
.
baseInfo
,
'taxpayer_type_n'
,
obj
.
bp_type_n
)
console
.
log
(
'obj'
,
vm
.
baseInfo
)
},
})
},
selectInvoiceType
(
e
)
{
let
vm
=
this
vm
.
hlsPopup
.
selectList
({
list
:
vm
.
invoicList
,
code
:
'bp_type'
,
object
:
{},
returnItem
:
function
(
index
,
obj
)
{
vm
.
$set
(
vm
.
baseInfo
,
'invoice_kind'
,
obj
.
bp_type
)
vm
.
$set
(
vm
.
baseInfo
,
'invoice_kind_n'
,
obj
.
bp_type_n
)
},
})
},
// 查看大图
showBigPicture
(
pic
)
{
let
vm
=
this
vm
.
hlsPopup
.
showBigPicture
({
imgUrl
:
pic
,
width
:
'100% !important'
,
})
},
// ocr识别入口
ocrShow
(
desc
,
id
,
code
)
{
let
vm
=
this
hlsPopup
.
showActionSheet
({
titleText
:
'请选择照片'
,
buttonArray
:
[
'拍照'
,
'从相册取'
],
callback
:
index
=>
{
if
(
index
===
0
)
{
vm
.
openCamera
(
desc
,
id
,
code
)
}
else
{
vm
.
takePicture
(
desc
,
id
,
code
)
}
},
})
},
openCamera
(
desc
,
id
,
code
)
{
let
vm
=
this
let
obj
=
{
'pkvalue'
:
id
,
'source_type'
:
'PRJ_CDD_ITEM_CHECK'
,
'picture'
:
''
,
'check_id'
:
id
,
'filePath'
:
''
,
'attachment_id'
:
''
,
'user_id'
:
1
,
'fileName'
:
desc
+
'_'
+
new
Date
().
getTime
(),
}
let
cameraoptions
=
{
quality
:
100
,
}
let
success
=
function
(
imgdata
)
{
obj
.
filePath
=
imgdata
obj
.
picture
=
hlsUtil
.
convertImageUrl
(
imgdata
)
let
list
=
[]
list
.
push
(
obj
)
// 拍完一张立马执行保存图片逻辑
vm
.
save_picture
(
list
,
code
)
}
let
error
=
function
()
{
hlsPopup
.
showLongCenter
(
'请拍照'
)
}
hlsUtil
.
openCamera
(
cameraoptions
,
success
,
error
)
},
takePicture
(
desc
,
checkId
,
code
)
{
let
vm
=
this
let
cameraoptions
=
{
quality
:
100
,
}
let
success
=
function
(
imgUrl
)
{
var
list
=
[]
for
(
let
i
=
0
;
i
<
imgUrl
.
length
;
i
++
)
{
let
obj
=
{
'pkvalue'
:
checkId
,
'source_type'
:
'PRJ_CDD_ITEM_CHECK'
,
'picture'
:
''
,
'check_id'
:
checkId
,
'filePath'
:
''
,
'attachment_id'
:
''
,
'user_id'
:
1
,
'fileName'
:
desc
+
'_'
+
new
Date
().
getTime
(),
}
obj
.
filePath
=
imgUrl
[
i
]
obj
.
picture
=
hlsUtil
.
convertImageUrl
(
imgUrl
[
i
])
list
.
push
(
obj
)
}
vm
.
save_picture
(
list
,
code
)
}
let
error
=
function
()
{
}
vm
.
hlsUtil
.
takePicture
(
cameraoptions
,
success
,
error
)
},
// 图片保存
save_picture
(
list
,
code
)
{
let
vm
=
this
if
(
list
.
length
)
{
// hlsPopup.showLoading('图片上传请稍候')
var
alreadyUploadNum
=
0
var
attLength
=
0
var
recordUploadInterval
=
setInterval
(
function
()
{
if
(
alreadyUploadNum
===
attLength
)
{
clearInterval
(
recordUploadInterval
)
/* hlsPopup.hideLoading()
hlsPopup.showLongCenter('图片上传成功') */
}
},
500
)
for
(
var
i
=
0
;
i
<
list
.
length
;
i
++
)
{
let
uploadSuccess
=
function
(
res
)
{
if
(
res
.
result
===
'S'
)
{
alreadyUploadNum
++
for
(
var
j
=
0
;
j
<
list
.
length
;
j
++
)
{
if
(
list
[
j
].
filePath
===
res
.
response
.
filePath
)
{
list
[
j
].
attachment_id
=
res
.
response
.
attachment_id
if
(
code
===
'report'
)
{
vm
.
upload_list_report
.
push
(
list
[
j
])
break
}
else
if
(
code
===
'mining'
)
{
vm
.
upload_list_mining
.
push
(
list
[
j
])
break
}
}
}
}
else
{
hlsPopup
.
hideLoading
()
}
}
if
(
!
list
[
i
].
attachment_id
)
{
attLength
++
hlsUtil
.
fileUploadSvc
(
list
[
i
],
uploadSuccess
)
}
}
}
else
{
hlsPopup
.
hideLoading
()
}
},
// 移除图片
remove_pic
(
attachment_id
,
index
,
code
)
{
let
vm
=
this
var
delete_list
=
[]
let
obj
=
{
'attachment_id'
:
attachment_id
}
delete_list
.
push
(
obj
)
let
url
=
process
.
env
.
basePath
+
'app_delete_attment'
// 附件删除
let
param
=
{
'picturelist'
:
delete_list
,
}
hlsPopup
.
showLoading
(
'请稍候'
)
vm
.
hlsHttp
.
post
(
url
,
param
).
then
(
function
(
res
)
{
hlsPopup
.
hideLoading
()
if
(
res
.
result
===
'S'
)
{
hlsPopup
.
showLongCenter
(
'删除成功!'
)
vm
.
remove_upload_list
(
attachment_id
,
index
,
code
)
}
else
if
(
res
.
result
===
'E'
)
{
hlsPopup
.
showShortCenter
(
res
.
message
)
}
})
},
remove_upload_list
(
attachment_id
,
index
,
code
)
{
let
vm
=
this
if
(
code
===
'report'
)
{
vm
.
upload_list_report
.
remove
(
index
)
vm
.
upload_list_report
.
sort
()
}
else
if
(
code
===
'mining'
)
{
vm
.
upload_list_mining
.
remove
(
index
)
vm
.
upload_list_mining
.
sort
()
}
},
// 删除图片
delete_pic
(
attachment_id
,
code
)
{
let
vm
=
this
let
delete_list
=
[]
let
obj
=
{
'attachment_id'
:
attachment_id
}
delete_list
.
push
(
obj
)
let
url
=
process
.
env
.
basePath
+
'app_delete_attment'
// 附件删除
let
param
=
{
'picturelist'
:
delete_list
,
}
hlsPopup
.
showLoading
(
'请稍候'
)
vm
.
hlsHttp
.
post
(
url
,
param
).
then
(
function
(
res
)
{
hlsPopup
.
hideLoading
()
if
(
res
.
result
===
'S'
)
{
hlsPopup
.
showLongCenter
(
'删除成功!'
)
vm
.
remove_dowload_list
(
attachment_id
,
code
)
}
else
if
(
res
.
result
===
'E'
)
{
hlsPopup
.
showShortCenter
(
res
.
message
)
}
})
},
remove_dowload_list
(
attachment_id
,
code
)
{
console
.
log
(
'attachment_id'
,
attachment_id
)
let
vm
=
this
if
(
code
===
'report'
)
{
vm
.
dowload_list_report
=
vm
.
dowload_list_report
.
filter
(
item
=>
{
return
item
.
attachment_id
!==
attachment_id
})
}
else
if
(
code
===
'mining'
)
{
vm
.
dowload_list_mining
=
vm
.
dowload_list_mining
.
filter
(
item
=>
{
return
item
.
attachment_id
!==
attachment_id
})
}
},
// 还款周期查询
repayPeriod
()
{
let
vm
=
this
let
url
=
$config
.
basePath
+
'annual_pay_times_query'
let
param
=
{
product_plan_id
:
vm
.
product_plan_id
,
}
vm
.
hlsPopup
.
showLoading
(
'数据加载中'
)
vm
.
hlsHttp
.
post
(
url
,
param
).
then
(
function
(
res
)
{
vm
.
hlsPopup
.
hideLoading
()
if
(
res
.
result
===
'S'
)
{
vm
.
periodLists
=
res
.
lists
.
map
(
item
=>
{
return
{
code
:
item
.
annual_pay_times
,
code_name
:
item
.
annual_pay_times_n
,
}
})
}
else
{
hlsPopup
.
showLongCenter
(
res
.
message
)
}
})
},
// 还款周期选择
periodPull
()
{
let
vm
=
this
vm
.
hlsPopup
.
selectList
({
list
:
vm
.
periodLists
,
// 下拉列表
code
:
'bp_type'
,
object
:
{},
returnItem
:
function
(
index
,
obj
)
{
vm
.
$set
(
vm
.
quotationInfo
,
'annual_pay_times_n'
,
obj
.
bp_type_n
)
vm
.
$set
(
vm
.
quotationInfo
,
'annual_pay_times'
,
obj
.
bp_type
)
},
})
},
// 时间选择
showTime
(
format
)
{
let
vm
=
this
hlsPopup
.
showTime
({
nowDate
:
(
new
Date
()).
format
(
'yyyy-MM-dd'
),
format
:
format
,
callback
:
(
date
)
=>
{
vm
.
$set
(
vm
.
quotationInfo
,
'lease_start_date'
,
date
)
},
})
},
// handleSave
handleSave
()
{
if
(
this
.
num
===
0
)
{
this
.
prjBaseInfoSave
()
}
else
{
this
.
calculationSave
()
}
},
// 保存融租方案接口
prjBaseInfoSave
()
{
let
vm
=
this
let
url
=
$config
.
basePath
+
'zm_prj_base_info_save'
let
param
=
{
'project_id'
:
vm
.
project_id
,
'operator_id'
:
''
,
...
vm
.
baseInfo
,
}
vm
.
hlsPopup
.
showLoading
(
'请稍候'
)
vm
.
hlsHttp
.
post
(
url
,
param
).
then
(
function
(
res
)
{
vm
.
hlsPopup
.
hideLoading
()
if
(
res
.
result
===
'S'
)
{
}
else
{
hlsPopup
.
showLongCenter
(
res
.
message
)
}
})
},
// 方案信息保存&更新接口
calculationSave
()
{
let
vm
=
this
let
url
=
$config
.
basePath
+
'zm_prj_quotation_save'
let
param
=
{
'project_id'
:
vm
.
project_id
,
'quotation_id'
:
vm
.
quotationInfo
.
quotation_id
,
'equip_price'
:
vm
.
quotationInfo
.
equip_price
,
'down_payment'
:
vm
.
quotationInfo
.
down_payment
,
'deposit'
:
vm
.
quotationInfo
.
deposit
,
'lease_charge'
:
vm
.
quotationInfo
.
lease_charge
,
'due_date'
:
vm
.
quotationInfo
.
due_date
,
'lease_times'
:
vm
.
quotationInfo
.
lease_times
,
'insurance_fee'
:
vm
.
quotationInfo
.
insurance_fee
,
'gps_fee'
:
vm
.
quotationInfo
.
gps_fee
,
'annual_pay_times'
:
vm
.
quotationInfo
.
annual_pay_times
,
'finance_amount'
:
vm
.
quotationInfo
.
finance_amount
,
'deposit_ratio'
:
vm
.
quotationInfo
.
deposit_ratio
,
'lease_charge_ratio'
:
vm
.
quotationInfo
.
lease_charge_ratio
,
'lease_start_date'
:
vm
.
quotationInfo
.
lease_start_date
,
'int_rate'
:
vm
.
quotationInfo
.
int_rate
,
}
vm
.
hlsPopup
.
showLoading
(
'请稍候'
)
vm
.
hlsHttp
.
post
(
url
,
param
).
then
(
function
(
res
)
{
vm
.
hlsPopup
.
hideLoading
()
if
(
res
.
result
===
'S'
)
{
vm
.
quotationInfo
.
quotation_id
=
res
.
quotation_id
}
else
{
hlsPopup
.
showLongCenter
(
res
.
message
)
}
})
},
},
}
</
script
>
<
style
lang=
"less"
rel=
"stylesheet"
>
#contract-details {
.outer {
width: 259px;
height: 370px;
background-color: #fff;
overflow-y: scroll;
overflow-x: hidden;
.canvas {
position: relative;
z-index: 0;
}
}
.sign-elect {
width: 100%;
height: 1.1rem;
position: fixed;
bottom: 43px;
// margin-top: 20px;
background: #fff;
display: flex;
justify-content: center;
align-items: center;
button {
width: 7.172rem;
height: 0.88rem;
background: #1d3fff;
border-radius: 0.08rem;
color: #fff;
font-family: PingFangSC-Semibold;
font-size: 0.3rem;
line-height: 0.4rem;
letter-spacing: 0.2rem;
}
}
.bodyCheck {
width: 100%;
height: 1.1rem;
position: fixed;
bottom: 92px;
background: #fff;
display: flex;
justify-content: center;
align-items: center;
button {
width: 7.172rem;
height: 0.88rem;
background: #1d3fff;
border-radius: 0.08rem;
color: #fff;
font-family: PingFangSC-Semibold;
font-size: 0.3rem;
line-height: 0.88rem;
letter-spacing: 0.2rem;
}
}
.footer-button {
.approve {
width: 358.6px;
height: 44px;
background: @headerColor;
border-radius: 4px;
color: #fff;
font-family: PingFangSC-Semibold;
font-size: 15px;
line-height: 20px;
letter-spacing: 10px;
img {
width: 16.8px;
height: 16.8px;
}
}
}
.name-box {
display: inline-block;
text-align: center;
line-height: 16px;
color: #00469c;
width: 16px;
height: 16px;
background: #cddbec;
border-radius: 4px;
}
.name {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #383f45;
letter-spacing: 0;
margin-left: 10px;
}
.card-num {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #383f45;
letter-spacing: 0;
display: block;
margin-left: 31px;
margin-top: 7px;
}
.right {
position: relative;
}
.right span {
float: right;
margin-right: 48px;
display: block;
font-family: PingFangSC-Regular;
font-size: 14px;
color: rgba(56, 63, 69, 0.6);
letter-spacing: 0;
line-height: 18px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 150px;
margin-top: -10px;
text-align: right;
}
.right span:last-child {
margin-top: 7px;
}
.right img {
position: absolute;
top: 30%;
left: 88%;
width: 14px;
height: 16px;
}
.alert {
padding-bottom: 30px;
width: 100%;
background: #fbf2d2;
}
.alert-fund {
margin-top: -10px;
}
.alert-content {
width: 334px;
margin: 0 auto;
padding-top: 16px;
}
.info-word {
font-family: PingFangSC-Semibold;
font-size: 14px;
color: #fcc800;
letter-spacing: 0.5px;
margin-left: 8px;
}
.title {
display: flex;
align-items: center;
}
.top-word {
p {
font-family: PingFangSC-Regular;
font-size: 12px;
color: #656464;
letter-spacing: 0.37px;
margin-top: 7px;
line-height: 15px;
text-indent: 16px;
position: relative;
}
p::before {
content: "";
display: block;
position: absolute;
top: 5px;
left: 0px;
width: 4px;
height: 4px;
border-radius: 20px;
background-color: #fcc800;
}
}
.top-info {
font-family: PingFangSC-Regular;
font-size: 12px;
color: #656464;
letter-spacing: 0.37px;
margin-top: 7px;
line-height: 15px;
span {
color: #fcc800;
}
}
.alert img {
width: 18px;
height: 18px;
}
.font-color {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #656464;
letter-spacing: 0;
}
.repay-plan {
height: 44px;
width: 100%;
margin-top: -10px;
background: #f2f2f2;
p {
font-family: PingFangSC-Semibold;
font-size: 14px;
color: #00469c;
letter-spacing: 0;
height: 44px;
width: 84px;
line-height: 44px;
font-weight: bold;
text-decoration: underline;
margin-left: 16px;
}
}
.equipment-list-fund {
height: 40px;
line-height: 40px;
background-color: #fafafa;
display: flex;
align-items: center;
color: #00469c;
font-size: 15px;
//margin-left: 16px;
position: relative;
//margin-top: -10px;
span {
width: 4px;
height: 20px;
background: #00469c;
}
p {
padding-left: 10px;
}
}
.all {
position: absolute;
background-color: transparent;
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: 2;
.prompt {
position: absolute;
top: 50%;
left: 50%;
margin-top: -75px;
margin-left: -121px;
background-color: #fff;
box-shadow: 0 1px 2px 1px rgba(128, 128, 128, 0.1);
border-radius: 4px;
width: 242px;
height: 150px;
.top {
height: 105px;
border-bottom: 1px solid #f1f0f5;
div:first-child {
font-family: PingFangSC-Semibold;
font-size: 14px;
color: #e50020;
letter-spacing: 0.5px;
font-weight: 700;
margin-top: 13px;
img {
width: 18px;
line-height: 12px;
display: block;
margin: -3px 5px 0 40%;
float: left;
}
}
div:nth-child(2) {
margin-top: 22px;
font-family: PingFangSC-Regular;
font-size: 13px;
color: #383f45;
letter-spacing: 0.4px;
padding: 0 22px;
line-height: 20px;
}
}
.bottom {
text-align: center;
font-family: PingFangSC-Regular;
font-size: 14px;
color: #00469c;
line-height: 32px;
}
}
}
.tab-style {
display: flex;
justify-content: center;
padding-top: 12px;
padding-bottom: 8px;
align-items: center;
background-color: #fff;
box-shadow: 0 2px 3px 0 rgba(220, 220, 221, 0.5);
div {
display: block;
height: 32px;
width: 172px;
border-radius: 16px;
border-radius: 16px;
font-family: PingFangSC-Semibold;
font-size: 14px;
letter-spacing: 0.43px;
margin: 0 4px;
line-height: 32px;
}
.undone {
background: rgba(220, 220, 221, 0.26);
color: #383f45;
}
.done {
background: rgba(0, 70, 156, 0.1);
color: #00469c;
}
img {
width: 16px;
display: block;
float: left;
margin: 8px 5px 0 20px;
}
span:nth-of-type(2) {
margin-left: 7px;
}
}
.content {
height: 87%;
.contract-text {
.border-red {
border: 2px solid rgba(255, 0, 0, 0.4);
}
.hls-item {
margin-top: 8px;
background-color: #fff;
}
.contents {
padding: 0;
}
.in-detail {
background-color: rgba(0, 70, 156, 0.08);
width: 48px;
height: 56px;
text-align: center;
line-height: 65px;
img {
width: 16px;
}
}
.in-all {
//width: 96px;
display: flex;
img {
width: 16px;
}
div {
width: 48px;
height: 56px;
text-align: center;
line-height: 65px;
}
div:first-child {
background-color: rgba(252, 200, 0, 0.1);
}
div:nth-child(2) {
background-color: rgba(0, 70, 156, 0.08);
}
}
}
}
.business-condition {
.equipment-list {
height: 40px;
line-height: 40px;
background-color: #fafafa;
color: #00469c;
font-size: 15px;
margin-left: 16px;
position: relative;
}
.equipment-list::before {
content: "";
display: block;
width: 4px;
height: 20px;
background-color: #00469c;
position: absolute;
left: -15px;
top: 10px;
}
div {
font-family: PingFangSC-Regular;
color: #656464;
letter-spacing: 0;
}
section {
font-family: PingFangSC-Regular;
color: rgba(56, 63, 69, 0.6);
letter-spacing: 0;
}
}
.aguremrnt-list {
display: flex;
display: -webkit-flex;
align-items: center;
-webkit-align-items: center;
width: 100%;
height: 100%;
.unread {
width: 34px;
height: 20px;
margin: 0 10px;
}
.wrap-img {
width: 12%;
height: 100%;
display: flex;
display: -webkit-flex;
align-items: center;
-webkit-align-items: center;
justify-content: center;
-webkit-justify-content: center;
background: rgb(254, 251, 233);
img {
width: 22px;
height: 20px;
}
}
.pic {
margin-left: -3px;
}
.pics {
// width: 21px;
height: 30px;
}
.read {
height: 16px;
margin-top: 8px;
margin-left: 6px;
}
.second {
// height: 32px;
// line-height: 32px;
font-family: PingFangSC-Regular;
font-size: 14px;
margin-left: 16px;
color: #383f45;
letter-spacing: 0.43px;
}
.first {
margin-left: 13px;
width: 60%;
}
}
.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;
top: -67px;
background: url("../../assets/intoApproval/top.png") no-repeat;
background-size: 301px 24.7px;
background-color: #fff;
img {
position: absolute;
z-index: 999;
width: 301px;
}
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;
div {
height: 20px;
line-height: 20px;
}
p {
text-indent: 22px;
line-height: 16px;
margin-top: 6px;
}
.font-blod {
font-weight: bold;
text-indent: 0;
}
.sec {
text-indent: 22px;
}
}
.confirm {
width: 240px;
height: 20px;
background-color: #fff;
// 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;
position: relative;
margin-top: 15px;
input {
width: 16px;
height: 16px;
margin-right: 8px;
background: none;
}
input::before {
content: "";
display: block;
background-image: url("../../assets/intoApproval/top.png");
}
}
}
}
.approveContent {
position: absolute;
top: 50%;
background-color: #fafafa;
overflow-y: scroll;
}
.approveBottom {
width: 343px;
margin: 0 auto;
span {
display: block;
width: 100%;
font-family: PingFangSC-Semibold;
font-size: 15px;
color: #00469c;
height: 21px;
line-height: 21px;
margin: 16px 0;
img {
float: right;
}
}
textarea {
width: 343px;
height: 178px;
border-radius: 2px;
padding: 10px;
}
span::after {
content: "";
display: block;
position: relative;
left: 70px;
top: -17px;
width: 14px;
height: 14px;
background: url("../../assets/intoApproval/approv.png");
background-size: 14px 14px;
}
}
.reject,
.same {
width: 175px;
height: 40px;
border-radius: 4px;
font-family: PingFangSC-Semibold;
font-size: 15px;
img {
width: 13px;
height: 13px;
}
}
.reject {
color: #656464;
border: 1px solid #656464;
}
.same {
color: #ffffff;
background: #00469c;
border: 1px solid #00469c;
}
.add-box {
.before {
border: 1px solid #fdb62f;
border-radius: 4px;
color: #fdb62f;
img {
width: 18px;
}
}
.next {
background: #1d3fff;
border-radius: 4px;
color: #fff;
img {
width: 18px;
}
}
}
input::placeholder {
color: #B4B4B5;
}
.font-color {
color: #656464;
}
textarea::placeholder {
color: #b4b4b5;
}
textarea {
text-align: right;
color: #666;
resize: none;
}
.footer-button {
padding-top: 15px;
padding-bottom: 15px;
}
.save {
width: 100%;
height: 45px;
color: #fff;
border-radius: 4px;
background-color: @headerColor;
}
.house {
background: #fff;
margin-top: 10px;
padding-bottom: 10px;
.plus {
display: flex;
justify-content: center;
align-items: center;
}
.card-upload {
position: relative;
width: 80px;
height: 80px;
border: 1px dashed #dcdcdd;
// display: flex;
// justify-content: center;
// align-items: center;
margin-top: 12px;
margin-left: 16px;
// float: left;
.close {
/* position: relative;
color: #F96F68;
margin-top: -100%;
margin-left: -10%;*/
position: absolute;
color: #F96F68;
top: -6px;
right: -6px;
img {
width: 14px;
height: 14px;
}
}
img {
/*width: 88px;
height: 88px;*/
width: 100%;
height: 100%;
}
.upload-btn {
width: 24px;
height: 24px;
}
}
}
.house:last-child, .house:nth-last-child(2) {
// margin-top: 0;
div {
float: left;
}
}
.upload-box {
display: flex;
justify-content: center;
margin-top: 15px;
div {
width: 172px;
height: 120px;
border: 1px dashed #dcdcdd;
text-align: center;
font-size: 14px;
color: #b4b4b5;
.front,
.back {
width: 172px;
height: 120px;
}
}
div:nth-of-type(2) {
margin-left: 7px;
}
img {
margin-top: 32px;
width: 58px;
height: 45px;
}
p {
margin-top: 12px;
font-size: 13px;
}
}
}
.modal {
background-color: rgba(0, 0, 0, 0) !important;
}
.trans-enter-active,
.trans-leave-active {
transition: opacity 0.5s;
}
.trans-enter,
.trans-leave-active {
opacity: 0;
}
.hide {
display: flex;
justify-content: flex-start;
align-items: center;
img {
width: 30px;
height: 30px;
margin-left: 65%;
}
}
.wrap {
padding-top: 92px;
}
.modal-show {
width: 100%;
height: 100%;
position: absolute;
display: flex;
z-index: 900;
background-color: rgba(56, 63, 69, 0.3);
justify-content: center;
align-items: center;
.down {
position: relative;
width: 314px;
height: 516px;
z-index: 999;
background-size: 301px 24.7px;
background-color: #fff;
}
.top {
width: 100%;
height: 44px;
font-family: PingFangSC-Semibold;
font-size: 16px;
letter-spacing: 0;
text-align: center;
line-height: 44px;
color: #fff;
background: #0041c4;
img {
width: 16px;
height: 16px;
float: right;
margin-top: 13px;
margin-right: 20px;
}
}
.down-content {
margin-top: 8px;
span:first-child {
font-family: PingFangSC-Regular;
font-size: 13px;
color: #656464;
letter-spacing: 0;
margin-left: 15px;
}
.photo {
width: 172px;
height: 120px;
border: 1px solid #dcdcdd;
border-radius: 2px;
margin: 0 auto;
margin-top: 12px;
background: url("../../assets/contractStart/photo.png") 70px no-repeat;
background-size: 24px 20px;
img {
width: 100%;
height: 100%;
}
}
}
button {
width: 240px;
height: 40px;
position: absolute;
color: #fff;
bottom: 10px;
left: 30.5px;
background-color: #0041c4;
border-radius: 4px;
}
}
</
style
>
src/pages/contractSigning/contract-signing.vue
View file @
1b2c7b7a
<
template
>
<h-view
id=
"contract-signing"
>
<h-header
:proportion=
"[5, 1,
1
]"
class=
"bar-custom"
>
<h-header
:proportion=
"[5, 1,
3
]"
class=
"bar-custom"
>
<div
slot=
"left"
class=
"h-header-btn"
>
<img
src=
"@/assets/userBind/arrow.png"
@
click=
"$routeGo()"
>
<span>
融租方案确认
</span>
</div>
<div
slot=
"right"
class=
"h-header-btn"
@
click=
"addNew()"
><span>
新增
</span></div>
</h-header>
<!--
<div
class=
"tab-style has-header"
>
<div
:class=
"
{ 'done': num === 1, 'undone': num !== 1 }" @click="num = 1; isRadio = false">
...
...
@@ -284,7 +286,7 @@ export default {
let
vm
=
this
if
(
vm
.
num
===
1
)
{
vm
.
submitPagenum
++
let
url
=
$config
.
basePath
+
'
prj_confirm
_list_query'
let
url
=
$config
.
basePath
+
'
zm_prj
_list_query'
let
param
=
{
// user_phone: window.localStorage.user_phone,
bp_id
:
JSON
.
parse
(
window
.
localStorage
.
now_user_bp_bind_id
).
bp_id
,
...
...
@@ -322,7 +324,7 @@ export default {
})
}
else
if
(
vm
.
num
===
2
)
{
vm
.
approvedPagenum
++
let
url
=
$config
.
basePath
+
'
prj_confirm
_list_query'
let
url
=
$config
.
basePath
+
'
zm_prj
_list_query'
let
param
=
{
// user_phone: window.localStorage.user_phone,
bp_id
:
JSON
.
parse
(
window
.
localStorage
.
now_user_bp_bind_id
).
bp_id
,
...
...
@@ -441,6 +443,12 @@ export default {
},
})
},
addNew
()
{
this
.
$router
.
push
({
name
:
'ContractNew'
,
})
},
},
}
</
script
>
...
...
src/router/index.js
View file @
1b2c7b7a
...
...
@@ -68,6 +68,7 @@ const EntryInfo = resolve => require.ensure([], () => { resolve(require('@/pages
const
ElectronicSign
=
resolve
=>
require
.
ensure
([],
()
=>
{
resolve
(
require
(
'@/pages/ContractSigning/electronic-sign'
))
},
'contractSigning'
)
/* const BodyCheck = resolve=>require.ensure([],()=>{resolve(require(@/pages/ContractSigning/body-check')) }, 'contractSigning') */
const
ContractRepayPlan
=
resolve
=>
require
.
ensure
([],
()
=>
{
resolve
(
require
(
'@/pages/ContractSigning/contract-repay-plan'
))
},
'contractSigning'
)
const
ContractNew
=
resolve
=>
require
.
ensure
([],
()
=>
{
resolve
(
require
(
'@/pages/ContractSigning/contract-new'
))
},
'contractSigning'
)
// 首付款支付
const
FirstPay
=
resolve
=>
require
.
ensure
([],
()
=>
{
resolve
(
require
(
'@/pages/pay/firstPay/first-pay'
))
},
'firstPay'
)
...
...
@@ -275,6 +276,7 @@ export default new Router({
{
path
:
'/entry-info'
,
component
:
EntryInfo
,
name
:
'EntryInfo'
,
meta
:
{
keepAlive
:
true
}},
{
path
:
'/contract-repay-plan'
,
component
:
ContractRepayPlan
,
name
:
'ContractRepayPlan'
,
meta
:
{
keepAlive
:
false
}},
{
path
:
'/electronic-sign'
,
component
:
ElectronicSign
,
name
:
'ElectronicSign'
,
meta
:
{
keepAlive
:
false
}},
{
path
:
'/contract-new'
,
component
:
ContractNew
,
name
:
'ContractNew'
,
meta
:
{
keepAlive
:
false
}},
// 首付款支付
{
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