Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
self-support
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
李俊赕
self-support
Commits
f2581cd0
Commit
f2581cd0
authored
Apr 17, 2021
by
Facius
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
签约页面
parent
a9d72104
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
671 additions
and
617 deletions
+671
-617
agreement.vue
src/components/settle/agreement.vue
+59
-0
pages.json
src/pages.json
+8
-1
prompt.vue
src/pages/settle/prompt.vue
+11
-4
sign-contract.vue
src/pages/settle/sign-contract.vue
+593
-612
tips3@3x.png
src/static/settle/tips3@3x.png
+0
-0
top4@3x.png
src/static/settle/top4@3x.png
+0
-0
No files found.
src/components/settle/agreement.vue
0 → 100644
View file @
f2581cd0
<
template
>
<view
class=
"content-view"
>
<view
class=
"content-list"
v-for=
"(item, index) in info"
:key=
"index"
>
<view
class=
"content-title"
>
{{
item
.
title
}}
</view>
<view
class=
"content-item"
v-for=
"(i, key) in item.content"
:key=
"key"
>
{{
i
}}
</view>
</view>
</view>
</
template
>
<
script
>
export
default
{
data
()
{
return
{}
},
computed
:
{
info
()
{
return
[{
title
:
'一、入驻条件'
,
content
:
[
'1.年龄在18-60周岁之间;'
,
'2.初中及以上学历;'
,
'3.能熟练使用智能手机;'
,
'4.与人交流时态度良好,沟通顺畅;'
]
},
{
title
:
'一、注意事项'
,
content
:
[
'1.平台会对每笔订单收取一定比例的服务费抽成;'
,
'2.若审核通过,平台工作人员将会电话联系您,并邀约参加师傅培训会,请您耐心等待;'
,
'3.开关插座、线路维修、空开漏保等品类的师傅需持有电工证;'
,
'4.家电清洗品类的师傅需持有专业高温清洗设备,并在每一笔清洗订单中上传设备照片(单独水枪类清洗设备不符合规定);'
,
'5.请如实填写自己擅长品类,如有核实师傅申请的维修品类和开通账号的维修品类不一致,将不给予接单资格;'
]
}]
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.content-view
{
padding
:
16rpx
30rpx
30rpx
30rpx
;
background-color
:
#F4F5F7
;
height
:
360rpx
;
overflow
:
scroll
;
.content-list
{
.content-title
{
font-size
:
28rpx
;
color
:
#333333
;
margin-top
:
14rpx
;
}
.content-item
{
font-size
:
24rpx
;
color
:
#666666
;
padding-top
:
14rpx
;
}
}
}
</
style
>
src/pages.json
View file @
f2581cd0
...
...
@@ -121,7 +121,9 @@
{
"path"
:
"pages/settle/sign-contract"
,
"style"
:
{
"navigationBarTitleText"
:
"签约页面"
"navigationBarTitleText"
:
"签约页面"
,
"navigationStyle"
:
"custom"
,
//
隐藏系统导航栏
"disableScroll"
:
true
}
},
{
...
...
@@ -237,6 +239,11 @@
"path"
:
"pages/settle/file"
,
//启动页面,必选
"query"
:
""
//启动参数,在页面的onLoad函数里面得到
},
{
"name"
:
"签约页面"
,
//模式名称
"path"
:
"pages/settle/sign-contract"
,
//启动页面,必选
"query"
:
""
//启动参数,在页面的onLoad函数里面得到
},
{
"name"
:
"缴纳保证金"
,
//模式名称
"path"
:
"pages/settle/pay-ensure"
,
//启动页面,必选
...
...
src/pages/settle/prompt.vue
View file @
f2581cd0
<
template
>
<view
class=
"container u-row-between"
v-if=
"info"
>
<Settle
:index=
"
2
"
>
<Settle
:index=
"
pageIndex
"
>
<view
class=
"content-view"
>
<view
class=
"u-flex u-row-center"
>
<image
:class=
"['icon',
{active: status != 1}]"
...
...
@@ -31,7 +31,8 @@
},
data
()
{
return
{
return
{
pageIndex
:
2
,
settledInfo
:
null
,
promptList
:
[{
status
:
1
,
...
...
@@ -92,10 +93,16 @@
'@/static/settle/icon-prompt@3x.png'
)
}
},
onLoad
(
e
)
{
onLoad
(
e
)
{
if
(
e
)
{
if
(
e
.
pageIndex
)
{
this
.
pageIndex
=
e
.
pageIndex
;
}
}
// if(!this.settledInfo){
// this.getBaseInfo()
// }
// }
},
onShow
()
{
if
(
!
this
.
settledInfo
)
{
...
...
src/pages/settle/sign-contract.vue
View file @
f2581cd0
<
template
>
<view
class=
"content"
>
<process
:process=
"3"
:type=
"0"
title=
"业务流程"
></process>
<view
class=
"content-txt"
>
<view
class=
"title"
>
入驻协议内容
</view>
<view
class=
"txt"
>
</br>
师傅入驻须知
</br>
一、入驻流程
提交资料 → 审核通过 → 签署协议 → 开始接单
</br>
</br>
二、入驻条件
</br>
1.年龄在18-60周岁之间;
</br>
2.初中及以上学历;
</br>
3.能熟练使用智能手机;
</br>
4.与人交流时态度良好,沟通顺畅;
</br>
</br>
三、注意事项
</br>
1.若审核通过,平台工作人员将会电话联系您,并邀约参加师傅培训会,请您耐心等待;
</br>
2.开关插座、线路维修、空开漏保等品类的师傅需持有电工证;
</br>
3.家电清洗品类的师傅需持有专业高温清洗设备,并在每一笔清洗订单中上传设备照片(单独水枪类清洗设备不符合规定)。
</br>
4.请如实填写自己擅长品类,如有核实师傅申请的维修品类和开通账号的维修品类不一致,将不给予接单资格
</br>
</view>
</view>
<view
class=
"base-list"
>
<view
class=
"item item-input flex-yc"
>
<label
class=
"label"
>
签约人
</label>
<view
class=
"input flex1 u-text-right"
>
{{
baseInfo
.
name
}}
</view>
</view>
<view
class=
"item item-select u-row-between"
>
<view
class=
"label"
>
结算方式:
</view>
<u-radio-group
v-model=
"baseInfo.pay_type"
ref=
"radioGroup"
@
change=
"radioGroupChange"
>
<u-radio
ref=
"radio"
v-for=
"(item, index) in radioList"
:key=
"index"
:name=
"item.value"
>
{{
item
.
name
}}
</u-radio>
</u-radio-group>
</view>
<template
v-if=
"baseInfo.pay_type==='bankcard'"
>
<view
class=
"item item-input flex u-row-between"
>
<label
class=
"label"
>
银行名称
</label>
<input
placeholder=
"请输入银行名称"
maxlength=
"100"
v-model=
"baseInfo.bank_name"
class=
"input flex1"
/>
<
template
>
<view
class=
"page-content"
>
<Settle
:index=
"4"
>
<view
class=
"tip-text"
>
<image
class=
"tip-image"
mode=
"widthFix"
src=
"../../static/settle/tips3@3x.png"
></image>
<text>
身份证照片、电工证照片、行驶证/驾驶证照片及车辆照片仅用于申请入驻。
</text>
</view>
<view
class=
"base-list"
>
<view
class=
"agreement-view"
>
<Agreement
/>
</view>
<view
class=
"item item-input flex u-row-between"
>
<label
class=
"label"
>
银行卡号
</label>
<input
placeholder=
"请输入银行卡号"
maxlength=
"30"
v-model=
"baseInfo.bank_no"
type=
"number"
class=
"input flex1"
/>
<view
class=
"info-view"
>
<view
class=
"item item-input flex-yc"
>
<label
class=
"label"
>
签约人
</label>
<view
class=
"input flex1 u-text-right"
>
{{
baseInfo
.
name
}}
</view>
</view>
<view
class=
"item item-input flex u-row-between"
>
<label
class=
"label"
>
支行名称
</label>
<input
placeholder=
"请输入支行名称"
maxlength=
"100"
v-model=
"baseInfo.bank_site"
class=
"input flex1"
/>
<view
class=
"line-view"
></view>
<view
class=
"item u-row-between"
>
<view
class=
"label"
>
结算方式:
</view>
<u-radio-group
class=
"radio-class"
v-model=
"baseInfo.pay_type"
ref=
"radioGroup"
@
change=
"radioGroupChange"
>
<u-radio
ref=
"radio"
v-for=
"(item, index) in radioList"
:key=
"index"
:name=
"item.value"
label-size=
"28"
>
{{
item
.
name
}}
</u-radio>
</u-radio-group>
</view>
</
template
>
<
template
v-else
>
<!--
<view
class=
"item item-input flex u-row-between"
>
<label
class=
"label"
>
姓名
</label>
<input
placeholder=
"请输入账户名称"
maxlength=
"30"
v-model=
"baseInfo.bank_name"
class=
"input flex1"
/>
</view>
-->
<view
class=
"item item-input flex u-row-between"
>
<label
class=
"label"
>
支付宝账号
</label>
<input
placeholder=
"请输入支付宝账号"
maxlength=
"100"
v-model=
"baseInfo.bank_no"
class=
"input flex1"
/>
<view
class=
"line-view"
></view>
<template
v-if=
"baseInfo.pay_type==='bankcard'"
>
<view
class=
"item item-input flex u-row-between"
>
<label
class=
"label"
>
银行名称
</label>
<input
placeholder=
"请输入银行名称"
:placeholder-style=
"placeholderStyle"
maxlength=
"100"
v-model=
"baseInfo.bank_name"
class=
"input flex1"
/>
</view>
<view
class=
"line-view"
></view>
<view
class=
"item item-input flex u-row-between"
>
<label
class=
"label"
>
银行卡号
</label>
<input
placeholder=
"请输入银行卡号"
:placeholder-style=
"placeholderStyle"
maxlength=
"30"
v-model=
"baseInfo.bank_no"
type=
"number"
class=
"input flex1"
/>
</view>
<view
class=
"line-view"
></view>
<view
class=
"item item-input flex u-row-between"
>
<label
class=
"label"
>
支行名称
</label>
<input
placeholder=
"请输入支行名称"
:placeholder-style=
"placeholderStyle"
maxlength=
"100"
v-model=
"baseInfo.bank_site"
class=
"input flex1"
/>
</view>
</
template
>
<
template
v-else
>
<!--
<view
class=
"item item-input flex u-row-between"
>
<label
class=
"label"
>
姓名
</label>
<input
placeholder=
"请输入账户名称"
maxlength=
"30"
v-model=
"baseInfo.bank_name"
class=
"input flex1"
/>
</view>
-->
<view
class=
"item item-input flex u-row-between"
>
<label
class=
"label"
>
支付宝账号
</label>
<input
placeholder=
"请输入支付宝账号"
maxlength=
"100"
v-model=
"baseInfo.bank_no"
class=
"input flex1"
/>
</view>
</
template
>
</view>
</view>
<
template
v-slot:bottom
>
<view
class=
"btn-wrap flex-xc"
>
<button
class=
"btn-submit"
:disabled=
"!submitStatus"
@
click=
"$u.debounce(submitBaseInfo, 500)"
>
我已阅读协议,点击签约
{{
count
?
'('
+
count
+
')'
:
''
}}
</button>
</view>
</
template
>
</
view>
<view
class=
"seat"
></view>
<view
class=
"btn-wrap flex-xc"
>
<button
class=
"btn-submit"
:disabled=
"!submitStatus"
@
click=
"$u.debounce(submitBaseInfo, 500)"
>
我已阅读协议,点击签约{{count ? '('+count+')' : ''}}
</button>
</view>
</view>
</template>
<
script
>
const
globalUrl
=
process
.
uniEnv
||
{}
const
ucenterApiurl
=
globalUrl
.
ucenterUrl
.
apiUrl
const
app
=
getApp
()
export
default
{
data
()
{
return
{
token
:
app
.
globalData
.
token
,
baseInfo
:
{
name
:
"郭小清"
,
id_card_no
:
"43072219800123456"
,
id
:
""
,
bank_no
:
''
,
// 银行卡号
bank_
site
:
''
,
// 开户行
bank_
name
:
''
,
// 银行名称
pay_type
:
'bankcard'
// 结算方式:bankcard银行卡,alipay支付宝
},
radioList
:[{
name
:
'银行卡'
,
value
:
'bankcard'
},{
name
:
'支付宝'
,
value
:
'alipay'
}],
settledInfo
:{},
s
aving
:
false
,
isStop
:
false
,
count
:
9
,
}
},
onLoad
(
e
)
{
},
onShow
()
{
const
refs
=
this
.
$refs
this
.
$nextTick
(()
=>
{
if
(
refs
[
'radio'
]
&&
refs
[
'radio'
].
length
>
0
){
refs
[
'radio'
][
0
].
setRadioCheckedStatus
()
}
})
this
.
startCounting
()
this
.
getBaseInfo
()
// const url = 'https://m.test.ibanshou.cn/activity/settled_2021/mini'
// uni.navigateTo({
// url:'/pages/settle/web?url='+url
// })
// https://m.test.ibanshou.cn/activity/settled_2021/mini
},
computed
:
{
submitStatus
()
{
const
baseInfo
=
this
.
baseInfo
let
flag
=
baseInfo
.
pay_type
&&
baseInfo
.
bank_no
if
(
baseInfo
.
pay_type
===
'bankcard'
){
flag
=
flag
&&
baseInfo
.
bank_site
&&
baseInfo
.
bank_name
}
return
flag
&&
!
this
.
saving
&&
this
.
isStop
;
</
template
>
</
Settle>
</view>
</template>
<
script
>
import
Settle
from
'@/components/settle/index.vue'
import
Agreement
from
'@/components/settle/agreement.vue'
const
globalUrl
=
process
.
uniEnv
||
{}
const
ucenterApiurl
=
globalUrl
.
ucenterUrl
.
apiUrl
const
app
=
getApp
()
export
default
{
components
:
{
Settle
,
Agreement
,
},
data
()
{
return
{
token
:
app
.
globalData
.
token
,
baseInfo
:
{
name
:
"郭小清"
,
id
_card_no
:
"43072219800123456"
,
id
:
""
,
bank_
no
:
''
,
// 银行卡号
bank_
site
:
''
,
// 开户行
bank_name
:
''
,
// 银行名称
pay_type
:
'bankcard'
// 结算方式:bankcard银行卡,alipay支付宝
},
radioList
:
[{
name
:
'银行卡'
,
value
:
'bankcard'
},
{
name
:
'支付宝'
,
value
:
'alipay'
}],
s
ettledInfo
:
{},
saving
:
false
,
isStop
:
false
,
count
:
9
,
}
},
onLoad
(
e
)
{},
onShow
()
{
const
refs
=
this
.
$refs
this
.
$nextTick
(()
=>
{
if
(
refs
[
'radio'
]
&&
refs
[
'radio'
].
length
>
0
)
{
refs
[
'radio'
][
0
].
setRadioCheckedStatus
()
}
})
this
.
startCounting
()
this
.
getBaseInfo
()
// const url = 'https://m.test.ibanshou.cn/activity/settled_2021/mini'
// uni.navigateTo({
// url:'/pages/settle/web?url='+url
// })
// https://m.test.ibanshou.cn/activity/settled_2021/mini
},
computed
:
{
submitStatus
()
{
const
baseInfo
=
this
.
baseInfo
let
flag
=
baseInfo
.
pay_type
&&
baseInfo
.
bank_no
if
(
baseInfo
.
pay_type
===
'bankcard'
)
{
flag
=
flag
&&
baseInfo
.
bank_site
&&
baseInfo
.
bank_name
}
return
flag
&&
!
this
.
saving
&&
this
.
isStop
;
},
},
components
:
{
},
watch
:{
isRefresh
(
val
){
if
(
val
){
this
.
initPage
()
}
}
},
methods
:
{
startCounting
:
function
()
{
if
(
this
.
isStop
){
return
}
this
.
count
=
this
.
count
-
1
if
(
this
.
count
>
0
){
setTimeout
(
this
.
startCounting
,
1000
);
}
else
{
this
.
isStop
=
true
}
},
refreshPage
(){
this
.
getBaseInfo
()
},
checkBaseInfo
()
{
const
baseInfo
=
this
.
baseInfo
;
let
rulesObj
=
{
pay_type
:
function
(
value
)
{
if
(
!
value
)
{
uni
.
showToast
({
title
:
'请选择支付方式'
,
icon
:
'none'
});
return
false
;
}
},
mobile
:
function
(
value
)
{
const
mobileReg
=
/^
[
1
][
3,4,5,7,8
][
0-9
]{9}
$/
;
if
(
!
value
)
{
uni
.
showToast
({
title
:
'请输入您的电话'
,
icon
:
'none'
});
return
false
;
return
false
;
}
else
if
(
!
mobileReg
.
test
(
value
))
{
uni
.
showToast
({
title
:
'请输入正确的电话'
,
icon
:
'none'
});
return
false
;
}
},
bank_site
:
function
(
value
)
{
if
(
!
value
&&
baseInfo
.
pay_type
===
'bankcard'
)
{
uni
.
showToast
({
title
:
'请输入支行名称'
,
icon
:
'none'
});
return
false
;
}
},
bank_no
:
function
(
value
)
{
const
pay_type
=
baseInfo
.
pay_type
const
txt
=
pay_type
===
'bankcard'
?
'银行卡号'
:
'支付宝账户'
const
bandReg
=
/^
([
1-9
]{1})(\d{15}
|
\d{16}
|
\d{18})
$/
if
(
!
value
)
{
uni
.
showToast
({
title
:
'请输入'
+
txt
,
icon
:
'none'
});
return
false
;
}
else
if
(
!
bandReg
.
test
(
value
)
&&
pay_type
===
'bankcard'
)
{
uni
.
showToast
({
title
:
'请输入正确的银行卡号'
,
icon
:
'none'
});
return
false
;
}
},
bank_name
:
function
(
value
)
{
const
txt
=
baseInfo
.
pay_type
===
'bankcard'
?
'银行'
:
'支付宝账户'
if
(
!
value
&&
baseInfo
.
pay_type
===
'bankcard'
)
{
uni
.
showToast
({
title
:
'请输入'
+
txt
+
'名称'
,
icon
:
'none'
});
return
false
;
}
},
};
const
flagArr
=
Object
.
keys
(
baseInfo
).
some
((
key
)
=>
{
// 返回验证失败的数组
let
flag
=
true
;
if
(
rulesObj
.
hasOwnProperty
(
key
))
{
const
func
=
rulesObj
[
key
];
const
value
=
baseInfo
[
key
];
if
(
typeof
func
===
"function"
)
{
flag
=
func
(
value
)
===
false
?
false
:
true
;
}
}
return
!
flag
;
});
return
!
flagArr
||
flagArr
.
length
<
1
;
},
// async checkBank(){
// const baseInfo = this.baseInfo;
// const type = this.baseInfo.pay_type
// const request = {
// bankcard:this.$u.api.checkSettleBank,
// alipay:this.$u.api.checkSettleAlipay
// }
// const params = {
// name:baseInfo.bank_name,
// }
// if(type==='bankcard'){
// params['cardNumber'] = baseInfo.bank_no
// }else if(type==='alipay'){
// params['account'] = baseInfo.bank_no
// }
// const res = await request[type](params)
// if(res.code!==200){
// return
// }
// return true
// },
radioGroupChange
(
val
){
this
.
baseInfo
.
bank_name
=
''
this
.
baseInfo
.
bank_no
=
''
this
.
baseInfo
.
bank_site
=
''
},
async
getBaseInfo
(){
const
app
=
getApp
()
const
callBack
=
(
vm
,
result
)
=>
{
vm
.
settledInfo
=
result
const
record
=
result
.
record
vm
.
baseInfo
.
name
=
record
.
id_card_name
vm
.
baseInfo
.
id
=
record
.
id
}
let
settledInfo
=
app
.
globalData
.
settledInfo
if
(
settledInfo
){
callBack
(
this
,
settledInfo
)
return
}
await
app
.
getBaseInfo
(
this
,
callBack
)
},
async
submitInfo
(){
// checkSettleSignInfo
const
baseInfo
=
this
.
baseInfo
;
const
params
=
{
...
baseInfo
,
}
if
(
params
.
pay_type
===
'alipay'
){
params
.
bank_site
=
'支付宝'
}
const
res
=
await
this
.
$u
.
api
.
checkSettleSignInfo
(
params
)
console
.
log
(
res
,
'res'
)
if
(
res
.
code
!=
200
)
{
uni
.
showToast
({
title
:
res
.
message
,
icon
:
'none'
});
return
false
;
}
return
true
},
async
jumpSign
(){
// 跳转签约
const
baseInfo
=
this
.
baseInfo
;
const
params
=
{
...
baseInfo
,
}
const
res
=
this
.
$u
.
api
.
checkSettleSignInfo
(
params
)
if
(
res
.
status
!=
200
)
{
uni
.
showToast
({
title
:
res
.
message
,
icon
:
'none'
});
return
;
}
return
true
},
async
submitBaseInfo
()
{
const
baseInfo
=
this
.
baseInfo
;
if
(
!
this
.
checkBaseInfo
())
{
return
;
}
this
.
saving
=
true
;
uni
.
showLoading
({
title
:
'加载中'
});
const
result
=
await
this
.
submitInfo
()
if
(
!
result
){
this
.
saving
=
false
;
return
}
this
.
goSign
()
// const requestArr = ['submitBaseInfo','jumpSign']
// for(let i=0;i
<
requestArr
.
length
;
i
++
){
// const result = await this[requestArr[i]]()
// console.log(result,'result')
// if(!result){
// break;
// }
// }
uni
.
hideLoading
()
uni
.
showToast
({
title
:
'入驻基本信息提交成功'
,
icon
:
'success'
});
// let timer = setTimeout(() => {
// clearTimeout(timer)
// uni.navigateTo({
// url:'/pages/settle/file'
// })
// }, 2000)
},
async
goSign
(){
const
token
=
app
.
globalData
.
token
;
const
settledInfo
=
this
.
settledInfo
const
baseInfo
=
this
.
baseInfo
const
params
=
{
namePsn
:
settledInfo
.
record
.
id_card_name
,
idNumberPsn
:
settledInfo
.
record
.
id_card_number
,
province
:
settledInfo
.
provinceList
.
join
(
','
),
city
:
settledInfo
.
cityList
.
join
(
','
),
cardName
:
baseInfo
.
bank_name
,
cardCode
:
baseInfo
.
bank_no
,
pay_type
:
baseInfo
.
pay_type
}
const
res
=
await
this
.
$u
.
post
(
globalUrl
.
systemUrl
.
apiUrl
+
'/wxh-worker-rest/rest/third/'
+
token
+
'/wuKong/sign'
,
params
,{
'content-type'
:
'application/x-www-form-urlencoded'
})
this
.
saving
=
false
;
if
(
res
.
code
!==
200
){
uni
.
showToast
({
title
:
'跳转签约失败'
,
icon
:
'none'
})
return
}
const
url
=
res
.
data
getApp
().
globalData
.
signUrl
=
url
uni
.
navigateTo
({
// url:'/pages/settle/web?url='+url
url
:
'/pages/settle/web'
})
}
},
}
</
script
>
<
style
lang=
"scss"
>
.content
{
width
:
100%
;
height
:
100vh
;
display
:
flex
;
flex-direction
:
column
;
background-color
:
#F3F3F3
;
}
.content-txt
{
overflow
:
auto
;
flex
:
1
;
.title
{
padding
:
30rpx
30rpx
0
;
line-height
:
40rpx
;
text-align
:
center
;
font-weight
:
bold
;
color
:
#333
;
font-size
:
36rpx
;
}
.txt
{
padding
:
20rpx
30rpx
;
line-height
:
40rpx
;
color
:
#333
;
font-size
:
28rpx
;
}
}
.base-list
{
// height:524rpx;
height
:
550rpx
;
/
deep
/
.u-radio__label
{
line-height
:
40rpx
;
}
.item
{
display
:
flex
;
padding
:
28rpx
30rpx
;
width
:
100%
;
font-size
:
32rpx
;
color
:
#333
;
border-bottom
:
2rpx
solid
#FDFDFD
;
background-color
:
#fff
;
.label
{
line-height
:
40rpx
;
color
:
#333
;
font-size
:
32rpx
;
}
.txt
{
line-height
:
40rpx
;
color
:
#333
;
font-size
:
32rpx
;
}
.required
{
margin
:
0
6rpx
;
color
:
red
;
font-size
:
32rpx
;
}
.iconfont
{
color
:
#999
;
}
}
.tips
{
margin-top
:
20rpx
;
padding
:
0
30rpx
;
line-height
:
40rpx
;
font-size
:
28rpx
;
color
:
#666
;
&
+
.id-identity-box
{
margin-top
:
-38rpx
;
margin-bottom
:
40rpx
;
}
}
.id-identity-box
{
.txt
{
padding-top
:
8rpx
;
line-height
:
40rpx
;
font-size
:
28rpx
;
color
:
#666
;
&
:first-child
{
margin-top
:
-58rpx
;
padding-top
:
12rpx
;
}
.red
{
color
:
red
;
}
}
// &.tips{
// margin-bottom:0!important;
// }
}
.item
+
.tips
{
margin-top
:
-38rpx
;
margin-bottom
:
58rpx
;
}
/*选择内容*/
.item-select
{
font-size
:
30rpx
;
color
:
#333
;
font-weight
:
500
;
justify-content
:
space-between
;
border-bottom
:
1rpx
solid
#f5f5f5
;
}
.flex1
{
flex
:
1
!
important
;
&
.txt
{
white-space
:
nowrap
;
max-width
:
450rpx
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
placeholderStyle
()
{
return
'color:#999999;font-size:28rpx'
}
},
components
:
{
},
watch
:
{
isRefresh
(
val
)
{
if
(
val
)
{
this
.
initPage
()
}
}
},
methods
:
{
startCounting
:
function
()
{
if
(
this
.
isStop
)
{
return
}
this
.
count
=
this
.
count
-
1
if
(
this
.
count
>
0
)
{
setTimeout
(
this
.
startCounting
,
1000
);
}
else
{
this
.
isStop
=
true
}
},
refreshPage
()
{
this
.
getBaseInfo
()
},
checkBaseInfo
()
{
const
baseInfo
=
this
.
baseInfo
;
let
rulesObj
=
{
pay_type
:
function
(
value
)
{
if
(
!
value
)
{
uni
.
showToast
({
title
:
'请选择支付方式'
,
icon
:
'none'
});
return
false
;
}
},
mobile
:
function
(
value
)
{
const
mobileReg
=
/^
[
1
][
3,4,5,7,8
][
0-9
]{9}
$/
;
if
(
!
value
)
{
uni
.
showToast
({
title
:
'请输入您的电话'
,
icon
:
'none'
});
return
false
;
return
false
;
}
else
if
(
!
mobileReg
.
test
(
value
))
{
uni
.
showToast
({
title
:
'请输入正确的电话'
,
icon
:
'none'
});
return
false
;
}
},
bank_site
:
function
(
value
)
{
if
(
!
value
&&
baseInfo
.
pay_type
===
'bankcard'
)
{
uni
.
showToast
({
title
:
'请输入支行名称'
,
icon
:
'none'
});
return
false
;
}
},
bank_no
:
function
(
value
)
{
const
pay_type
=
baseInfo
.
pay_type
const
txt
=
pay_type
===
'bankcard'
?
'银行卡号'
:
'支付宝账户'
const
bandReg
=
/^
([
1-9
]{1})(\d{15}
|
\d{16}
|
\d{18})
$/
if
(
!
value
)
{
uni
.
showToast
({
title
:
'请输入'
+
txt
,
icon
:
'none'
});
return
false
;
}
else
if
(
!
bandReg
.
test
(
value
)
&&
pay_type
===
'bankcard'
)
{
uni
.
showToast
({
title
:
'请输入正确的银行卡号'
,
icon
:
'none'
});
return
false
;
}
},
bank_name
:
function
(
value
)
{
const
txt
=
baseInfo
.
pay_type
===
'bankcard'
?
'银行'
:
'支付宝账户'
if
(
!
value
&&
baseInfo
.
pay_type
===
'bankcard'
)
{
uni
.
showToast
({
title
:
'请输入'
+
txt
+
'名称'
,
icon
:
'none'
});
return
false
;
}
},
};
const
flagArr
=
Object
.
keys
(
baseInfo
).
some
((
key
)
=>
{
// 返回验证失败的数组
let
flag
=
true
;
if
(
rulesObj
.
hasOwnProperty
(
key
))
{
const
func
=
rulesObj
[
key
];
const
value
=
baseInfo
[
key
];
if
(
typeof
func
===
"function"
)
{
flag
=
func
(
value
)
===
false
?
false
:
true
;
}
}
return
!
flag
;
});
return
!
flagArr
||
flagArr
.
length
<
1
;
},
// async checkBank(){
// const baseInfo = this.baseInfo;
// const type = this.baseInfo.pay_type
// const request = {
// bankcard:this.$u.api.checkSettleBank,
// alipay:this.$u.api.checkSettleAlipay
// }
// const params = {
// name:baseInfo.bank_name,
// }
// if(type==='bankcard'){
// params['cardNumber'] = baseInfo.bank_no
// }else if(type==='alipay'){
// params['account'] = baseInfo.bank_no
// }
// const res = await request[type](params)
// if(res.code!==200){
// return
// }
// return true
// },
radioGroupChange
(
val
)
{
this
.
baseInfo
.
bank_name
=
''
this
.
baseInfo
.
bank_no
=
''
this
.
baseInfo
.
bank_site
=
''
},
async
getBaseInfo
()
{
return
const
app
=
getApp
()
const
callBack
=
(
vm
,
result
)
=>
{
vm
.
settledInfo
=
result
const
record
=
result
.
record
vm
.
baseInfo
.
name
=
record
.
id_card_name
vm
.
baseInfo
.
id
=
record
.
id
}
let
settledInfo
=
app
.
globalData
.
settledInfo
if
(
settledInfo
)
{
callBack
(
this
,
settledInfo
)
return
}
await
app
.
getBaseInfo
(
this
,
callBack
)
},
async
submitInfo
()
{
// checkSettleSignInfo
const
baseInfo
=
this
.
baseInfo
;
const
params
=
{
...
baseInfo
,
}
if
(
params
.
pay_type
===
'alipay'
)
{
params
.
bank_site
=
'支付宝'
}
const
res
=
await
this
.
$u
.
api
.
checkSettleSignInfo
(
params
)
console
.
log
(
res
,
'res'
)
if
(
res
.
code
!=
200
)
{
uni
.
showToast
({
title
:
res
.
message
,
icon
:
'none'
});
return
false
;
}
return
true
},
async
jumpSign
()
{
// 跳转签约
const
baseInfo
=
this
.
baseInfo
;
const
params
=
{
...
baseInfo
,
}
const
res
=
this
.
$u
.
api
.
checkSettleSignInfo
(
params
)
if
(
res
.
status
!=
200
)
{
uni
.
showToast
({
title
:
res
.
message
,
icon
:
'none'
});
return
;
}
return
true
},
async
submitBaseInfo
()
{
const
baseInfo
=
this
.
baseInfo
;
if
(
!
this
.
checkBaseInfo
())
{
return
;
}
this
.
saving
=
true
;
uni
.
showLoading
({
title
:
'加载中'
});
const
result
=
await
this
.
submitInfo
()
if
(
!
result
)
{
this
.
saving
=
false
;
return
}
this
.
goSign
()
// const requestArr = ['submitBaseInfo','jumpSign']
// for(let i=0;i
<
requestArr
.
length
;
i
++
){
// const result = await this[requestArr[i]]()
// console.log(result,'result')
// if(!result){
// break;
// }
// }
uni
.
hideLoading
()
uni
.
showToast
({
title
:
'入驻基本信息提交成功'
,
icon
:
'success'
});
// let timer = setTimeout(() => {
// clearTimeout(timer)
// uni.navigateTo({
// url:'/pages/settle/file'
// })
// }, 2000)
},
async
goSign
()
{
const
token
=
app
.
globalData
.
token
;
const
settledInfo
=
this
.
settledInfo
const
baseInfo
=
this
.
baseInfo
const
params
=
{
namePsn
:
settledInfo
.
record
.
id_card_name
,
idNumberPsn
:
settledInfo
.
record
.
id_card_number
,
province
:
settledInfo
.
provinceList
.
join
(
','
),
city
:
settledInfo
.
cityList
.
join
(
','
),
cardName
:
baseInfo
.
bank_name
,
cardCode
:
baseInfo
.
bank_no
,
pay_type
:
baseInfo
.
pay_type
}
const
res
=
await
this
.
$u
.
post
(
globalUrl
.
systemUrl
.
apiUrl
+
'/wxh-worker-rest/rest/third/'
+
token
+
'/wuKong/sign'
,
params
,
{
'content-type'
:
'application/x-www-form-urlencoded'
})
this
.
saving
=
false
;
if
(
res
.
code
!==
200
)
{
uni
.
showToast
({
title
:
'跳转签约失败'
,
icon
:
'none'
})
return
}
const
url
=
res
.
data
getApp
().
globalData
.
signUrl
=
url
uni
.
navigateTo
({
// url:'/pages/settle/web?url='+url
url
:
'/pages/settle/web'
})
}
},
}
</
script
>
<
style
lang=
"scss"
scoped
>
.page-content
{
background-color
:
#F4F5F7
;
position
:
absolute
;
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
100%
;
display
:
flex
;
flex-direction
:
column
;
}
.content-txt
{
overflow
:
auto
;
flex
:
1
;
.title
{
padding
:
30rpx
30rpx
0
;
line-height
:
40rpx
;
text-align
:
center
;
font-weight
:
bold
;
color
:
#333
;
font-size
:
36rpx
;
}
.txt
{
padding
:
20rpx
30rpx
;
line-height
:
40rpx
;
color
:
#333
;
font-size
:
28rpx
;
}
}
.base-list
{
// height:524rpx;
background-color
:
#FFFFFF
;
border-radius
:
12rpx
;
padding
:
30rpx
30rpx
0rpx
30rpx
;
margin-bottom
:
20rpx
;
margin-bottom
:
188rpx
;
/
deep
/
.u-radio__label
{
line-height
:
40rpx
;
}
.item-input
{
overflow
:
hidden
;
input
{
text-align
:
right
;
line-height
:
44rpx
;
.info-view
{
margin-top
:
10rpx
;
}
.line-view
{
background-color
:
#F4F5F7
;
height
:
2rpx
;
width
:
100%
;
font-size
:
30rpx
;
color
:
#333
;
font-weight
:
400
;
}
.input-readonly
{
font-size
:
30rpx
;
color
:
#999
;
font-weight
:
400
;
}
input
:
:-
webkit-input-placeholder
{
font-size
:
30rpx
;
color
:
#999
;
font-weight
:
400
;
}
input
:
-
moz-placeholder
{
font-size
:
30rpx
;
color
:
#999
;
font-weight
:
400
;
}
input
:
-
ms-input-placeholder
{
font-size
:
30rpx
;
color
:
#999
;
font-weight
:
400
;
}
}
}
.title
{
padding
:
30rpx
0
40rpx
;
text-align
:
center
;
line-height
:
50rpx
;
font-size
:
36rpx
;
color
:
#333
;
font-weight
:
bold
;
}
.seat
{
padding-bottom
:
144rpx
;
}
/*提交按钮*/
.btn-wrap
{
position
:
fixed
;
// margin: px2rem(36);
left
:
0
;
right
:
0
;
bottom
:
0
;
padding
:
30rpx
0
;
background
:
#fff
;
.btn-submit
{
width
:
600rpx
;
// left: 5%;
// bottom: px2rem(36);
height
:
104rpx
;
line-height
:
104rpx
;
border-radius
:
52rpx
;
background
:
#2272FF
;
font-size
:
32rpx
;
color
:
#fff
;
&
[
disabled
]
{
border
:
2rpx
solid
#999
;
background-color
:
#f3f3f3
;
color
:
#999
;
}
}
}
/* .back_view{
background-color: #FFFFFF;
position: absolute;
top: 0;
left: 0;
width: 100%;
display: flex;
flex-direction: column;
}
.item
{
display
:
flex
;
padding
:
28rpx
30rpx
;
width
:
100%
;
font-size
:
32rpx
;
color
:
#333
;
border-bottom
:
2rpx
solid
#FDFDFD
;
background-color
:
#fff
;
.label
{
line-height
:
40rpx
;
color
:
#666666
;
font-size
:
28rpx
;
}
.txt
{
line-height
:
40rpx
;
color
:
#333333
;
font-size
:
28rpx
;
}
.required
{
margin
:
0
6rpx
;
color
:
red
;
font-size
:
32rpx
;
}
.iconfont
{
color
:
#999
;
}
}
.tips
{
margin-top
:
20rpx
;
padding
:
0
30rpx
;
line-height
:
40rpx
;
font-size
:
28rpx
;
color
:
#666
;
&
+
.id-identity-box
{
margin-top
:
-38rpx
;
margin-bottom
:
40rpx
;
}
}
.id-identity-box
{
.txt
{
padding-top
:
8rpx
;
line-height
:
40rpx
;
font-size
:
28rpx
;
color
:
#666
;
&
:first-child
{
margin-top
:
-58rpx
;
padding-top
:
12rpx
;
}
.red
{
color
:
red
;
}
}
// &.tips{
// margin-bottom:0!important;
// }
}
.item
+
.tips
{
margin-top
:
-38rpx
;
margin-bottom
:
58rpx
;
}
.flex1
{
flex
:
1
!
important
;
&
.txt
{
white-space
:
nowrap
;
max-width
:
450rpx
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
}
.item-input
{
overflow
:
hidden
;
font-size
:
28rpx
;
input
{
text-align
:
right
;
line-height
:
44rpx
;
width
:
100%
;
font-size
:
28rpx
;
color
:
#333
;
font-weight
:
400
;
}
}
}
.title
{
padding
:
30rpx
0
40rpx
;
text-align
:
center
;
line-height
:
50rpx
;
font-size
:
36rpx
;
color
:
#333
;
font-weight
:
bold
;
}
.seat
{
padding-bottom
:
144rpx
;
}
/*提交按钮*/
.btn-wrap
{
width
:
100%
;
.btn-submit
{
width
:
600rpx
;
height
:
104rpx
;
line-height
:
104rpx
;
border-radius
:
52rpx
;
background
:
#2272FF
;
font-size
:
32rpx
;
color
:
#fff
;
&
[
disabled
]
{
background-color
:
#D1D4D4
;
color
:
#FFFFFF
;
}
}
}
.tip-text
{
background-color
:
#FFFFFF
;
border-radius
:
12rpx
;
padding
:
38rpx
30rpx
30rpx
30rpx
;
height
:
140rpx
;
margin-bottom
:
20rpx
;
font-size
:
24rpx
;
color
:
#000000
;
display
:
flex
;
align-items
:
flex-start
;
}
.tip-image
{
width
:
34rpx
;
margin-right
:
8rpx
;
margin-top
:
2rpx
;
}
*/
.radio-class
{
margin-right
:
-20rpx
;
}
</
style
>
src/static/settle/tips3@3x.png
0 → 100644
View file @
f2581cd0
2.2 KB
src/static/settle/top4@3x.png
View replaced file @
a9d72104
View file @
f2581cd0
577 KB
|
W:
|
H:
189 KB
|
W:
|
H:
2-up
Swipe
Onion skin
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