Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-platform
Project
Project
Details
Activity
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
linweijiong
jinfa-platform
Commits
2cbcf6b0
Commit
2cbcf6b0
authored
Dec 09, 2021
by
前端-钟卫鹏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 对接e账户管理充值提现,对接待支付订单账期月结支付
parent
ba89201e
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
406 additions
and
212 deletions
+406
-212
order.ts
src/locales/zh-CN/order.ts
+1
-0
payandSettle.ts
src/locales/zh-CN/payandSettle.ts
+0
-0
purchase.ts
src/locales/zh-CN/purchase.ts
+3
-0
accountDetail.tsx
...yandSettle/capitalAccounts/accountLists/accountDetail.tsx
+6
-3
index.tsx
src/pages/payandSettle/capitalAccounts/eAccount/index.tsx
+133
-67
index.tsx
...es/payandSettle/capitalAccounts/eAccount/schema/index.tsx
+4
-5
index.tsx
...payandSettle/eAccountApprove/components/company/index.tsx
+30
-3
index.tsx
...Settle/eAccountApprove/components/companyFinish/index.tsx
+76
-25
index.tsx
...ayandSettle/eAccountApprove/components/personal/index.tsx
+10
-25
index.tsx
...ettle/eAccountApprove/components/personalFinish/index.tsx
+30
-32
index.tsx
...s/payandSettle/eAccountApprove/components/phone/index.tsx
+5
-4
useEDetail.tsx
...pages/payandSettle/eAccountApprove/effects/useEDetail.tsx
+18
-7
index.tsx
src/pages/payandSettle/eAccountApprove/index.tsx
+2
-2
modal.ts
src/pages/payandSettle/eAccountApprove/schema/modal.ts
+15
-12
index.ts
src/pages/procurement/callForBids/addNewBid/schema/index.ts
+1
-1
index.ts
...procurement/callForBids/readySubmitReport/schema/index.ts
+3
-0
index.tsx
src/pages/transaction/components/orderPayModal/index.tsx
+56
-21
index.tsx
src/pages/transaction/purchaseOrder/constant/index.tsx
+1
-1
index.tsx
src/pages/transaction/saleOrder/index.tsx
+12
-4
No files found.
src/locales/zh-CN/order.ts
View file @
2cbcf6b0
...
...
@@ -287,6 +287,7 @@ export default {
'purchaseOrder.yizhifu'
:
'已支付'
,
'purchaseOrder.dingdanhao'
:
'订单号'
,
'purchaseOrder.dingdanzhaiyao'
:
'订单摘要/下单时间'
,
'purchaseOrder.dingdandingdandigest'
:
'订单摘要'
,
'purchaseOrder.gongyinghuiyuan'
:
'供应会员'
,
'purchaseOrder.zongjineyizhifu'
:
'总金额/已支付(元)'
,
'purchaseOrder.dingdanleixing'
:
'订单类型'
,
...
...
src/locales/zh-CN/payandSettle.ts
View file @
2cbcf6b0
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/locales/zh-CN/purchase.ts
View file @
2cbcf6b0
...
...
@@ -542,6 +542,8 @@ export default {
'detail.purchase.label51'
:
'操作角色'
,
'detail.purchase.label52'
:
'操作时间'
,
'schma.purchase.purchaseType.help'
:
'采购类型'
,
'schma.purchase.purchaseType.help.text'
:
'有固定采购金额:采购金额固定,合同期内不可超过采购金额,无固定采购金额:采购金额不固定,可在合同期内按需采购'
,
'schma.purchase.orderNo'
:
'请输入订单编号'
,
'schma.purchase.orderThe'
:
'请输入订单摘要'
,
'schma.purchase.supplyMembersName'
:
'请输入供应会员名称'
,
...
...
@@ -974,4 +976,5 @@ export default {
'table.purchase.zhongbiaoshuliang'
:
'中标数量'
,
'table.purchase.duiying'
:
'对应'
,
'table.purchase.zhi'
:
'至'
,
}
src/pages/payandSettle/capitalAccounts/accountLists/accountDetail.tsx
View file @
2cbcf6b0
...
...
@@ -47,8 +47,11 @@ const AccountDetail: React.FC<{}> = () => {
//timer
const
[
openTimer
,
setOpenTimer
]
=
useState
(
0
);
// timer
useEffect
(()
=>
{
console
.
log
(
openTimer
)
if
(
openTimer
===
1
)
runTimerJump
()
if
(
openTimer
===
1
)
{
runTimerJump
()
}
else
{
clearInterval
(
timeChange
)
}
},
[
openTimer
])
const
runTimerJump
=
()
=>
{
timeChange
=
setInterval
(()
=>
pollPayResult
(),
3000
)
...
...
@@ -230,7 +233,7 @@ const AccountDetail: React.FC<{}> = () => {
setScanVisible
(
false
)
getAccountInfo
()
refTrade
.
current
.
reload
()
clearInterval
(
timeChange
)
setOpenTimer
(
0
)
}
return
(
...
...
src/pages/payandSettle/capitalAccounts/eAccount/index.tsx
View file @
2cbcf6b0
...
...
@@ -11,49 +11,59 @@ import { ColumnType } from 'antd/lib/table/interface'
import
ModalForm
from
'@/components/ModalForm'
import
{
createFormActions
}
from
'@formily/antd'
import
{
rechargeSchema
}
from
'./schema'
import
{
memberStatusMap
,
moveStatusMap
,
operationMap
,
statusMap
}
from
'../../constant'
import
{
memberStatusMap
,
moveStatusMap
}
from
'../../constant'
import
{
StandardTable
}
from
'god'
import
QRCode
from
'qrcode'
;
import
{
ScanOutlined
}
from
'@ant-design/icons'
import
{
getPay
AssetAccountGetRechargeResult
,
getPayEAccountAllInPayGetAccountDetail
,
getPayEAccountAllInPayGetEAccountStatusRecord
,
getPayEAccountAllInPayGetEAccountTradeRecord
,
postPayAssetAccount
Recharge
}
from
'@/services/PayV2Api'
import
{
getPay
EAccountAllInPayGetAccountDetail
,
getPayEAccountAllInPayGetEAccountStatusRecord
,
getPayEAccountAllInPayGetEAccountTradeRecord
,
getPayEAccountAllInPayGetRechargeResult
,
getPayEAccountAllInPayGetRechargeType
,
postPayAssetAccountRecharge
,
postPayEAccountAllInPayCashOut
,
postPayEAccountAllInPay
Recharge
}
from
'@/services/PayV2Api'
import
NiceForm
from
'@/components/NiceForm'
import
Submit
from
'@/components/NiceForm/components/Submit'
import
alipay
from
'@/assets/imgs/alipay_icon.png'
;
import
wxpay
from
'@/assets/imgs/wechat_icon.png'
;
import
{
clearModalParams
}
from
'@/utils'
interface
rechargeItem
{
codeUrl
:
string
;
trade
RecordId
:
number
;
trade
Code
:
number
;
}
const
schemaActions
=
createFormActions
()
const
formActions
=
createFormActions
();
const
startTime
=
moment
().
day
(
moment
().
weekday
()
-
6
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
const
endTime
=
moment
().
format
(
'YYYY-MM-DD HH:mm:ss'
)
let
timeChange
;
// Tiemr
const
EAccountDetail
:
React
.
FC
<
{}
>
=
()
=>
{
const
intl
=
useIntl
();
const
intl
=
useIntl
()
const
[
withdrawForm
]
=
Form
.
useForm
()
const
modalRef
=
useRef
<
any
>
()
const
refTrade
=
useRef
<
any
>
({})
const
datesRef
=
useRef
<
any
>
([])
const
[
moveData
,
setMoveData
]
=
useState
<
any
>
()
const
[
details
,
setDetails
]
=
useState
<
any
>
({
accountBalance
:
0
,
lockBalance
:
0
})
const
[
pageId
,
setPageId
]
=
useState
<
any
>
()
const
[
isBtnLoading
,
setIsBtnLoading
]
=
useState
<
boolean
>
(
false
)
const
[
scanVisible
,
setScanVisible
]
=
useState
<
boolean
>
(
false
)
const
[
withdrawVisible
,
setWithdrawVisible
]
=
useState
<
boolean
>
(
false
)
const
[
qrCode
,
setQrCode
]
=
useState
(
''
)
const
[
renderCodeCharacter
,
setRenderCodeCharacter
]
=
useState
<
rechargeItem
>
()
const
[
rechargeType
,
setRechargeType
]
=
useState
<
number
>
()
const
[
rechargeType
,
setRechargeType
]
=
useState
<
string
>
(
''
)
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
false
)
useEffect
(()
=>
{
getAccountInfo
()
clearInterval
(
timeChange
)
return
()
=>
clearModalParams
()
}
,[])
//timer
//
timer
const
[
openTimer
,
setOpenTimer
]
=
useState
(
0
);
// timer
useEffect
(()
=>
{
console
.
log
(
openTimer
)
if
(
openTimer
===
1
)
runTimerJump
()
if
(
openTimer
===
1
)
{
runTimerJump
()
}
else
{
clearInterval
(
timeChange
)
}
},
[
openTimer
])
const
runTimerJump
=
()
=>
{
timeChange
=
setInterval
(()
=>
pollPayResult
(),
3000
)
...
...
@@ -69,7 +79,6 @@ const EAccountDetail: React.FC<{}> = () => {
let
res
=
await
getPayEAccountAllInPayGetAccountDetail
()
const
{
code
,
data
,
message
:
msg
}
=
res
if
(
code
!==
1000
)
{
return
message
.
error
(
msg
)
}
setPageId
(
data
.
id
)
setDetails
(
data
)
getPayEAccountAllInPayGetEAccountStatusRecord
({
id
:
data
.
id
+
''
}).
then
(
res
=>
{
const
{
data
}
=
res
...
...
@@ -81,8 +90,8 @@ const EAccountDetail: React.FC<{}> = () => {
// 获取交易记录
const
fetchTradeData
=
(
params
)
=>
{
if
(
!
params
?.
startTime
)
{
params
.
startTime
=
moment
().
day
(
moment
().
weekday
()
-
7
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
params
.
endTime
=
moment
().
day
(
moment
().
weekday
()).
format
(
'YYYY-MM-DD HH:mm:ss'
)
params
.
startTime
=
startTime
params
.
endTime
=
endTime
}
return
new
Promise
((
resolve
,
reject
)
=>
{
getPayEAccountAllInPayGetEAccountTradeRecord
({...
params
}).
then
(
res
=>
{
...
...
@@ -105,9 +114,8 @@ const EAccountDetail: React.FC<{}> = () => {
}
const
pollPayResult
=
()
=>
{
if
(
renderCodeCharacter
?.
tradeRecordId
)
{
getPayAssetAccountGetRechargeResult
({
tradeRecordId
:
renderCodeCharacter
.
tradeRecordId
+
''
}).
then
(
res
=>
{
console
.
log
(
res
)
if
(
renderCodeCharacter
?.
tradeCode
)
{
getPayEAccountAllInPayGetRechargeResult
({
tradeCode
:
renderCodeCharacter
.
tradeCode
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
if
(
res
.
data
)
{
clearInterval
(
timeChange
)
...
...
@@ -126,36 +134,48 @@ const EAccountDetail: React.FC<{}> = () => {
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.columns.tradeCode'
}),
dataIndex
:
'
tradeCode
'
,
key
:
'
tradeCode
'
,
title
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.shanghudingdanhao'
,
defaultMessage
:
'商户订单号'
}),
dataIndex
:
'
bizOrderNo
'
,
key
:
'
bizOrderNo
'
,
},
{
title
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.columns.tradeTime'
}),
dataIndex
:
'tradeTime'
,
key
:
'tradeTime'
,
title
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.jiaoyiliushuihao'
,
defaultMessage
:
'交易流水号'
}),
dataIndex
:
'tradeNo'
,
key
:
'tradeNo'
,
},
{
title
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.jiaoyishijian'
,
defaultMessage
:
'交易时间'
}),
dataIndex
:
'changeTime'
,
key
:
'changeTime'
,
render
:
(
text
:
any
)
=>
moment
(
text
).
format
(
"YYYY-MM-DD HH:mm:ss"
)
},
{
title
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.columns.tradeMoney'
}),
dataIndex
:
'tradeMoney'
,
key
:
'tradeMoney'
,
render
:
(
t
,
r
)
=>
`
${
operationMap
[
r
.
operation
][
'operator'
]}
${
t
.
toFixed
(
2
)}
`
title
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.yuanshijine'
,
defaultMessage
:
'原始金额'
}),
dataIndex
:
'oriAmount'
,
key
:
'oriAmount'
,
},
{
title
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.columns.operation'
}),
dataIndex
:
'operation'
,
key
:
'operation'
,
render
:
(
t
,
r
)
=>
operationMap
[
t
][
'title'
]
title
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.xianyoujine'
,
defaultMessage
:
'现有金额'
}),
dataIndex
:
'curAmount'
,
key
:
'curAmount'
,
},
{
title
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.columns.status'
}),
dataIndex
:
'status'
,
key
:
'status'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(<
StatusTag
title=
{
statusMap
[
text
][
'title'
]
}
type=
{
statusMap
[
text
][
'type'
]
}
/>)
title
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.biangengjine'
,
defaultMessage
:
'变更金额'
}),
dataIndex
:
'chgAmount'
,
key
:
'chgAmount'
,
},
{
title
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.jiaoyileixing'
,
defaultMessage
:
'交易类型'
}),
dataIndex
:
'tradeType'
,
key
:
'tradeType'
,
},
{
title
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.jiaoyizileixing'
,
defaultMessage
:
'交易子类型'
}),
dataIndex
:
'type'
,
key
:
'type'
,
},
{
title
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.columns.remark'
}),
title
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.fenzhangbeizhu'
,
defaultMessage
:
'分账备注'
}),
dataIndex
:
'remark'
,
key
:
'remark'
,
},
...
...
@@ -205,7 +225,7 @@ const EAccountDetail: React.FC<{}> = () => {
}
const
handleCannel
=
()
=>
{
setIsBtnLoading
(
false
)
}
const
handleSubmit
=
(
value
)
=>
{
...
...
@@ -213,11 +233,10 @@ const EAccountDetail: React.FC<{}> = () => {
setIsBtnLoading
(
true
)
setRechargeType
(
value
[
'type'
][
0
])
let
parasm
=
{
memberAssetAccountId
:
pageId
,
money
:
Number
(
value
.
money
),
type
:
value
[
'type'
][
0
]
}
postPay
AssetAccount
Recharge
(
parasm
,
{
ctlType
:
"none"
}).
then
(
res
=>
{
postPay
EAccountAllInPay
Recharge
(
parasm
,
{
ctlType
:
"none"
}).
then
(
res
=>
{
const
{
code
,
data
}
=
res
if
(
code
===
1000
){
modalRef
.
current
.
setVisible
(
false
)
...
...
@@ -237,10 +256,38 @@ const EAccountDetail: React.FC<{}> = () => {
const
applyWithdraw
=
()
=>
{
setWithdrawVisible
(
true
)
withdrawForm
.
setFieldsValue
({
name
:
details
.
memberName
,
accountNo
:
details
.
accountNo
,
branchName
:
details
.
branchName
})
}
const
handleWithdraw
=
()
=>
{
setLoading
(
true
)
withdrawForm
.
submit
()
}
const
handleWidthdrawSubmit
=
(
values
)
=>
{
const
amount
=
Number
(
values
.
amount
)
if
(
amount
>
0
&&
amount
<=
details
.
usableBalance
)
{
// 大于0并且小于可用金额
let
params
=
{
money
:
amount
,
bankCardNo
:
details
.
bankNo
,
}
postPayEAccountAllInPayCashOut
(
params
).
then
(({
code
,
data
})
=>
{
if
(
code
===
1000
)
{
getAccountInfo
()
refTrade
.
current
.
reload
()
withdrawForm
.
resetFields
()
setWithdrawVisible
(
false
)
}
setLoading
(
false
)
})
}
else
{
setLoading
(
false
)
message
.
error
(
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.accountLists.applyWithdraw.error'
}))
}
}
const
handleAll
=
()
=>
{
withdrawForm
.
setFieldsValue
({
amount
:
details
.
usableBalance
})
}
const
handleCancel
=
()
=>
{
...
...
@@ -251,7 +298,7 @@ const EAccountDetail: React.FC<{}> = () => {
setScanVisible
(
false
)
getAccountInfo
()
refTrade
.
current
.
reload
()
clearInterval
(
timeChange
)
setOpenTimer
(
0
)
}
const
disabledDate
=
(
current
)
=>
{
...
...
@@ -288,7 +335,7 @@ const EAccountDetail: React.FC<{}> = () => {
</
div
>
<
div
className=
{
styles
[
'repayment-end'
]
}
>
<
span
className=
{
styles
[
'repayment-time'
]
}
>
{
details
?.
parentM
emberName
}
{
details
?.
m
emberName
}
</
span
>
</
div
>
</
div
>
...
...
@@ -316,7 +363,7 @@ const EAccountDetail: React.FC<{}> = () => {
xl=
{
14
}
lg=
{
14
}
>
<
p
className=
{
styles
.
rightInfo
}
>
{
details
?.
parentM
emberName
}
</
p
>
<
p
className=
{
styles
.
rightInfo
}
>
{
details
?.
m
emberName
}
</
p
>
</
Col
>
</
Row
>
<
Row
>
...
...
@@ -397,14 +444,11 @@ const EAccountDetail: React.FC<{}> = () => {
columns=
{
columns
}
currentRef=
{
refTrade
}
fetchTableData=
{
(
params
:
any
)
=>
fetchTradeData
(
params
)
}
rowKey=
"bizOrderNo"
controlRender=
{
<
NiceForm
actions=
{
formActions
}
onSubmit=
{
values
=>
refTrade
.
current
.
reload
(
values
)
}
initialValues=
{
{
startTime
:
moment
().
day
(
moment
().
weekday
()
-
7
).
format
(
'YYYY-MM-DD HH:mm:ss'
),
endTime
:
moment
().
day
(
moment
().
weekday
()).
format
(
'YYYY-MM-DD HH:mm:ss'
),
}
}
schema=
{
{
type
:
'object'
,
'x-component-props'
:
{
...
...
@@ -415,7 +459,7 @@ const EAccountDetail: React.FC<{}> = () => {
"[startTime,endTime]"
:
{
type
:
'daterange'
,
'x-component-props'
:
{
placeholder
:
[
'开始时间'
,
'结束时间'
],
placeholder
:
[
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.kaishishijian'
,
defaultMessage
:
'开始时间'
}),
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.jieshushijian'
,
defaultMessage
:
'结束时间'
})
],
showTime
:
true
,
disabledDate
:
disabledDate
,
onCalendarChange
:
val
=>
datesRef
.
current
=
val
,
...
...
@@ -424,7 +468,7 @@ const EAccountDetail: React.FC<{}> = () => {
submit
:
{
'x-component'
:
'Submit'
,
'x-component-props'
:
{
children
:
'查询'
,
children
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.chaxun'
,
defaultMessage
:
'查询'
})
,
},
},
}
...
...
@@ -456,16 +500,19 @@ const EAccountDetail: React.FC<{}> = () => {
confirmLoading
:
isBtnLoading
,
destroyOnClose
:
true
}
}
// effects={($, {setFieldState}) => {
// $('onFieldInit', 'type').subscribe(parentState => {
// getPayMemberPayList({memberId: details.memberId, memberType: details.memberLevelType}).then(res => {
// console.log(res, 'res')
// })
// setFieldState('type', state => {
// state.props["x-component-props"].dataSource = []
// });
// })
// }}
effects=
{
(
$
,
{
setFieldState
})
=>
{
$
(
'onFieldInit'
,
'type'
).
subscribe
(()
=>
{
getPayEAccountAllInPayGetRechargeType
().
then
(({
data
=
[]})
=>
{
setFieldState
(
'type'
,
state
=>
{
state
.
props
[
"x-component-props"
].
dataSource
=
data
.
map
(
item
=>
({
id
:
item
[
'key'
],
name
:
item
[
'value'
],
logoUrl
:
item
[
'key'
].
indexOf
(
'WEIXIN'
)
!==
-
1
?
wxpay
:
alipay
}))
});
})
})
}
}
/>
{
/* 扫码充值 */
}
<
Modal
...
...
@@ -478,7 +525,7 @@ const EAccountDetail: React.FC<{}> = () => {
<
img
src=
{
qrCode
}
alt=
""
/>
<
div
className=
{
styles
.
scanTips
}
>
<
ScanOutlined
className=
{
styles
.
scanIcon
}
/>
<
span
>
{
rechargeType
===
2
?
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.button.1'
})
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.button.2'
})
}
<
br
/>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.br'
})
}
</
span
>
<
span
>
{
rechargeType
.
indexOf
(
'WEIXIN'
)
!==
-
1
?
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.button.1'
})
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.button.2'
})
}
<
br
/>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.br'
})
}
</
span
>
</
div
>
</
div
>
</
Modal
>
...
...
@@ -488,31 +535,50 @@ const EAccountDetail: React.FC<{}> = () => {
visible=
{
withdrawVisible
}
onOk=
{
handleWithdraw
}
onCancel=
{
handleCancel
}
confirmLoading=
{
loading
}
>
<
div
>
<
Form
name=
"withdraw-form"
labelCol=
{
{
span
:
24
}
}
wrapperCol=
{
{
span
:
24
}
}
>
<
Form
form=
{
withdrawForm
}
onFinish=
{
handleWidthdrawSubmit
}
name=
"withdraw-form"
labelCol=
{
{
span
:
24
}
}
wrapperCol=
{
{
span
:
24
}
}
>
<
Form
.
Item
label=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.2.name'
})
}
name=
"name"
>
<
span
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.2.text'
})
}
</
span
>
<
span
>
{
details
?.
memberName
}
</
span
>
</
Form
.
Item
>
<
Form
.
Item
label=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.2.account'
})
}
name=
"account"
>
<
span
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.2.text'
})
}
</
span
>
<
Form
.
Item
label=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.2.account'
})
}
name=
"account
No
"
>
<
span
>
{
details
?.
accountNo
}
</
span
>
</
Form
.
Item
>
<
Form
.
Item
label=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.2.apart'
})
}
name=
"
apart
"
>
<
span
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.2.text'
})
}
</
span
>
<
Form
.
Item
label=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.2.apart'
})
}
name=
"
branchName
"
>
<
span
>
{
details
?.
branchName
}
</
span
>
</
Form
.
Item
>
<
Form
.
Item
label=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.2.amount'
})
}
help=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.2.amount.help'
})
}
>
<
Form
.
Item
label=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.2.amount'
})
}
extra=
{
`${intl.formatMessage({ id: 'payandSettle.capitalAccounts.eAccount.zuiduoketixian', defaultMessage: '最多可提现 ¥' })}${details?.usableBalance}`
}
>
<
Row
>
<
Col
span=
{
20
}
>
<
Form
.
Item
name=
"amount"
noStyle
rules=
{
[{
required
:
true
,
message
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.2.amount.message'
})
}]
}
rules=
{
[
{
required
:
true
,
message
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.2.amount.message'
})
},
{
pattern
:
/^
\d
+
(\.\d
{1,2}
)?
$/
,
message
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.jinejinxianliang'
,
defaultMessage
:
'金额仅限两位小数'
})
}
]
}
>
<
Input
addonBefore=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.2.amount.addonBefore'
})
}
placeholder=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.2.amount.placeholder'
})
}
/>
</
Form
.
Item
>
</
Col
>
<
Col
span=
{
4
}
>
<
Button
type=
"link"
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.2.button'
})
}
</
Button
>
<
Button
type=
"link"
onClick=
{
handleAll
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.modal.2.button'
})
}
</
Button
>
</
Col
>
</
Row
>
</
Form
.
Item
>
...
...
src/pages/payandSettle/capitalAccounts/eAccount/schema/index.tsx
View file @
2cbcf6b0
...
...
@@ -141,17 +141,16 @@ export const rechargeSchema: ISchema = {
type
:
"array:number"
,
"x-component"
:
'CardCheckBox'
,
"x-component-props"
:
{
dataSource
:
[
// {id: 1, name: '支付宝', logoUrl: alipay},
{
id
:
2
,
name
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.schema.rechargeSchema.type.dataSource.2'
}),
logoUrl
:
wxpay
}
],
dataSource
:
[],
// {id: 1, name: '支付宝', logoUrl: alipay},
// { id: 2, name: intl.formatMessage({ id: 'payandSettle.capitalAccounts.eAccount.schema.rechargeSchema.type.dataSource.2' }), logoUrl: wxpay }
type
:
'radio'
// CardCheckBox 单选模式
},
"title"
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.schema.rechargeSchema.type'
}),
"x-rules"
:
[
{
required
:
true
,
message
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.schema.rechargeSchema.type
。
message'
})
message
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.schema.rechargeSchema.type
.
message'
})
}
],
}
...
...
src/pages/payandSettle/eAccountApprove/components/company/index.tsx
View file @
2cbcf6b0
...
...
@@ -5,7 +5,7 @@ import MellowCard from '@/components/MellowCard';
import
{
BIND_PHONE
,
EDetailContext
,
formItemLayout
,
formItemLayoutCompany
,
prefixSelector
,
prefixSelectorEle
,
tailFormItemLayout
,
tailFormItemLayoutCompany
}
from
'../../constant'
;
import
{
EditOutlined
}
from
'@ant-design/icons'
;
import
UploadImage
from
'@/components/UploadImage'
;
import
{
postPayAllInPayBindCompanyAccount
,
postPayAllInPayBindPhone
,
postPayAllInPayIdCardCollect
,
postPayAllInPaySendVerificationCode
,
postPayAllInPaySetCompanyInfo
,
postPayAllInPaySignContract
}
from
'@/services/PayV2Api'
;
import
{
getPayAllInPayGetBankList
,
postPayAllInPayBindCompanyAccount
,
postPayAllInPayBindPhone
,
postPayAllInPayIdCardCollect
,
postPayAllInPaySendVerificationCode
,
postPayAllInPaySetCompanyInfo
,
postPayAllInPaySignContract
}
from
'@/services/PayV2Api'
;
import
useCountDown
from
'@/utils/hooks'
;
/** 图片key对应的picType值 */
...
...
@@ -35,6 +35,11 @@ const Company: React.FC<{}> = () => {
const
[
idCardBehindImg
,
setIdCardBehindImg
]
=
useState
<
string
>
()
const
[
certificateImg
,
setCertificateImg
]
=
useState
<
string
>
()
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
false
)
const
[
bankLists
,
setBankLists
]
=
useState
([])
useEffect
(()
=>
{
getPayAllInPayGetBankList
().
then
(({
data
=
[]})
=>
setBankLists
(
data
))
},
[])
useEffect
(()
=>
{
if
(
data
.
step
===
3
)
{
...
...
@@ -79,13 +84,20 @@ const Company: React.FC<{}> = () => {
}
const
onFinishCard
=
(
values
)
=>
{
setLoading
(
true
)
const
pictures
=
Object
.
keys
(
values
).
map
(
item
=>
({
picType
:
PicType
[
item
],
picture
:
values
[
item
]
}))
const
fns
=
pictures
.
map
(
item
=>
postPayAllInPayIdCardCollect
(
item
))
const
fns
=
pictures
.
map
((
item
,
index
)
=>
new
Promise
(()
=>
{
setTimeout
(()
=>
postPayAllInPayIdCardCollect
(
item
),
500
*
index
)
}))
Promise
.
all
(
fns
).
then
(
res
=>
{
console
.
log
(
res
)
}).
finally
(()
=>
{
setLoading
(
false
)
reloadFormData
()
})
}
...
...
@@ -181,7 +193,22 @@ const Company: React.FC<{}> = () => {
},
]
}
>
<
Input
placeholder=
{
intl
.
formatMessage
({
id
:
'payandSettle.eAccountApprove.components.company.mellowCard.1.bank.placeholder'
})
}
/>
{
/* <Input placeholder={intl.formatMessage({ id: 'payandSettle.eAccountApprove.components.company.mellowCard.1.bank.placeholder' })} /> */
}
<
Select
showSearch
optionFilterProp=
"label"
placeholder=
{
intl
.
formatMessage
({
id
:
'payandSettle.eAccountApprove.components.company.mellowCard.1.bank.placeholder'
})
}
filterOption=
{
(
input
,
option
)
=>
option
.
value
.
toLowerCase
().
indexOf
(
input
.
toLowerCase
())
>=
0
}
filterSort=
{
(
optionA
,
optionB
)
=>
optionA
.
value
.
toLowerCase
().
localeCompare
(
optionB
.
value
.
toLowerCase
())
}
>
{
bankLists
.
map
(
item
=>
<
Option
key=
{
item
.
id
}
value=
{
item
.
name
}
>
{
item
.
name
}
</
Option
>)
}
</
Select
>
</
Form
.
Item
>
</
Col
>
</
Row
>
...
...
src/pages/payandSettle/eAccountApprove/components/companyFinish/index.tsx
View file @
2cbcf6b0
import
React
,
{
useContext
}
from
'react'
import
React
,
{
useContext
,
useRef
,
useState
}
from
'react'
import
{
useIntl
}
from
'umi'
;
import
{
Button
,
Col
,
Form
,
Row
,
Image
}
from
'antd'
import
{
Button
,
Col
,
Row
,
Image
}
from
'antd'
import
MellowCard
from
'@/components/MellowCard'
;
import
styles
from
'./index.less'
import
{
EDetailContext
}
from
'../../constant'
import
{
postPayAllInPaySignContractQuery
}
from
'@/services/PayV2Api'
;
import
{
BIND_PHONE
,
EDetailContext
,
fetchTelCode
,
UNBIND_PHONE
}
from
'../../constant'
import
{
postPayAllInPayBindPhone
,
postPayAllInPaySignContractQuery
,
postPayAllInPayUnbindPhone
}
from
'@/services/PayV2Api'
;
import
{
useAsyncSelect
}
from
'@/formSchema/effects/useAsyncSelect'
;
import
{
bindSchema
,
unbindSchema
}
from
'../../schema/modal'
;
import
ModalForm
from
'@/components/ModalForm'
;
import
{
createFormActions
}
from
'@formily/antd'
;
import
PhoneCode
from
'../phone'
const
bindActions
=
createFormActions
();
/** 企业认证详情 */
const
CompanyFinish
:
React
.
FC
<
{}
>
=
()
=>
{
const
intl
=
useIntl
();
const
[
form
]
=
Form
.
useForm
();
const
bindRef
=
useRef
<
any
>
({})
const
eDetailContext
=
useContext
(
EDetailContext
)
const
{
ctl
,
perfection
,
data
}
=
eDetailContext
const
{
data
,
reloadFormData
}
=
eDetailContext
const
[
bindLoading
,
setBindLoading
]
=
useState
<
boolean
>
(
false
)
const
handleBind
=
()
=>
{
// console.log(bindRef)
// bindRef.current.setVisible(true)
bindRef
.
current
.
setVisible
(
true
)
}
const
contractPreview
=
async
()
=>
{
...
...
@@ -27,18 +34,34 @@ const CompanyFinish: React.FC<{}> = () => {
}
}
// 绑定解绑手机
const
handleBindSubmit
=
()
=>
{
setBindLoading
(
true
)
const
fn
=
data
?.
phone
?
postPayAllInPayUnbindPhone
:
postPayAllInPayBindPhone
bindActions
.
submit
().
then
(
async
({
values
}:
any
)
=>
{
fn
(
values
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
reloadFormData
()
}
}).
finally
(()
=>
{
setBindLoading
(
false
)
bindRef
.
current
.
setVisible
(
false
)
})
})
}
return
(<
div
>
<
MellowCard
headStyle=
{
{
borderBottom
:
'none'
}
}
title=
{
intl
.
formatMessage
({
id
:
'payandSettle.eAccountApprove.components.companyFinish.1.title'
})
}
id=
"companyInfo"
>
<
Row
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
企业名称
</
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.qiyemingcheng'
,
defaultMessage
:
'企业名称'
})
}
</
Col
>
<
Col
>
{
data
.
companyName
}
</
Col
>
</
Row
>
</
Col
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
企业对公账户
</
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.qiyeduigongzhang'
,
defaultMessage
:
'企业对公账户'
})
}
</
Col
>
<
Col
>
{
data
.
accountNo
}
</
Col
>
</
Row
>
</
Col
>
...
...
@@ -46,13 +69,13 @@ const CompanyFinish: React.FC<{}> = () => {
<
Row
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
法人姓名
</
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.farenxingming'
,
defaultMessage
:
'法人姓名'
})
}
</
Col
>
<
Col
>
{
data
.
name
}
</
Col
>
</
Row
>
</
Col
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
开户银行名称
</
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.kaihuyinhangming'
,
defaultMessage
:
'开户银行名称'
})
}
</
Col
>
<
Col
>
{
data
.
bankName
}
</
Col
>
</
Row
>
</
Col
>
...
...
@@ -60,13 +83,13 @@ const CompanyFinish: React.FC<{}> = () => {
<
Row
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
法人证件类型
</
Col
>
<
Col
>
{
data
.
cardType
===
1
?
'身份证'
:
''
}
</
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.farenzhengjianlei'
,
defaultMessage
:
'法人证件类型'
})
}
</
Col
>
<
Col
>
{
data
.
cardType
===
1
?
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.shenfenzheng'
,
defaultMessage
:
'身份证'
})
:
''
}
</
Col
>
</
Row
>
</
Col
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
开户行支行名称
</
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.kaihuhangzhihang'
,
defaultMessage
:
'开户行支行名称'
})
}
</
Col
>
<
Col
>
{
data
.
branchName
}
</
Col
>
</
Row
>
</
Col
>
...
...
@@ -74,13 +97,13 @@ const CompanyFinish: React.FC<{}> = () => {
<
Row
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
法人证件号码
</
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.farenzhengjianhao'
,
defaultMessage
:
'法人证件号码'
})
}
</
Col
>
<
Col
>
{
data
.
cardNo
}
</
Col
>
</
Row
>
</
Col
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
支行行号
</
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.zhihanghanghao'
,
defaultMessage
:
'支行行号'
})
}
</
Col
>
<
Col
>
{
data
.
bankNo
}
</
Col
>
</
Row
>
</
Col
>
...
...
@@ -88,22 +111,24 @@ const CompanyFinish: React.FC<{}> = () => {
<
Row
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
法人证件正面照
</
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.farenzhengjianzheng'
,
defaultMessage
:
'法人证件正面照'
})
}
</
Col
>
<
Col
>
<
Image
width=
{
104
}
src=
"https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png"
height=
{
104
}
src=
{
data
&&
data
.
picUrl
&&
data
.
picUrl
.
filter
(
item
=>
item
.
picType
===
8
)[
0
][
'picture'
]
}
/>
</
Col
>
</
Row
>
</
Col
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
法人证件反面照
</
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.farenzhengjianfan'
,
defaultMessage
:
'法人证件反面照'
})
}
</
Col
>
<
Col
>
<
Image
width=
{
104
}
src=
"https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png"
height=
{
104
}
src=
{
data
&&
data
.
picUrl
&&
data
.
picUrl
.
filter
(
item
=>
item
.
picType
===
9
)[
0
][
'picture'
]
}
/>
</
Col
>
</
Row
>
...
...
@@ -112,20 +137,21 @@ const CompanyFinish: React.FC<{}> = () => {
<
Row
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
企业营业执照
</
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.qiyeyingyezhi'
,
defaultMessage
:
'企业营业执照'
})
}
</
Col
>
<
Col
>
<
Image
width=
{
104
}
src=
"https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png"
height=
{
104
}
src=
{
data
&&
data
.
picUrl
&&
data
.
picUrl
.
filter
(
item
=>
item
.
picType
===
1
)[
0
][
'picture'
]
}
/>
</
Col
>
</
Row
>
</
Col
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
法人手机号
</
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.farenshoujihao'
,
defaultMessage
:
'法人手机号'
})
}
</
Col
>
<
Col
>
<
p
><
span
>
{
data
.
phone
||
'暂无'
}
</
span
><
Button
type=
"link"
onClick=
{
handleBind
}
>
{
data
.
phone
?
'解绑'
:
'绑定'
}
</
Button
></
p
>
<
p
><
span
>
{
data
.
phone
||
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.zanwu'
,
defaultMessage
:
'暂无'
})
}
</
span
><
Button
type=
"link"
onClick=
{
handleBind
}
>
{
data
.
phone
?
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.jiebang'
,
defaultMessage
:
'解绑'
})
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.bangding'
,
defaultMessage
:
'绑定'
})
}
</
Button
></
p
>
</
Col
>
</
Row
>
</
Col
>
...
...
@@ -137,6 +163,31 @@ const CompanyFinish: React.FC<{}> = () => {
<
Col
><
p
><
span
>
{
data
.
contractNo
}
</
span
><
Button
type=
"link"
onClick=
{
contractPreview
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.eAccountApprove.components.companyFinish.2.electric.button'
})
}
</
Button
></
p
></
Col
>
</
Row
>
</
MellowCard
>
<
ModalForm
modalTitle=
{
data
?.
phone
?
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.jiebangshoujihao'
,
defaultMessage
:
'解绑手机号'
})
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.bangdingxinshouji'
,
defaultMessage
:
'绑定新手机号'
})
}
currentRef=
{
bindRef
}
confirm=
{
handleBindSubmit
}
actions=
{
bindActions
}
schema=
{
data
?.
phone
?
unbindSchema
:
bindSchema
}
modalProps=
{
{
confirmLoading
:
bindLoading
}
}
components=
{
{
PhoneCode
}
}
effects=
{
(
$
,
actions
)
=>
{
useAsyncSelect
(
'areaCode'
,
fetchTelCode
)
$
(
'onFormMount'
).
subscribe
(()
=>
{
if
(
data
?.
phone
)
{
actions
.
setFieldValue
(
'phone'
,
data
.
phone
)
actions
.
setFieldState
(
'verificationCode'
,
state
=>
{
state
.
props
[
'x-component-props'
][
'type'
]
=
UNBIND_PHONE
})
}
else
{
actions
.
setFieldState
(
'verificationCode'
,
state
=>
{
state
.
props
[
'x-component-props'
][
'type'
]
=
BIND_PHONE
})
}
})
}
}
/>
<
a
href=
""
target=
"_blank"
id=
"signPrewview"
style=
{
{
display
:
'none'
,
visibility
:
"hidden"
}
}
></
a
>
</
div
>)
}
...
...
src/pages/payandSettle/eAccountApprove/components/personal/index.tsx
View file @
2cbcf6b0
import
React
,
{
useContext
,
useState
}
from
'react'
import
{
Button
,
Col
,
Form
,
Input
,
message
,
Row
,
Select
}
from
'antd'
import
MellowCard
from
'@/components/MellowCard'
;
import
{
BIND_PHONE
,
EDetailContext
,
f
etchTelCode
,
formItemLayout
,
prefixSelector
,
prefixSelectorEle
,
tailFormItemLayout
}
from
'../../constant'
;
import
{
BIND_PHONE
,
EDetailContext
,
f
ormItemLayout
,
prefixSelectorEle
,
tailFormItemLayout
}
from
'../../constant'
;
import
useCountDown
from
'@/utils/hooks'
;
import
{
PATTERN_MAPS
}
from
'@/constants/regExp'
;
import
{
postPayAllInPay
BindPhone
,
postPayAllInPayPersonalCrate
,
postPayAllInPaySendVerificationCode
,
postPayAllInPaySetRealNam
e
}
from
'@/services/PayV2Api'
;
import
{
postPayAllInPay
PersonalCrate
,
postPayAllInPaySendVerificationCod
e
}
from
'@/services/PayV2Api'
;
import
{
useIntl
}
from
'umi'
;
/** 个人 初始认证 */
...
...
@@ -18,28 +18,13 @@ const Personal: React.FC<{}> = () => {
const
onFinish
=
async
(
values
:
any
)
=>
{
setLoading
(
true
)
// // 绑定手机
// const p1 = await postPayAllInPayBindPhone({phone: values.phone, verificationCode: values.captcha}, {ctlType: 'none'})
// // 实名认证
// const p2 = await postPayAllInPaySetRealName({name: values.name, cardType: values.cardType, cardNo: values.cardNo, phone: values.phone}, {ctlType:'none'})
// 提交
const
{
code
}
=
await
postPayAllInPayPersonalCrate
({...
values
},
{
ctlType
:
"none"
})
const
{
code
}
=
await
postPayAllInPayPersonalCrate
({...
values
,
verificationCodeType
:
BIND_PHONE
},
{
ctlType
:
"none"
})
if
(
code
===
1000
)
{
reloadFormData
()
message
.
success
(
'操作成功'
)
message
.
success
(
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.caozuochenggong'
,
defaultMessage
:
'操作成功'
})
)
}
else
{
setLoading
(
false
)
}
// Promise.all([p1, p2, p3]).then(res => {
// if(res.every(item => item['code'] === 1000)) {
// reloadFormData()
// message.success('操作成功')
// } else {
// message.error('接口请求异常')
// }
// setLoading(false)
// })
}
const
{
text
,
isActive
,
start
}
=
useCountDown
({
...
...
@@ -142,17 +127,17 @@ const Personal: React.FC<{}> = () => {
<
Row
gutter=
{
8
}
>
<
Col
span=
{
20
}
>
<
Form
.
Item
name=
"
captcha
"
name=
"
verificationCode
"
noStyle
rules=
{
[
{
required
:
true
,
message
:
intl
.
formatMessage
({
id
:
'payandSettle.eAccountApprove.components.personal.captcha.message'
})
},
{
pattern
:
/^
\d
{5}$/
,
message
:
intl
.
formatMessage
({
id
:
'payandSettle.eAccountApprove.components.personal.captcha.message'
})
}
//
{
//
pattern: /^\d
{
5
}
$
/
,
//
message: intl.formatMessage(
{
id
:
'payandSettle.eAccountApprove.components.personal.captcha.message'
})
//
}
]
}
>
<
Input
placeholder=
{
intl
.
formatMessage
({
id
:
'payandSettle.eAccountApprove.components.personal.captcha.placeholder'
})
}
/>
...
...
@@ -166,7 +151,7 @@ const Personal: React.FC<{}> = () => {
<
Form
.
Item
{
...
tailFormItemLayout
}
>
<
Button
type=
"primary"
htmlType=
"submit"
loading=
{
loading
}
>
提交
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.tijiao'
,
defaultMessage
:
'提交'
})
}
</
Button
>
</
Form
.
Item
>
</
Form
>
...
...
src/pages/payandSettle/eAccountApprove/components/personalFinish/index.tsx
View file @
2cbcf6b0
...
...
@@ -10,7 +10,6 @@ import { createFormActions } from '@formily/antd'
import
{
bindSchema
,
unbindSchema
}
from
'../../schema/modal'
import
ModalForm
from
'@/components/ModalForm'
import
PhoneCode
from
'../phone'
import
{
getManageCountryAreaGetTelCode
}
from
'@/services/ManageV2Api'
import
{
useAsyncSelect
}
from
'@/formSchema/effects/useAsyncSelect'
import
{
useIntl
}
from
'umi'
...
...
@@ -43,12 +42,12 @@ const PersonalFinish: React.FC<{}> = () => {
Promise
.
all
([
p1
,
p2
]).
then
(
res
=>
{
if
(
res
.
every
(
item
=>
item
[
'code'
]
===
1000
))
{
reloadFormData
()
message
.
success
(
'操作成功'
)
message
.
success
(
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.caozuochenggong'
,
defaultMessage
:
'操作成功'
})
)
ctl
.
setFinish
(
true
)
// 已经完善
ctl
.
setPerfection
(
false
)
// 不需要完善
ctl
.
setShowAnchor
(
true
)
}
else
{
message
.
error
(
'接口请求异常'
)
message
.
error
(
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.jiekouqingqiuyi'
,
defaultMessage
:
'接口请求异常'
})
)
}
setLoading
(
false
)
})
...
...
@@ -72,7 +71,7 @@ const PersonalFinish: React.FC<{}> = () => {
const
{
text
,
isActive
,
start
}
=
useCountDown
({
maxTime
:
60
,
minTime
:
0
,
initText
:
'获取验证码'
,
initText
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.huoquyanzhengma'
,
defaultMessage
:
'获取验证码'
})
,
onEnd
:
()
=>
{
console
.
log
(
"end"
)
},
decayRate
:
1
,
delay
:
1
*
1000
...
...
@@ -89,7 +88,7 @@ const PersonalFinish: React.FC<{}> = () => {
identityNo
:
data
.
cardNo
,
})
if
(
res
.
code
===
1000
)
{
setExtra
(
`
已将验证码发送至您尾号为
${
data
.
phone
.
substr
(
7
,
4
)}
的手机号
`
)
setExtra
(
`
${
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.yijiangyanzhengma'
,
defaultMessage
:
'已将验证码发送至您尾号为'
})}${
data
.
phone
.
substr
(
7
,
4
)}${
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.deshoujihao'
,
defaultMessage
:
'的手机号'
})}
`
)
start
()
reloadFormData
()
}
...
...
@@ -106,7 +105,6 @@ const PersonalFinish: React.FC<{}> = () => {
}
const
handleBind
=
()
=>
{
console
.
log
(
bindRef
)
bindRef
.
current
.
setVisible
(
true
)
}
...
...
@@ -128,9 +126,9 @@ const PersonalFinish: React.FC<{}> = () => {
const
unbindBlank
=
()
=>
{
Modal
.
confirm
({
title
:
'提示'
,
title
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.tishi'
,
defaultMessage
:
'提示'
})
,
icon
:
<
ExclamationCircleOutlined
/>,
content
:
'是否确定解绑该银行卡?'
,
content
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.shifouquedingjie'
,
defaultMessage
:
'是否确定解绑该银行卡?'
})
,
onOk
()
{
postPayAllInPayUnbindBankCard
({
cardNo
:
data
.
bankNo
}).
then
(({
code
,
data
})
=>
{
if
(
code
===
1000
)
{
...
...
@@ -146,49 +144,49 @@ const PersonalFinish: React.FC<{}> = () => {
return
(<
div
>
{
!
perfection
?
<
div
>
<
MellowCard
headStyle=
{
{
borderBottom
:
'none'
}
}
title=
"个人信息"
id=
"personalInfo"
>
<
MellowCard
headStyle=
{
{
borderBottom
:
'none'
}
}
title=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.gerenxinxi'
,
defaultMessage
:
'个人信息'
})
}
id=
"personalInfo"
>
<
Row
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
姓名
</
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.xingming'
,
defaultMessage
:
'姓名'
})
}
</
Col
>
<
Col
>
{
data
.
name
}
</
Col
>
</
Row
>
</
Col
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
证件类型
</
Col
>
<
Col
>
{
data
.
cardType
===
1
?
'身份证'
:
''
}
</
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.zhengjianleixing'
,
defaultMessage
:
'证件类型'
})
}
</
Col
>
<
Col
>
{
data
.
cardType
===
1
?
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.shenfenzheng'
,
defaultMessage
:
'身份证'
})
:
''
}
</
Col
>
</
Row
>
</
Col
>
</
Row
>
<
Row
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
证件号码
</
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.zhengjianhaoma'
,
defaultMessage
:
'证件号码'
})
}
</
Col
>
<
Col
>
{
data
.
cardNo
}
</
Col
>
</
Row
>
</
Col
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
手机号
</
Col
>
<
Col
><
p
><
span
>
{
data
.
phone
||
'暂无'
}
</
span
><
Button
type=
"link"
onClick=
{
handleBind
}
>
{
data
.
phone
?
'解绑'
:
'绑定'
}
</
Button
></
p
></
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.shoujihao'
,
defaultMessage
:
'手机号'
})
}
</
Col
>
<
Col
><
p
><
span
>
{
data
.
phone
||
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.zanwu'
,
defaultMessage
:
'暂无'
})
}
</
span
><
Button
type=
"link"
onClick=
{
handleBind
}
>
{
data
.
phone
?
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.jiebang'
,
defaultMessage
:
'解绑'
})
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.bangding'
,
defaultMessage
:
'绑定'
})
}
</
Button
></
p
></
Col
>
</
Row
>
</
Col
>
</
Row
>
</
MellowCard
>
{
data
.
bankNo
?
<>
<
MellowCard
headStyle=
{
{
borderBottom
:
'none'
}
}
style=
{
{
marginTop
:
16
}
}
title=
"银行账户"
id=
"accountInfo"
>
<
MellowCard
headStyle=
{
{
borderBottom
:
'none'
}
}
style=
{
{
marginTop
:
16
}
}
title=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.yinhangzhanghu'
,
defaultMessage
:
'银行账户'
})
}
id=
"accountInfo"
>
<
Row
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
银行账号
</
Col
>
<
Col
><
p
><
span
>
{
data
.
bankNo
||
'暂无'
}
</
span
><
Button
type=
"link"
onClick=
{
unbindBlank
}
>
解绑
</
Button
></
p
></
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.yinhangzhanghao'
,
defaultMessage
:
'银行账号'
})
}
</
Col
>
<
Col
><
p
><
span
>
{
data
.
bankNo
||
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.zanwu'
,
defaultMessage
:
'暂无'
})
}
</
span
><
Button
type=
"link"
onClick=
{
unbindBlank
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.jiebang'
,
defaultMessage
:
'解绑'
})
}
</
Button
></
p
></
Col
>
</
Row
>
</
Col
>
<
Col
span=
{
12
}
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
开户行
</
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.kaihuhang'
,
defaultMessage
:
'开户行'
})
}
</
Col
>
<
Col
>
{
data
.
bankName
}
</
Col
>
</
Row
>
</
Col
>
...
...
@@ -196,21 +194,21 @@ const PersonalFinish: React.FC<{}> = () => {
</
MellowCard
>
<
MellowCard
headStyle=
{
{
borderBottom
:
'none'
}
}
style=
{
{
marginTop
:
16
}
}
title=
{
intl
.
formatMessage
({
id
:
'payandSettle.eAccountApprove.components.personalFinish.mellowCard.3'
})
}
id=
"electricInfo"
>
<
Row
className=
{
styles
[
'card-list'
]
}
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
电子协议
</
Col
>
<
Col
><
p
><
span
>
{
data
.
contractNo
}
</
span
><
Button
type=
"link"
onClick=
{
contractPreview
}
>
查看签约协议
</
Button
></
p
></
Col
>
<
Col
span=
{
6
}
className=
{
styles
[
'card-list_title'
]
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.dianzixieyi'
,
defaultMessage
:
'电子协议'
})
}
</
Col
>
<
Col
><
p
><
span
>
{
data
.
contractNo
}
</
span
><
Button
type=
"link"
onClick=
{
contractPreview
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.zhakanqianyuexie'
,
defaultMessage
:
'查看签约协议'
})
}
</
Button
></
p
></
Col
>
</
Row
>
</
MellowCard
>
</>
:
<
MellowCard
headStyle=
{
{
borderBottom
:
'none'
}
}
style=
{
{
marginTop
:
16
}
}
title=
""
>
<
h3
><
SoundOutlined
style=
{
{
color
:
'#00A98F'
}
}
/>
进一步完善资料,可实现提现功能~
</
h3
>
<
Button
type=
"primary"
onClick=
{
handleFinish
}
>
立即完善
</
Button
>
<
h3
><
SoundOutlined
style=
{
{
color
:
'#00A98F'
}
}
/>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.jinyibuwanshan'
,
defaultMessage
:
'进一步完善资料,可实现提现功能~'
})
}
</
h3
>
<
Button
type=
"primary"
onClick=
{
handleFinish
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.lijiwanshan'
,
defaultMessage
:
'立即完善'
})
}
</
Button
>
</
MellowCard
>
}
</
div
>
:
<
div
>
<
MellowCard
headStyle=
{
{
borderBottom
:
'none'
}
}
title=
"完善信息"
>
<
MellowCard
headStyle=
{
{
borderBottom
:
'none'
}
}
title=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.wanshanxinxi'
,
defaultMessage
:
'完善信息'
})
}
>
<
Form
{
...
formItemLayout
}
form=
{
form
}
...
...
@@ -225,7 +223,7 @@ const PersonalFinish: React.FC<{}> = () => {
>
<
Form
.
Item
name=
"cardNo"
label=
"银行账号"
label=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.yinhangzhanghao'
,
defaultMessage
:
'银行账号'
})
}
rules=
{
[
{
required
:
true
,
...
...
@@ -238,7 +236,7 @@ const PersonalFinish: React.FC<{}> = () => {
<
Form
.
Item
name=
"cardName"
label=
"开户行"
label=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.kaihuhang'
,
defaultMessage
:
'开户行'
})
}
rules=
{
[
{
required
:
true
,
...
...
@@ -249,7 +247,7 @@ const PersonalFinish: React.FC<{}> = () => {
<
Input
placeholder=
{
intl
.
formatMessage
({
id
:
'payandSettle.eAccountApprove.components.personalFinish.mellowCard.4.idcard.placeholder'
})
}
/>
</
Form
.
Item
>
<
Form
.
Item
label=
"验证码"
extra=
{
extra
}
>
<
Form
.
Item
label=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.yanzhengma'
,
defaultMessage
:
'验证码'
})
}
extra=
{
extra
}
>
<
Row
gutter=
{
8
}
>
<
Col
span=
{
20
}
>
<
Form
.
Item
...
...
@@ -258,7 +256,7 @@ const PersonalFinish: React.FC<{}> = () => {
rules=
{
[
{
required
:
true
,
message
:
'请输入验证码'
message
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.qingshuruyanzheng'
,
defaultMessage
:
'请输入验证码'
})
},
//
{
// pattern: /^\d
{
6
}
$
/
,
...
...
@@ -276,23 +274,23 @@ const PersonalFinish: React.FC<{}> = () => {
</
Form
.
Item
>
<
Form
.
Item
label=
"电子协议签约"
label=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.dianzixieyiqian'
,
defaultMessage
:
'电子协议签约'
})
}
name=
"contractNo"
// rules=
{[{
required
:
true
,
message
:
'请签约电子协议'
}]}
>
{
data
.
contractNo
?
data
.
contractNo
:
(<
Button
onClick=
{
clickSign
}
icon=
{
<
EditOutlined
/>
}
style=
{
{
width
:
'100%'
}
}
>
前往签约
</
Button
>)
}
{
data
.
contractNo
?
data
.
contractNo
:
(<
Button
onClick=
{
clickSign
}
icon=
{
<
EditOutlined
/>
}
style=
{
{
width
:
'100%'
}
}
>
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.qianwangqianyue'
,
defaultMessage
:
'前往签约'
})
}
</
Button
>)
}
</
Form
.
Item
>
<
Form
.
Item
{
...
tailFormItemLayout
}
>
<
Button
type=
"primary"
htmlType=
"submit"
loading=
{
loading
}
>
提交
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.tijiao'
,
defaultMessage
:
'提交'
})
}
</
Button
>
</
Form
.
Item
>
</
Form
>
</
MellowCard
>
</
div
>
}
<
ModalForm
modalTitle=
{
data
?.
phone
?
'解绑手机号'
:
'绑定新手机号'
}
modalTitle=
{
data
?.
phone
?
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.jiebangshoujihao'
,
defaultMessage
:
'解绑手机号'
})
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.bangdingxinshouji'
,
defaultMessage
:
'绑定新手机号'
})
}
currentRef=
{
bindRef
}
confirm=
{
handleBindSubmit
}
actions=
{
bindActions
}
...
...
src/pages/payandSettle/eAccountApprove/components/phone/index.tsx
View file @
2cbcf6b0
import
React
,
{
useEffect
,
useRef
,
useState
}
from
'react'
import
{
Row
,
Input
,
Col
,
Button
,
Result
,
message
,
Modal
}
from
'antd'
;
import
{
useState
}
from
'react'
import
{
useIntl
}
from
'umi'
import
{
Row
,
Input
,
Col
,
Button
,
}
from
'antd'
;
import
useCountDown
from
'@/utils/hooks'
;
import
{
postPayAllInPaySendVerificationCode
}
from
'@/services/PayV2Api'
;
import
{
UNBIND_PHONE
}
from
'../../constant'
;
/**
* e账户认证 发送短信验证码
...
...
@@ -11,13 +11,14 @@ import { UNBIND_PHONE } from '../../constant';
*/
const
PhoneCode
=
(
props
)
=>
{
const
intl
=
useIntl
()
const
{
value
,
form
,
schema
}
=
props
const
[
loading
,
setLoading
]
=
useState
(
false
)
const
{
text
,
isActive
,
start
}
=
useCountDown
({
maxTime
:
60
,
minTime
:
0
,
initText
:
'获取验证码'
,
initText
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.huoquyanzhengma'
,
defaultMessage
:
'获取验证码'
})
,
onEnd
:
()
=>
{
setLoading
(
false
)
},
...
...
src/pages/payandSettle/eAccountApprove/effects/useEDetail.tsx
View file @
2cbcf6b0
...
...
@@ -8,21 +8,31 @@ import { useCallback, useState, useEffect } from 'react'
*/
export
const
MEMBER_TYPE_CORPORATE
=
1
;
/**
* 个人会员
*
企业
个人会员
*/
export
const
MEMBER_TYPE_INDIVIDUAL
=
2
;
export
const
MEMBER_TYPE_CORPORATEPERSONAL
=
2
;
/**
* 渠道会员
*/
export
const
MEMBER_TYPE_CHANNEL
=
3
;
/**
* 渠道个人会员
*/
export
const
MEMBER_TYPE_CHANNELPERSONAL
=
4
;
export
const
MEMBER_TYPE
=
{
[
MEMBER_TYPE_CORPORATE
]:
'company'
,
[
MEMBER_TYPE_INDIVIDUAL
]:
'personal'
,
[
MEMBER_TYPE_CHANNEL
]:
'company'
,
[
MEMBER_TYPE_CORPORATEPERSONAL
]:
'personal'
,
[
MEMBER_TYPE_CHANNELPERSONAL
]:
'personal'
,
};
export
const
useEDetail
=
()
=>
{
const
{
member
Role
Type
}
=
getAuth
()
||
{}
/** 详情数据
null从未认证 undefined接口数据还没加载
*/
const
{
memberType
}
=
getAuth
()
||
{}
/** 详情数据 */
const
[
formData
,
setFormData
]
=
useState
<
PostPayAllInPayGetMemberInfoResponse
>
(
undefined
)
/** 企业/个人 */
const
[
type
,
setType
]
=
useState
<
'company'
|
'personal'
>
(
MEMBER_TYPE
[
member
Role
Type
])
const
[
type
,
setType
]
=
useState
<
'company'
|
'personal'
>
(
MEMBER_TYPE
[
memberType
])
/** 是否需要完善 */
const
[
perfection
,
setPerfection
]
=
useState
<
boolean
>
(
false
)
/** 是否完善过 */
...
...
@@ -39,7 +49,8 @@ export const useEDetail = () => {
const
reloadFormData
=
useCallback
(
async
()
=>
{
const
{
code
,
data
,
message
:
msg
}
=
await
postPayAllInPayGetMemberInfo
({},
{
ctlType
:
'none'
})
if
(
code
===
1000
)
{
!
data
&&
await
postPayAllInPayCreateMember
({},
{
ctlType
:
'none'
})
// 企业未设置信息0 或者 个人未提交
((
type
===
"company"
&&
data
.
step
===
0
)
||
(
type
===
"personal"
&&
data
.
isSubmit
===
2
))
&&
await
postPayAllInPayCreateMember
({},
{
ctlType
:
'none'
})
setFormData
(
data
)
}
else
{
message
.
error
(
msg
)
...
...
src/pages/payandSettle/eAccountApprove/index.tsx
View file @
2cbcf6b0
...
...
@@ -20,7 +20,7 @@ const EAccountApprove: React.FC<{}> = () => {
backed
,
ctl
,
data
}
=
formContext
console
.
log
(
data
,
'data'
)
const
personalLinkList
=
[
{
title
:
intl
.
formatMessage
({
id
:
'payandSettle.eAccountApprove.personalLinkList.1'
}),
id
:
'personalInfo'
},
{
title
:
intl
.
formatMessage
({
id
:
'payandSettle.eAccountApprove.personalLinkList.2'
}),
id
:
'accountInfo'
},
...
...
@@ -53,7 +53,7 @@ const EAccountApprove: React.FC<{}> = () => {
<
div
>
<
EDetailContext
.
Provider
value=
{
formContext
}
>
<
EDetailHeader
title=
"通联账户"
title=
{
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.tonglianzhanghu'
,
defaultMessage
:
'通联账户'
})
}
anchorList=
{
renderAnchorList
()
}
backLink=
{
backed
?
handleBack
:
false
}
/>
...
...
src/pages/payandSettle/eAccountApprove/schema/modal.ts
View file @
2cbcf6b0
import
{
PATTERN_MAPS
}
from
"@/constants/regExp"
;
import
{
getIntl
}
from
'umi'
const
intl
=
getIntl
()
export
const
bindSchema
=
{
type
:
'object'
,
...
...
@@ -15,7 +18,7 @@ export const bindSchema = {
"x-component"
:
'mega-layout'
,
"x-component-props"
:
{
grid
:
true
,
label
:
'手机号'
,
label
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.shoujihao'
,
defaultMessage
:
'手机号'
})
,
columns
:
6
,
enableSafeWidth
:
false
,
className
:
'noMarbottom'
,
...
...
@@ -34,7 +37,7 @@ export const bindSchema = {
"x-rules"
:
[
{
required
:
true
,
message
:
'请选择区号'
message
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.qingxuanzequhao'
,
defaultMessage
:
'请选择区号'
})
}
]
},
...
...
@@ -46,15 +49,15 @@ export const bindSchema = {
"x-rules"
:
[
{
pattern
:
PATTERN_MAPS
.
phone
,
message
:
'请输入正确的手机号'
message
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.qingshuruzhengque'
,
defaultMessage
:
'请输入正确的手机号'
})
},
{
required
:
true
,
message
:
'请输入手机号'
message
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.qingshurushouji'
,
defaultMessage
:
'请输入手机号'
})
}
],
"x-component-props"
:
{
placeholder
:
'输入你的手机号码'
,
placeholder
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.shurunideshou'
,
defaultMessage
:
'输入你的手机号码'
})
,
style
:
{
width
:
'100%'
}
}
}
...
...
@@ -66,7 +69,7 @@ export const bindSchema = {
"x-rules"
:
[
{
required
:
true
,
message
:
'请填写验证码'
message
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.qingtianxieyanzheng'
,
defaultMessage
:
'请填写验证码'
})
},
// {
// pattern: /^\d{6}$/,
...
...
@@ -76,7 +79,7 @@ export const bindSchema = {
"x-component-props"
:
{
btnSize
:
'middle'
,
inputSize
:
'middle'
,
placeholder
:
'请输入短信验证码'
,
placeholder
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.qingshuruduanxin'
,
defaultMessage
:
'请输入短信验证码'
})
,
type
:
null
}
},
...
...
@@ -116,15 +119,15 @@ export const unbindSchema = {
"x-rules"
:
[
{
pattern
:
PATTERN_MAPS
.
phone
,
message
:
'请输入正确的手机号'
message
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.qingshuruzhengque'
,
defaultMessage
:
'请输入正确的手机号'
})
},
{
required
:
true
,
message
:
'请输入手机号'
message
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.qingshurushouji'
,
defaultMessage
:
'请输入手机号'
})
}
],
"x-component-props"
:
{
placeholder
:
'输入你的手机号码'
,
placeholder
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.shurunideshou'
,
defaultMessage
:
'输入你的手机号码'
})
,
style
:
{
width
:
'100%'
}
}
}
...
...
@@ -136,7 +139,7 @@ export const unbindSchema = {
"x-rules"
:
[
{
required
:
true
,
message
:
'请填写验证码'
message
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.qingtianxieyanzheng'
,
defaultMessage
:
'请填写验证码'
})
},
// {
// pattern: /^\d{6}$/,
...
...
@@ -146,7 +149,7 @@ export const unbindSchema = {
"x-component-props"
:
{
btnSize
:
'middle'
,
inputSize
:
'middle'
,
placeholder
:
'请输入短信验证码'
,
placeholder
:
intl
.
formatMessage
({
id
:
'payandSettle.capitalAccounts.eAccount.qingshuruduanxin'
,
defaultMessage
:
'请输入短信验证码'
})
,
type
:
null
}
},
...
...
src/pages/procurement/callForBids/addNewBid/schema/index.ts
View file @
2cbcf6b0
...
...
@@ -79,7 +79,7 @@ const basicInfo: ISchema = {
type
:
'string'
,
required
:
true
,
enum
:
Object
.
values
(
PURCHASE_TYPE
).
map
((
item
,
index
)
=>
({
label
:
item
,
value
:
++
index
})),
title
:
'{{help(`"采购类型", "有固定采购金额:采购金额固定,合同期内不可超过采购金额,无固定采购金额:采购金额不固定,可在合同期内按需采购"`)}}'
,
title
:
`{{help('
${
getIntl
().
formatMessage
({
id
:
'schma.purchase.purchaseType.help'
,
defaultMessage
:
'采购类型'
})}
', '
${
getIntl
().
formatMessage
({
id
:
'schma.purchase.purchaseType.help.text'
,
defaultMessage
:
"有固定采购金额:采购金额固定,合同期内不可超过采购金额,无固定采购金额:采购金额不固定,可在合同期内按需采购"
})}
')}}`
,
"x-component-props"
:
{
placeholder
:
intl
.
formatMessage
({
id
:
'schma.purchase.purchaseType'
}),
}
...
...
src/pages/procurement/callForBids/readySubmitReport/schema/index.ts
View file @
2cbcf6b0
import
{
ISchema
}
from
'@formily/antd'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
getIntl
}
from
'umi'
;
const
intl
=
getIntl
();
export
const
tableListSchema
:
ISchema
=
{
type
:
'object'
,
...
...
src/pages/transaction/components/orderPayModal/index.tsx
View file @
2cbcf6b0
...
...
@@ -36,7 +36,7 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
const
{
data
,
payList
,
currentPayInfoId
}
=
useContext
(
OrderDetailContext
)
const
[
visible
,
setVisible
]
=
useState
(
false
)
const
[
checked
,
setChecked
]
=
useState
<
any
>
({})
const
[
current
,
setCurrent
]
=
useState
(
0
)
// 0选择方式 1线下支付方式 2授信支付 3余额支付 4微信支付 5货到付款 6支付宝
100账期 101月结
1000清除
const
[
current
,
setCurrent
]
=
useState
(
0
)
// 0选择方式 1线下支付方式 2授信支付 3余额支付 4微信支付 5货到付款 6支付宝
9账期 8月结 99通联
1000清除
const
[
payStep
,
setPayStep
]
=
useState
(
0
)
// 支付模态框的步骤 0选方式 1下一步的具体操作 2输入支付密码
const
mobilePayFlag
=
useRef
(
0
)
// 用于判断移动支付类型 4微信6支付宝
const
[
qrLoading
,
setQrLoading
]
=
useState
(
false
)
...
...
@@ -208,20 +208,25 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
setPayStep
(
1
)
setQrLoading
(
true
)
handleSubmitPay
()
}
else
if
(
checked
.
id
===
100
)
{
}
else
if
(
checked
.
id
===
9
)
{
console
.
log
(
'选择了账期结算模式'
)
mobilePayFlag
.
current
=
0
setCurrent
(
100
)
setCurrent
(
9
)
setPayStep
(
1
)
}
else
if
(
checked
.
id
===
101
)
{
}
else
if
(
checked
.
id
===
8
)
{
console
.
log
(
'选择了月结结算模式'
)
mobilePayFlag
.
current
=
0
setCurrent
(
101
)
setCurrent
(
8
)
setPayStep
(
1
)
}
else
if
(
checked
.
id
===
11
||
checked
.
id
===
12
||
checked
.
id
===
13
||
checked
.
id
===
14
)
{
console
.
log
(
'选择了通联模式'
)
mobilePayFlag
.
current
=
0
setCurrent
(
99
)
setPayStep
(
1
)
}
else
{
message
.
error
(
'暂只支持线下支付、授信额度支付、余额支付、货到付款、微信、支付宝、账期月结支付方式'
)
}
//
else {
//
message.error('暂只支持线下支付、授信额度支付、余额支付、货到付款、微信、支付宝、账期月结支付方式')
//
}
}
else
{
message
.
error
(
'请先选择支付方式'
)
}
...
...
@@ -260,13 +265,17 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
}
else
if
(
current
===
5
)
{
// 开始提交货到付款数据
handleSubmitPay
()
}
else
if
(
current
===
100
)
{
}
else
if
(
current
===
9
)
{
// 开始提交账期结算数据
// @todo 与后端联调传参
handleSubmitPay
()
}
else
if
(
current
===
101
)
{
}
else
if
(
current
===
8
)
{
// 开始提交月结结算数据
// @todo 与后端联调传参
handleSubmitPay
()
}
else
if
(
current
===
4
||
current
===
6
)
{
// 微信 支付宝 提示扫码支付
return
message
.
info
(
'请扫码完成支付'
)
}
else
if
(
current
===
99
)
{
// 提交通联支付
handleSubmitPay
()
}
...
...
@@ -484,7 +493,6 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
本次需支付(元):
</
span
>
<
span
className=
{
cx
(
style
.
amount
,
style
.
amount2
)
}
>
{
/* {data?.payments?.filter(item => item.paymentId === Number(currentPayInfoId))[0]?.payAmount?.toFixed(2)} */
}
{
Number
(
paymentAmount
).
toFixed
(
2
)
}
</
span
>
</
p
>
...
...
@@ -508,7 +516,6 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
本次需支付(元):
</
span
>
<
span
className=
{
cx
(
style
.
amount
,
style
.
amount2
)
}
>
{
/* {data?.payments?.filter(item => item.paymentId === Number(currentPayInfoId))[0]?.payAmount?.toFixed(2)} */
}
{
Number
(
paymentAmount
).
toFixed
(
2
)
}
</
span
>
</
p
>
...
...
@@ -532,7 +539,6 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
支付金额(元):
</
span
>
<
span
className=
{
cx
(
style
.
amount
,
style
.
amount2
)
}
>
{
/* {data?.payments?.filter(item => item.paymentId === Number(currentPayInfoId))[0]?.payAmount?.toFixed(2)} */
}
{
Number
(
paymentAmount
).
toFixed
(
2
)
}
</
span
>
</
p
>
...
...
@@ -604,7 +610,7 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
}
{
/* 账期结算 */
}
{
current
===
100
&&
current
===
9
&&
<
div
>
<
p
style=
{
{
fontWeight
:
"bold"
}
}
>
账期支付确认
</
p
>
<
p
>
...
...
@@ -620,7 +626,7 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
支付渠道:
</
span
>
<
span
className=
{
style
.
amount
}
>
{
/* {transformPayList['5'][0]['label']} */
}
{
checked
?.
channel
}
</
span
>
</
p
>
<
p
>
...
...
@@ -628,7 +634,6 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
支付金额(元):
</
span
>
<
span
className=
{
cx
(
style
.
amount
,
style
.
amount2
)
}
>
{
/* {data?.payments?.filter(item => item.paymentId === Number(currentPayInfoId))[0]?.payAmount?.toFixed(2)} */
}
{
Number
(
paymentAmount
).
toFixed
(
2
)
}
</
span
>
</
p
>
...
...
@@ -636,7 +641,7 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
}
{
/* 月结结算 */
}
{
current
===
101
&&
current
===
8
&&
<
div
>
<
p
style=
{
{
fontWeight
:
"bold"
}
}
>
月结支付确认
</
p
>
<
p
>
...
...
@@ -652,7 +657,38 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
支付渠道:
</
span
>
<
span
className=
{
style
.
amount
}
>
{
/* {transformPayList['6'][0]['label']} */
}
{
checked
?.
channel
}
</
span
>
</
p
>
<
p
>
<
span
className=
{
style
.
title
}
>
支付金额(元):
</
span
>
<
span
className=
{
cx
(
style
.
amount
,
style
.
amount2
)
}
>
{
Number
(
paymentAmount
).
toFixed
(
2
)
}
</
span
>
</
p
>
</
div
>
}
{
/* 通联 */
}
{
current
===
99
&&
<
div
>
<
p
style=
{
{
fontWeight
:
"bold"
}
}
>
通联支付确认
</
p
>
<
p
>
<
span
className=
{
style
.
title
}
>
支付方式:
</
span
>
<
span
className=
{
style
.
amount
}
>
通联支付
</
span
>
</
p
>
<
p
>
<
span
className=
{
style
.
title
}
>
支付渠道:
</
span
>
<
span
className=
{
style
.
amount
}
>
{
checked
?.
channel
}
</
span
>
</
p
>
<
p
>
...
...
@@ -660,7 +696,6 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
支付金额(元):
</
span
>
<
span
className=
{
cx
(
style
.
amount
,
style
.
amount2
)
}
>
{
/* {data?.payments?.filter(item => item.paymentId === Number(currentPayInfoId))[0]?.payAmount?.toFixed(2)} */
}
{
Number
(
paymentAmount
).
toFixed
(
2
)
}
</
span
>
</
p
>
...
...
src/pages/transaction/purchaseOrder/constant/index.tsx
View file @
2cbcf6b0
...
...
@@ -50,7 +50,7 @@ export const baseOrderListColumns: any = () => {
fixed
:
'left'
,
},
{
title
:
intl
.
formatMessage
({
id
:
'purchaseOrder.dingdan
zhaiyao
'
,
defaultMessage
:
'订单摘要'
}),
title
:
intl
.
formatMessage
({
id
:
'purchaseOrder.dingdan
digest
'
,
defaultMessage
:
'订单摘要'
}),
align
:
'center'
,
dataIndex
:
'digest'
,
key
:
'digest'
,
...
...
src/pages/transaction/saleOrder/index.tsx
View file @
2cbcf6b0
...
...
@@ -116,7 +116,12 @@ const SaleOrder: React.FC<SaleOrderProps> = () => {
payForm
.
setFieldsValue
({
'payChart'
:
`
${
window
.
location
.
origin
}
/memberCenter/tranactionAbility/purchaseOrder/readyPayOrder/detail?id=
${
currentPayRef
.
current
.
orderId
}
`
})
}
else
if
(
payModel
===
"app"
)
{
// 生成二维码
QRCode
.
toDataURL
(
JSON
.
stringify
({
path
:
'MycommodityDetails'
,
orderId
:
currentPayRef
.
current
.
orderId
})).
then
((
url
:
any
)
=>
{
QRCode
.
toDataURL
(
JSON
.
stringify
({
path
:
'MycommodityDetails'
,
orderId
:
currentPayRef
.
current
.
orderId
,
buyerMemberId
:
currentPayRef
.
current
.
buyerMemberId
,
buyerRoleId
:
currentPayRef
.
current
.
buyerRoleId
})).
then
((
url
:
any
)
=>
{
setQrCode
(
url
)
}).
catch
((
err
:
any
)
=>
{
console
.
error
(
err
)
...
...
@@ -193,9 +198,6 @@ const SaleOrder: React.FC<SaleOrderProps> = () => {
// 转单调接口逻辑
const
handelTransformOrder
=
async
(
defaultRoleId
,
orderId
?)
=>
{
if
(
!
serversRoles
.
length
)
{
return
message
.
error
(
intl
.
formatMessage
({
id
:
'saleOrder.dangqiandengluhui'
,
defaultMessage
:
'当前登录会员,无服务消费者角色,无法进行转单'
}))
}
orderIds
.
current
=
selectRef
.
current
.
length
?
selectRef
.
current
:
(
orderId
?
[
orderId
]
:
[]);
if
(
orderId
)
{
const
{
code
,
data
}
=
await
postOrderVendorTransferPreview
({
...
...
@@ -228,12 +230,18 @@ const SaleOrder: React.FC<SaleOrderProps> = () => {
// 单个转单 传入默认第一个角色
const
onlyTransform
=
(
orderId
)
=>
{
if
(
!
serversRoles
.
length
)
{
return
message
.
error
(
intl
.
formatMessage
({
id
:
'saleOrder.dangqiandengluhui'
,
defaultMessage
:
'当前登录会员,无服务消费者角色,无法进行转单'
}))
}
handelTransformOrder
(
serversRoles
[
0
][
'memberRoleId'
],
orderId
)
transformActions
.
setFieldValue
(
'orderId'
,
orderId
)
}
// 批量转
const
batchTransform
=
()
=>
{
if
(
!
serversRoles
.
length
)
{
return
message
.
error
(
intl
.
formatMessage
({
id
:
'saleOrder.dangqiandengluhui'
,
defaultMessage
:
'当前登录会员,无服务消费者角色,无法进行转单'
}))
}
handelTransformOrder
(
serversRoles
[
0
][
'memberRoleId'
])
transformActions
.
setFieldValue
(
'orderId'
,
null
)
}
...
...
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