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
shenshaokai
jinfa-platform
Commits
592c7f64
Commit
592c7f64
authored
Oct 15, 2020
by
XieZhiXiong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
开发中
parent
3e2d8bc1
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
511 additions
and
177 deletions
+511
-177
index.less
src/components/MellowCard/index.less
+1
-1
index.ts
src/constants/index.ts
+36
-2
constant.ts
src/pages/payandSettle/constant.ts
+59
-0
index.tsx
...tion/quotaMenage/detail/components/IntroduceRow/index.tsx
+52
-3
index.tsx
...ation/quotaMenage/detail/components/TradeRecord/index.tsx
+129
-76
index.tsx
...yandSettle/creditApplication/quotaMenage/detail/index.tsx
+110
-55
index.tsx
...ages/payandSettle/creditApplication/quotaMenage/index.tsx
+75
-36
index.ts
...ayandSettle/creditApplication/quotaMenage/schema/index.ts
+49
-4
No files found.
src/components/MellowCard/index.less
View file @
592c7f64
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
&-title {
&-title {
line-height: 24px;
line-height: 24px;
padding-bottom: 0;
//
padding-bottom: 0;
font-size: 14px;
font-size: 14px;
font-weight: 500;
font-weight: 500;
color: rgba(23, 43, 77, 1);
color: rgba(23, 43, 77, 1);
...
...
src/constants/index.ts
View file @
592c7f64
...
@@ -850,4 +850,38 @@ export const InquiryStateTexts = {
...
@@ -850,4 +850,38 @@ export const InquiryStateTexts = {
2
:
'待确认'
,
2
:
'待确认'
,
3
:
'接受报价'
,
3
:
'接受报价'
,
4
:
'不接受报价'
,
4
:
'不接受报价'
,
}
}
\ No newline at end of file
// 授信状态
export
const
CREDIT_STATUS_NOT_APPLIED
=
1
;
// 未申请
export
const
CREDIT_STATUS_APPLYING
=
2
;
// 申请中
export
const
CREDIT_STATUS_NORMAL
=
3
;
// 正常
export
const
CREDIT_STATUS_FROZEN
=
4
;
// 已冻结
export
const
CREDIT_STATUS
=
{
[
CREDIT_STATUS_NOT_APPLIED
]:
'未申请'
,
[
CREDIT_STATUS_APPLYING
]:
'申请中'
,
[
CREDIT_STATUS_NORMAL
]:
'正常'
,
[
CREDIT_STATUS_FROZEN
]:
'已冻结'
,
};
// 授信还款状态
export
const
CREDIT_REPAYMENT_STATUS_OUTSTANDING
=
1
;
// 账单待还
export
const
CREDIT_REPAYMENT_STATUS_UNCONFIRMED
=
2
;
// 待确认还款结果
export
const
CREDIT_REPAYMENT_STATUS_PAID
=
3
;
// 账单已还
export
const
CREDIT_REPAYMENT_STATUS_OVERDUE
=
4
;
// 逾期
export
const
CREDIT_REPAYMENT_STATUS
=
{
[
CREDIT_REPAYMENT_STATUS_OUTSTANDING
]:
'账单待还'
,
[
CREDIT_REPAYMENT_STATUS_UNCONFIRMED
]:
'待确认还款结果'
,
[
CREDIT_REPAYMENT_STATUS_PAID
]:
'账单已还'
,
[
CREDIT_REPAYMENT_STATUS_OVERDUE
]:
'逾期'
,
};
// 账单交易项目
export
const
BILL_TRADE_OPERATION_ORDER_PAY
=
1
;
// 订单支付
export
const
BILL_TRADE_OPERATION_ORDER_RETURN
=
2
;
// 订单退款
export
const
BILL_TRADE_OPERATION_REPAYMENT
=
3
;
// 还款
export
const
BILL_TRADE_OPERATION
=
{
[
BILL_TRADE_OPERATION_ORDER_PAY
]:
'订单支付'
,
[
BILL_TRADE_OPERATION_ORDER_RETURN
]:
'订单退款'
,
[
BILL_TRADE_OPERATION_REPAYMENT
]:
'还款'
,
};
\ No newline at end of file
src/pages/payandSettle/constant.ts
0 → 100644
View file @
592c7f64
/*
* @Author: XieZhiXiong
* @Date: 2020-10-15 15:41:51
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-10-15 15:44:52
* @Description:
*/
import
{
MEMBER_STATUS_NORMAL
,
MEMBER_STATUS_FROZEN
,
CREDIT_REPAYMENT_STATUS_OUTSTANDING
,
CREDIT_REPAYMENT_STATUS_UNCONFIRMED
,
CREDIT_REPAYMENT_STATUS_PAID
,
CREDIT_REPAYMENT_STATUS_OVERDUE
,
}
from
'@/constants'
;
// 账单交易状态
export
const
BILL_TRADE_STATUS_UNCONFIRMED
=
1
;
// 待确认还款结果
export
const
BILL_TRADE_STATUS_OUTSTANDIND
=
2
;
// 确认未到账
export
const
BILL_TRADE_STATUS_RECEIVED
=
3
;
// 确认到账
export
const
BILL_TRADE_STATUS_TAB_MAP
=
{
[
BILL_TRADE_STATUS_UNCONFIRMED
]:
'primary'
,
[
BILL_TRADE_STATUS_OUTSTANDIND
]:
'danger'
,
[
BILL_TRADE_STATUS_RECEIVED
]:
'success'
,
};
export
const
STATUS_COLOR_MAP
=
{
0
:
'#669EDE'
,
1
:
'#41CC9E'
,
2
:
'#EF6260'
,
};
export
const
STATUS_COLOR_TXT
=
{
0
:
'待审核'
,
1
:
'审核通过'
,
2
:
'冻结'
,
};
// 还款状态 StatusTag map
export
const
CREDIT_REPAYMENT_STATUS_TAG_MAP
=
{
[
CREDIT_REPAYMENT_STATUS_OUTSTANDING
]:
'default'
,
[
CREDIT_REPAYMENT_STATUS_UNCONFIRMED
]:
'primary'
,
[
CREDIT_REPAYMENT_STATUS_PAID
]:
'success'
,
[
CREDIT_REPAYMENT_STATUS_OVERDUE
]:
'danger'
,
};
// 会员状态 StatusTag map
export
const
MEMBER_STATUS_TAG_MAP
=
{
[
MEMBER_STATUS_NORMAL
]:
'success'
,
[
MEMBER_STATUS_FROZEN
]:
'default'
};
// 会员状态 StatusTag map
export
const
MEMBER_STATUS_BADGE_MAP
=
{
1
:
'#EF6260'
,
2
:
'#EF6260'
,
};
\ No newline at end of file
src/pages/payandSettle/creditApplication/quotaMenage/detail/components/IntroduceRow/index.tsx
View file @
592c7f64
...
@@ -16,7 +16,7 @@ import { Pie } from '@/components/Charts';
...
@@ -16,7 +16,7 @@ import { Pie } from '@/components/Charts';
import
StatusTag
from
'@/components/StatusTag'
;
import
StatusTag
from
'@/components/StatusTag'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
repaymentModalSchema
,
uploadVoucherModalSchema
}
from
'./schema'
;
import
{
repaymentModalSchema
,
uploadVoucherModalSchema
}
from
'./schema'
;
import
TradeRecord
from
'../TradeRecord'
;
import
TradeRecord
,
{
TradeRecordProps
}
from
'../TradeRecord'
;
import
styles
from
'./index.less'
;
import
styles
from
'./index.less'
;
const
repaymentFormActions
=
createFormActions
();
const
repaymentFormActions
=
createFormActions
();
...
@@ -24,15 +24,64 @@ const uploadVoucherFormActions = createFormActions();
...
@@ -24,15 +24,64 @@ const uploadVoucherFormActions = createFormActions();
const
{
Option
}
=
Select
;
const
{
Option
}
=
Select
;
interface
IntroduceRowProps
{
export
interface
DetailParams
{
id
:
string
;
};
export
interface
DetailData
{
/**
* 账单名称(格式:yyyyMMdd~yyyyMMdd)
*/
billName
:
string
/**
* 账单额度
*/
billQuota
:
number
/**
* 剩余应还额度
*/
residueRepayQuota
:
number
/**
* 账单日期
*/
billDay
:
number
/**
* 还款周期
*/
repayPeriod
:
number
/**
* 到期时间
*/
expireTime
:
string
/**
* 到期天数(复数已到期正数未到期)
*/
expireDay
:
number
/**
* 最后还款日期
*/
lastRepayDate
:
string
};
interface
IntroduceRowProps
extends
TradeRecordProps
{
quotaData
:
{
quotaData
:
{
x
:
string
,
x
:
string
,
y
:
number
,
y
:
number
,
}[],
}[],
// 时间段下拉框选项
options
:
{
title
:
string
,
value
:
string
,
}[];
// 获取账单账单记录详情
fetchCreditDetail
:
(
params
:
DetailParams
)
=>
Promise
<
DetailData
>
;
};
};
const
IntroduceRow
:
React
.
FC
<
IntroduceRowProps
>
=
({
const
IntroduceRow
:
React
.
FC
<
IntroduceRowProps
>
=
({
quotaData
=
[],
quotaData
=
[],
fetchRecordList
,
})
=>
{
})
=>
{
const
[
visibleRecord
,
setVisibleRecord
]
=
useState
(
false
);
const
[
visibleRecord
,
setVisibleRecord
]
=
useState
(
false
);
const
[
visibleRepayment
,
setVisibleRepayment
]
=
useState
(
false
);
const
[
visibleRepayment
,
setVisibleRepayment
]
=
useState
(
false
);
...
@@ -184,7 +233,7 @@ const IntroduceRow: React.FC<IntroduceRowProps> = ({
...
@@ -184,7 +233,7 @@ const IntroduceRow: React.FC<IntroduceRowProps> = ({
</
div
>
</
div
>
</>
</>
)
:
(
)
:
(
<
TradeRecord
/>
<
TradeRecord
fetchRecordList=
{
fetchRecordList
}
/>
)
}
)
}
</
MellowCard
>
</
MellowCard
>
</
Col
>
</
Col
>
...
...
src/pages/payandSettle/creditApplication/quotaMenage/detail/components/TradeRecord/index.tsx
View file @
592c7f64
import
React
,
{
useState
}
from
'react'
;
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
import
{
Row
,
Row
,
Col
,
Col
,
...
@@ -6,105 +6,158 @@ import {
...
@@ -6,105 +6,158 @@ import {
Pagination
,
Pagination
,
}
from
'antd'
;
}
from
'antd'
;
import
StatusTag
from
'@/components/StatusTag'
;
import
StatusTag
from
'@/components/StatusTag'
;
import
{
BILL_TRADE_STATUS_TAB_MAP
,
}
from
'../../../../../constant'
;
import
TradeWrap
from
'../TradeWrap'
;
import
TradeWrap
from
'../TradeWrap'
;
import
CheckVoucherModal
from
'../CheckVoucherModal'
;
import
CheckVoucherModal
from
'../CheckVoucherModal'
;
import
styles
from
'./index.less'
;
import
styles
from
'./index.less'
;
interface
TradeRecordProps
{
const
PAGE_SIZE
=
4
;
export
interface
RecordParams
{
// creditId: string; // 授信id
// billId: string; // 账单id
current
:
number
;
pageSize
:
number
;
};
};
const
TradeRecord
:
React
.
FC
<
TradeRecordProps
>
=
({
export
interface
RecordItem
{
/**
* 交易流水号
*/
tradeCode
:
string
/**
* 交易时间
*/
tradeTime
:
string
/**
* 交易金额
*/
tradeMoney
:
number
/**
* 交易项目:1-订单支付,2-订单退款,3-还款
*/
operation
:
number
/**
* 交易项目名称
*/
operationName
:
string
/**
* 状态:1-待确认还款结果,2-确认未到账,3-确认到账
*/
status
:
number
/**
* 交易状态名称
*/
statusName
:
string
/**
* 备注
*/
remark
:
string
/**
* 支付凭证 ,PayProveBO
*/
payProveList
:
{
/**
* 证明名称
*/
name
?:
string
/**
* 证明地址
*/
proveUrl
?:
string
}[]
};
export
interface
TradeRecordProps
{
// 获取账单账单记录详情
fetchRecordList
:
(
params
:
RecordParams
)
=>
Promise
<
{
data
:
RecordItem
[]
,
totalCount
:
number
}
>
;
};
const
TradeRecord
:
React
.
FC
<
TradeRecordProps
>
=
({
fetchRecordList
,
})
=>
{
})
=>
{
const
[
voucherVisible
,
setVoucherVisible
]
=
useState
(
false
);
const
[
voucherVisible
,
setVoucherVisible
]
=
useState
(
false
);
const
[
record
,
setRecord
]
=
useState
<
{
data
:
RecordItem
[],
totalCount
:
number
}
>
({
data
:
[],
totalCount
:
0
});
const
[
page
,
setPage
]
=
useState
(
1
);
const
[
size
,
setSize
]
=
useState
(
PAGE_SIZE
);
useEffect
(()
=>
{
if
(
fetchRecordList
)
{
fetchRecordList
}
},
[]);
const
handleCheckInfo
=
record
=>
{
const
handleCheckInfo
=
record
=>
{
// setData
// setData
setVoucherVisible
(
true
);
setVoucherVisible
(
true
);
};
};
const
handlePaginationChange
=
(
page
,
size
)
=>
{
setPage
(
page
);
setSize
(
size
);
fetchRecordList
({
current
:
page
,
pageSize
:
size
,
}).
then
(
res
=>
{
setRecord
(
res
);
});
};
return
(
return
(
<
div
className=
{
styles
.
record
}
>
<
div
className=
{
styles
.
record
}
>
<
div
className=
{
styles
.
list
}
>
<
div
className=
{
styles
.
list
}
>
<
TradeWrap
>
<
TradeWrap
>
<
TradeWrap
.
TradeItem
>
{
record
.
data
.
map
(
item
=>
(
<
Descriptions
column=
{
1
}
>
<
TradeWrap
.
TradeItem
key=
{
item
.
tradeCode
}
>
<
Descriptions
.
Item
label=
"交易流水号"
>
<
Descriptions
column=
{
1
}
>
<
Row
justify=
"space-between"
>
<
Descriptions
.
Item
label=
"交易流水号"
>
<
Col
span=
{
12
}
>
<
Row
justify=
"space-between"
>
<
a
onClick=
{
()
=>
handleCheckInfo
({})
}
>
20200820000010
</
a
>
<
Col
span=
{
12
}
>
</
Col
>
<
a
onClick=
{
()
=>
handleCheckInfo
({})
}
>
{
item
.
tradeCode
}
</
a
>
<
Col
</
Col
>
span=
{
10
}
<
Col
style=
{
{
span=
{
10
}
textAlign
:
'right'
,
style=
{
{
}
}
textAlign
:
'right'
,
>
}
}
<
StatusTag
type=
"primary"
title=
"待确认还款结果"
/>
>
</
Col
>
<
StatusTag
type=
{
BILL_TRADE_STATUS_TAB_MAP
[
item
.
status
]
}
title=
{
item
.
statusName
}
/>
</
Row
>
</
Col
>
</
Descriptions
.
Item
>
</
Row
>
<
Descriptions
.
Item
label=
"交易项目"
>
</
Descriptions
.
Item
>
<
Row
justify=
"space-between"
>
<
Descriptions
.
Item
label=
"交易项目"
>
<
Col
span=
{
12
}
>
<
Row
justify=
"space-between"
>
还款
<
Col
span=
{
12
}
>
</
Col
>
{
item
.
operationName
}
<
Col
</
Col
>
span=
{
10
}
<
Col
style=
{
{
span=
{
10
}
textAlign
:
'right'
,
style=
{
{
}
}
textAlign
:
'right'
,
>
}
}
<
strong
>
+30,000.00元
</
strong
>
>
</
Col
>
<
strong
>
{
item
.
tradeMoney
}
元
</
strong
>
</
Row
>
</
Col
>
</
Descriptions
.
Item
>
</
Row
>
<
Descriptions
.
Item
label=
"交易时间"
>
2020-08-25 08:58
</
Descriptions
.
Item
>
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"备注"
>
订单号:DTR980
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"交易时间"
>
{
item
.
tradeTime
}
</
Descriptions
.
Item
>
</
Descriptions
>
<
Descriptions
.
Item
label=
"备注"
>
{
item
.
remark
}
</
Descriptions
.
Item
>
</
TradeWrap
.
TradeItem
>
</
Descriptions
>
<
TradeWrap
.
TradeItem
>
</
TradeWrap
.
TradeItem
>
<
Descriptions
column=
{
1
}
>
))
}
<
Descriptions
.
Item
label=
"交易流水号"
>
<
Row
justify=
"space-between"
>
<
Col
span=
{
12
}
>
<
a
onClick=
{
()
=>
handleCheckInfo
}
>
20200820000010
</
a
>
</
Col
>
<
Col
span=
{
10
}
style=
{
{
textAlign
:
'right'
,
}
}
>
<
StatusTag
type=
"primary"
title=
"待确认还款结果"
/>
</
Col
>
</
Row
>
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"交易项目"
>
<
Row
justify=
"space-between"
>
<
Col
span=
{
12
}
>
还款
</
Col
>
<
Col
span=
{
10
}
style=
{
{
textAlign
:
'right'
,
}
}
>
<
strong
>
+30,000.00元
</
strong
>
</
Col
>
</
Row
>
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"交易时间"
>
2020-08-25 08:58
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"备注"
>
订单号:DTR980
</
Descriptions
.
Item
>
</
Descriptions
>
</
TradeWrap
.
TradeItem
>
</
TradeWrap
>
</
TradeWrap
>
</
div
>
</
div
>
<
div
className=
{
styles
.
pagination
}
>
<
div
className=
{
styles
.
pagination
}
>
<
Pagination
size=
"small"
total=
{
50
}
/>
<
Pagination
size=
"small"
current=
{
page
}
pageSize=
{
size
}
total=
{
50
}
onChange=
{
handlePaginationChange
}
/>
</
div
>
</
div
>
<
CheckVoucherModal
<
CheckVoucherModal
...
...
src/pages/payandSettle/creditApplication/quotaMenage/detail/index.tsx
View file @
592c7f64
import
React
,
{
Suspense
}
from
'react'
;
import
React
,
{
Suspense
,
useEffect
,
useState
}
from
'react'
;
import
{
import
{
PageHeader
,
PageHeader
,
Descriptions
,
Descriptions
,
Card
,
Spin
,
Spin
,
Button
,
Badge
,
Badge
,
message
,
message
,
}
from
'antd'
;
}
from
'antd'
;
import
{
FormOutlined
}
from
'@ant-design/icons'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
history
}
from
'umi'
;
import
{
history
}
from
'umi'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
GetPayCreditApplyGetCreditDetailResponse
}
from
'@/services/PayApi'
;
import
{
usePageStatus
,
PageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
MEMBER_STATUS
,
CREDIT_REPAYMENT_STATUS
,
}
from
'@/constants'
;
import
AvatarWrap
from
'@/components/AvatarWrap'
;
import
AvatarWrap
from
'@/components/AvatarWrap'
;
import
StatusTag
from
'@/components/StatusTag'
;
import
StatusTag
from
'@/components/StatusTag'
;
import
{
MEMBER_STATUS_BADGE_MAP
,
CREDIT_REPAYMENT_STATUS_TAG_MAP
,
}
from
'../../../constant'
;
import
styles
from
'./index.less'
;
import
styles
from
'./index.less'
;
const
IntroduceRow
=
React
.
lazy
(()
=>
import
(
'./components/IntroduceRow'
));
const
IntroduceRow
=
React
.
lazy
(()
=>
import
(
'./components/IntroduceRow'
));
...
@@ -20,71 +28,118 @@ const BillInfo = React.lazy(() => import('./components/BillInfo'));
...
@@ -20,71 +28,118 @@ const BillInfo = React.lazy(() => import('./components/BillInfo'));
const
HistoryList
=
React
.
lazy
(()
=>
import
(
'../../components/HistoryList'
));
const
HistoryList
=
React
.
lazy
(()
=>
import
(
'../../components/HistoryList'
));
const
QuotaMenageDetail
:
React
.
FC
=
()
=>
{
const
QuotaMenageDetail
:
React
.
FC
=
()
=>
{
const
{
id
,
validateId
,
pageStatus
}
=
usePageStatus
();
const
[
creditInfo
,
setCreditInfo
]
=
useState
<
GetPayCreditApplyGetCreditDetailResponse
>
(
null
);
const
[
infoLoading
,
setInfoLoading
]
=
useState
(
false
);
const
getCreditDetail
=
()
=>
{
setInfoLoading
(
true
);
PublicApi
.
getPayCreditApplyGetCreditDetail
({
id
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setCreditInfo
(
res
.
data
);
}
}).
finally
(()
=>
{
setInfoLoading
(
false
);
});
};
useEffect
(()
=>
{
getCreditDetail
();
},
[]);
const
quotaData
=
[
const
quotaData
=
[
{
{
x
:
'剩余可用额度(元)'
,
x
:
'剩余可用额度(元)'
,
y
:
8
0
,
y
:
creditInfo
&&
creditInfo
.
canUseQuota
?
creditInfo
.
canUseQuota
:
0
,
},
},
{
{
x
:
'已用额度(元)'
,
x
:
'已用额度(元)'
,
y
:
2
0
,
y
:
creditInfo
&&
creditInfo
.
useQuota
?
creditInfo
.
useQuota
:
0
,
},
},
];
];
const
fetchRecordList
=
(
params
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
PublicApi
.
getPayCreditApplyPageCreditTradeRecord
({
creditId
:
id
,
...
params
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
resolve
(
res
.
data
);
}
reject
();
}).
catch
(()
=>
{
reject
();
});
});
};
return
(
return
(
<
PageHeaderWrapper
<
Spin
spinning=
{
infoLoading
}
>
title=
{
<
PageHeaderWrapper
<>
title=
{
<
PageHeader
<>
style=
{
{
padding
:
'0'
}
}
<
PageHeader
onBack=
{
()
=>
history
.
goBack
()
}
style=
{
{
padding
:
'0'
}
}
title=
{
onBack=
{
()
=>
history
.
goBack
()
}
<
AvatarWrap
title=
{
info=
{
{
<
AvatarWrap
name
:
'订单号:DPTY12'
,
info=
{
{
}
}
name
:
creditInfo
?.
member
?.
memberName
,
extra=
"青铜会员"
}
}
/>
extra=
{
creditInfo
?.
member
?.
levelTag
}
}
/>
extra=
{
(
}
<>
extra=
{
(
<>
</>
)
}
</>
>
)
}
<
Descriptions
size=
"small"
column=
{
3
}
style=
{
{
padding
:
'0 32px'
,
}
}
>
>
<
Descriptions
.
Item
label=
"会员类型"
>
企业会员
</
Descriptions
.
Item
>
<
Descriptions
<
Descriptions
.
Item
label=
"会员角色"
span=
{
2
}
>
供应商
</
Descriptions
.
Item
>
size=
"small"
<
Descriptions
.
Item
label=
"还款状态"
>
column=
{
3
}
<
StatusTag
type=
"warnning"
title=
"逾期 3 天"
/>
style=
{
{
</
Descriptions
.
Item
>
padding
:
'0 32px'
,
<
Descriptions
.
Item
label=
"会员状态"
span=
{
2
}
>
}
}
<
Badge
color=
"#41CC9E"
text=
"正常"
/>
>
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"会员类型"
>
{
creditInfo
?.
member
?.
memberTypeName
}
</
Descriptions
.
Item
>
</
Descriptions
>
<
Descriptions
.
Item
label=
"会员角色"
span=
{
2
}
>
{
creditInfo
?.
member
?.
roleName
}
</
Descriptions
.
Item
>
</
PageHeader
>
<
Descriptions
.
Item
label=
"还款状态"
>
</>
<
StatusTag
}
type=
{
CREDIT_REPAYMENT_STATUS_TAG_MAP
[
creditInfo
?.
member
?.
repayStatus
]
}
>
title=
{
CREDIT_REPAYMENT_STATUS
[
creditInfo
?.
member
?.
repayStatus
]
}
<
Suspense
fallback=
{
null
}
>
/>
<
IntroduceRow
quotaData=
{
quotaData
}
/>
</
Descriptions
.
Item
>
</
Suspense
>
<
Descriptions
.
Item
label=
"会员状态"
span=
{
2
}
>
<
Badge
color=
{
MEMBER_STATUS_BADGE_MAP
[
creditInfo
?.
member
?.
status
]
}
text=
{
MEMBER_STATUS
[
creditInfo
?.
member
?.
status
]
}
/>
</
Descriptions
.
Item
>
</
Descriptions
>
</
PageHeader
>
</>
}
>
<
Suspense
fallback=
{
null
}
>
<
IntroduceRow
quotaData=
{
quotaData
}
fetchRecordList=
{
fetchRecordList
}
/>
</
Suspense
>
<
Suspense
fallback=
{
null
}
>
<
Suspense
fallback=
{
null
}
>
<
BillInfo
/>
<
BillInfo
/>
</
Suspense
>
</
Suspense
>
<
Suspense
fallback=
{
null
}
>
<
Suspense
fallback=
{
null
}
>
<
HistoryList
/>
<
HistoryList
/>
</
Suspense
>
</
Suspense
>
</
PageHeaderWrapper
>
</
PageHeaderWrapper
>
</
Spin
>
);
);
};
};
...
...
src/pages/payandSettle/creditApplication/quotaMenage/index.tsx
View file @
592c7f64
...
@@ -8,6 +8,17 @@ import { PublicApi } from '@/services/api';
...
@@ -8,6 +8,17 @@ import { PublicApi } from '@/services/api';
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
useAsyncInitSelect
}
from
'@/formSchema/effects/useAsyncInitSelect'
;
import
{
useAsyncInitSelect
}
from
'@/formSchema/effects/useAsyncInitSelect'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
CREDIT_STATUS_NOT_APPLIED
,
CREDIT_STATUS_APPLYING
,
CREDIT_STATUS_NORMAL
,
CREDIT_STATUS_FROZEN
,
CREDIT_STATUS
,
CREDIT_REPAYMENT_STATUS_OVERDUE
,
}
from
'@/constants'
;
import
{
CREDIT_REPAYMENT_STATUS_TAG_MAP
,
}
from
'../../constant'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
StatusTag
from
'@/components/StatusTag'
;
import
StatusTag
from
'@/components/StatusTag'
;
...
@@ -16,47 +27,31 @@ import styles from './index.less';
...
@@ -16,47 +27,31 @@ import styles from './index.less';
const
formActions
=
createFormActions
();
const
formActions
=
createFormActions
();
const
mock
=
[
{
id
:
1
,
memberName
:
'广州白马皮具交易有限公司'
,
memberType
:
'企业会员'
,
memberRole
:
'采购商'
,
memberLevel
:
'青铜会员'
,
available
:
'50,000.00'
,
count
:
'48,000'
,
used
:
'48,000'
,
repaymentStatus
:
1
,
status
:
1
,
},
{
id
:
2
,
memberName
:
'广州白马皮具交易有限公司'
,
memberType
:
'企业会员'
,
memberRole
:
'采购商'
,
memberLevel
:
'青铜会员'
,
available
:
'50,000.00'
,
count
:
'48,000'
,
used
:
'48,000'
,
repaymentStatus
:
1
,
status
:
1
,
},
];
const
QuotaMenage
:
React
.
FC
=
()
=>
{
const
QuotaMenage
:
React
.
FC
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
const
ref
=
useRef
<
any
>
({});
const
handleJumpApply
=
record
=>
{
// 跳转申请页面
};
const
defaultColumns
:
ColumnType
<
any
>
[]
=
[
const
defaultColumns
:
ColumnType
<
any
>
[]
=
[
{
{
title
:
'会员归属'
,
title
:
'会员归属'
,
dataIndex
:
'parentMemberName'
,
dataIndex
:
'parentMemberName'
,
align
:
'center'
,
align
:
'center'
,
render
:
(
text
,
record
)
=>
(
render
:
(
text
,
record
)
=>
(
<
EyePreview
<>
url=
{
`/memberCenter/payandSettle/creditApplication/quotaMenage/detail`
}
{
/* 未申请过,并且授信状态为未申请 或者 申请中 */
}
>
{
!
(
!
record
.
isHasApply
&&
(
record
.
status
===
CREDIT_STATUS_NOT_APPLIED
||
record
.
status
===
CREDIT_STATUS_APPLYING
))
?
(
{
text
}
text
</
EyePreview
>
)
:
(
<
EyePreview
url=
{
`/memberCenter/payandSettle/creditApplication/quotaMenage/detail?id=${record.id}`
}
>
{
text
}
</
EyePreview
>
)
}
</>
),
),
},
},
{
{
...
@@ -112,17 +107,61 @@ const QuotaMenage: React.FC = () => {
...
@@ -112,17 +107,61 @@ const QuotaMenage: React.FC = () => {
dataIndex
:
'repayStatusName'
,
dataIndex
:
'repayStatusName'
,
align
:
'center'
,
align
:
'center'
,
render
:
(
text
,
record
)
=>
(
render
:
(
text
,
record
)
=>
(
<
StatusTag
type=
"warnning"
title=
{
text
}
/>
<>
{
text
?
(
<
StatusTag
type=
{
CREDIT_REPAYMENT_STATUS_TAG_MAP
[
record
.
repayStatus
]
}
title=
{
record
.
repayStatus
!==
CREDIT_REPAYMENT_STATUS_OVERDUE
?
text
:
record
.
overdueDay
}
/>
)
:
null
}
</>
),
),
},
},
{
{
title
:
'状态'
,
title
:
'状态'
,
dataIndex
:
'statusName'
,
dataIndex
:
'statusName'
,
align
:
'center'
,
align
:
'center'
,
filters
:
[],
filters
:
[
onFilter
:
(
value
,
record
)
=>
record
.
innerStatus
===
value
,
{
text
:
CREDIT_STATUS
[
CREDIT_STATUS_NOT_APPLIED
],
value
:
CREDIT_STATUS_NOT_APPLIED
,
},
{
text
:
CREDIT_STATUS
[
CREDIT_STATUS_APPLYING
],
value
:
CREDIT_STATUS_APPLYING
,
},
{
text
:
CREDIT_STATUS
[
CREDIT_STATUS_NORMAL
],
value
:
CREDIT_STATUS_NORMAL
,
},
{
text
:
CREDIT_STATUS
[
CREDIT_STATUS_FROZEN
],
value
:
CREDIT_STATUS_FROZEN
,
},
],
onFilter
:
(
value
,
record
)
=>
record
.
status
===
value
,
render
:
(
text
,
record
)
=>
<
Badge
color=
"#41CC9E"
text=
{
text
}
/>,
render
:
(
text
,
record
)
=>
<
Badge
color=
"#41CC9E"
text=
{
text
}
/>,
},
},
{
title
:
'操作'
,
dataIndex
:
'action'
,
align
:
'center'
,
render
:
(
_
,
record
)
=>
(
<>
{
/* 现有额度为 0,并且授信状态为 未申请 或 到达了可调额时间(会员支付参数配置的时间) */
}
{
(
record
.
quota
===
0
&&
record
.
status
===
CREDIT_STATUS_NOT_APPLIED
)
&&
(
<
Button
type=
"link"
onClick=
{
()
=>
handleJumpApply
(
record
)
}
>
申请
</
Button
>
)
}
</>
),
},
];
];
const
[
columns
,
setColumns
]
=
useState
<
any
[]
>
(
defaultColumns
);
const
[
columns
,
setColumns
]
=
useState
<
any
[]
>
(
defaultColumns
);
...
...
src/pages/payandSettle/creditApplication/quotaMenage/schema/index.ts
View file @
592c7f64
...
@@ -2,12 +2,23 @@
...
@@ -2,12 +2,23 @@
* @Author: XieZhiXiong
* @Author: XieZhiXiong
* @Date: 2020-09-27 17:47:42
* @Date: 2020-09-27 17:47:42
* @LastEditors: XieZhiXiong
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-
09-27 19:29:0
8
* @LastEditTime: 2020-
10-15 14:12:1
8
* @Description:
* @Description:
*/
*/
import
{
ISchema
}
from
'@formily/antd'
;
import
{
ISchema
}
from
'@formily/antd'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
UPLOAD_TYPE
}
from
'@/constants'
;
import
{
CREDIT_STATUS_NOT_APPLIED
,
CREDIT_STATUS_APPLYING
,
CREDIT_STATUS_NORMAL
,
CREDIT_STATUS_FROZEN
,
CREDIT_STATUS
,
CREDIT_REPAYMENT_STATUS_OUTSTANDING
,
CREDIT_REPAYMENT_STATUS_UNCONFIRMED
,
CREDIT_REPAYMENT_STATUS_PAID
,
CREDIT_REPAYMENT_STATUS_OVERDUE
,
CREDIT_REPAYMENT_STATUS
,
}
from
'@/constants'
;
export
const
listSearchSchema
:
ISchema
=
{
export
const
listSearchSchema
:
ISchema
=
{
type
:
'object'
,
type
:
'object'
,
...
@@ -38,7 +49,24 @@ export const listSearchSchema: ISchema = {
...
@@ -38,7 +49,24 @@ export const listSearchSchema: ISchema = {
rePayStatus
:
{
rePayStatus
:
{
type
:
'string'
,
type
:
'string'
,
default
:
undefined
,
default
:
undefined
,
enum
:
[],
enum
:
[
{
label
:
CREDIT_STATUS
[
CREDIT_STATUS_NOT_APPLIED
],
value
:
CREDIT_STATUS_NOT_APPLIED
,
},
{
label
:
CREDIT_STATUS
[
CREDIT_STATUS_APPLYING
],
value
:
CREDIT_STATUS_APPLYING
,
},
{
label
:
CREDIT_STATUS
[
CREDIT_STATUS_NORMAL
],
value
:
CREDIT_STATUS_NORMAL
,
},
{
label
:
CREDIT_STATUS
[
CREDIT_STATUS_FROZEN
],
value
:
CREDIT_STATUS_FROZEN
,
},
],
'x-component-props'
:
{
'x-component-props'
:
{
placeholder
:
'还款状态(全部)'
,
placeholder
:
'还款状态(全部)'
,
allowClear
:
true
,
allowClear
:
true
,
...
@@ -47,7 +75,24 @@ export const listSearchSchema: ISchema = {
...
@@ -47,7 +75,24 @@ export const listSearchSchema: ISchema = {
status
:
{
status
:
{
type
:
'string'
,
type
:
'string'
,
default
:
undefined
,
default
:
undefined
,
enum
:
[],
enum
:
[
{
label
:
CREDIT_REPAYMENT_STATUS
[
CREDIT_REPAYMENT_STATUS_OUTSTANDING
],
value
:
CREDIT_REPAYMENT_STATUS_OUTSTANDING
},
{
label
:
CREDIT_REPAYMENT_STATUS
[
CREDIT_REPAYMENT_STATUS_UNCONFIRMED
],
value
:
CREDIT_REPAYMENT_STATUS_UNCONFIRMED
},
{
label
:
CREDIT_REPAYMENT_STATUS
[
CREDIT_REPAYMENT_STATUS_PAID
],
value
:
CREDIT_REPAYMENT_STATUS_PAID
},
{
label
:
CREDIT_REPAYMENT_STATUS
[
CREDIT_REPAYMENT_STATUS_OVERDUE
],
value
:
CREDIT_REPAYMENT_STATUS_OVERDUE
},
],
'x-component-props'
:
{
'x-component-props'
:
{
placeholder
:
'状态(全部)'
,
placeholder
:
'状态(全部)'
,
allowClear
:
true
,
allowClear
:
true
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment