diff --git a/public/example.json b/public/example.json index cc6a321..90c6662 100644 --- a/public/example.json +++ b/public/example.json @@ -1,4 +1,537 @@ [ + { + "feature": { + "featureName": "支付行为指数", + "sort": 1 + }, + "data": { + "apiID": "JRZQ3C9R", + "data": { + "code": "200", + "data": { + "ppcm_m24_nbank_fin_qyorg": 1, + "ppcm_m24_overorg": -1, + "ppcm_m6_nbank_other_fail_repamt": -1, + "ppcm_m1_cred_succ_repnum": -1, + "ppcm_m24_succ_reporg": -1, + "ppcm_m1_nbank_fin_qyorg": -1, + "ppcm_m1_nbank_other_fail_repamt": -1, + "ppcm_m6_qynum": 3, + "ppcm_m12_nbank_other_succ_repnum": -1, + "ppcm_d7_loanamt_max": -1, + "ppcm_d7_succ_repamt_max": -1, + "ppcm_m3_nbank_other_qyorg": 2, + "ppcm_m24_nbank_fin_loannum": -1, + "ppcm_m3_succ_repnum_avg": -1, + "ppcm_m1_nbank_other_qyorg": 2, + "ppcm_m6_reporg": -1, + "ppcm_m3_nbank_fin_succ_repnum": -1, + "ppcm_m24_bank_fail_reporg": -1, + "ppcm_m24_bank_loanorg": -1, + "ppcm_m12_nbank_other_fail_reporg": -1, + "ppcm_m6_succ_repnum_avg": -1, + "ppcm_m1_repday": -1, + "ppcm_m12_bank_loanorg": -1, + "ppcm_m6_m24_nbank_fin_fail_repnum_ratio": -1, + "ppcm_m3_m24_nbank_other_qynum_ratio": 0.17, + "ppcm_m12_bank_fail_repamt": -1, + "ppcm_m6_overnum": -1, + "ppcm_m24_loanamt": -1, + "ppcm_m6_nbank_fin_fail_repamt": -1, + "ppcm_m3_succ_reporg": -1, + "ppcm_m6_cred_fail_repnum": -1, + "ppcm_d7_bank_qyorg": -1, + "ppcm_m1_succ_reporg": -1, + "ppcm_m1_nbank_fin_succ_repamt": -1, + "ppcm_d7_nbank_other_qyorg": 2, + "ppcm_m6_cred_succ_repnum": -1, + "ppcm_m24_qyorg": 6, + "ppcm_m6_succ_reporg": -1, + "ppcm_m6_m24_fail_repnum_ratio": -1, + "ppcm_m12_succ_reporg": -1, + "ppcm_m3_fail_neh_repnum_ratio": -1, + "ppcm_m1_nbank_other_neh_repnum_ratio": -1, + "ppcm_m12_fail_repamt": -1, + "ppcm_m1_qynum": 2, + "ppcm_m1_cred_fail_reporg": -1, + "ppcm_m24_cred_fail_repamt": -1, + "ppcm_m24_cred_succ_repamt": -1, + "ppcm_m12_nbank_other_loannum": -1, + "ppcm_m3_qynum_avg": 1, + "ppcm_m3_nbank_fin_fail_reporg": -1, + "ppcm_m24_bank_succ_repnum": -1, + "ppcm_d7_bank_fail_repnum": -1, + "ppcm_m1_reporg_new": -1, + "ppcm_m6_qyday": 3, + "ppcm_d7_reporg": -1, + "ppcm_m12_fail_reporg_new": -1, + "ppcm_m6_nbank_fin_neh_repnum_ratio": -1, + "ppcm_d7_nbank_other_loanamt": -1, + "ppcm_m1_nbank_other_qynum": 2, + "ppcm_d7_m12_nbank_other_qynum_ratio": 0.67, + "ppcm_m3_nbank_fin_succ_reporg": -1, + "ppcm_m6_p4_overamt": -1, + "ppcm_m6_fail_repamt_max": -1, + "ppcm_m6_nbank_other_loanamt": -1, + "ppcm_m1_nbank_other_succ_reporg": -1, + "ppcm_m12_bank_succ_reporg": -1, + "ppcm_m3_fail_repamt_max": -1, + "ppcm_m12_nbank_fin_neh_repnum_ratio": -1, + "ppcm_m1_overamt": -1, + "ppcm_m12_reporg_new": -1, + "ppcm_m6_nbank_other_succ_reporg": -1, + "ppcm_m3_m24_bank_qynum_ratio": -1, + "ppcm_d7_loannum": -1, + "ppcm_m1_fail_repamt": -1, + "ppcm_m3_fail_repamt": -1, + "ppcm_m12_nbank_fin_qynum": 1, + "ppcm_m3_cred_reporg_new": -1, + "ppcm_m6_cred_reporg_new": -1, + "ppcm_m12_nbank_fin_fail_repamt": -1, + "ppcm_m1_p3_overamt": -1, + "ppcm_m3_qyorg": 3, + "ppcm_m12_cred_succ_repamt": -1, + "ppcm_m1_m12_bank_loannum_ratio": -1, + "ppcm_m3_loanorg_new": -1, + "ppcm_m1_nbank_fin_qynum": -1, + "ppcm_m12_nbank_fin_loanorg": -1, + "ppcm_m1_qyorg_new": 2, + "ppcm_m12_fail_repamt_max": -1, + "ppcm_m24_nbank_fin_qynum": 1, + "ppcm_m3_p3_overamt": -1, + "ppcm_m6_bank_succ_repamt": -1, + "ppcm_d7_nbank_other_neh_repnum_ratio": -1, + "ppcm_m3_overnum": -1, + "ppcm_m1_loanorg_new": -1, + "ppcm_m24_succ_repnum": -1, + "ppcm_m1_fail_reporg_new": -1, + "ppcm_m12_loanday": -1, + "ppcm_m12_cred_reporg_new": -1, + "ppcm_m3_nbank_other_loanamt": -1, + "ppcm_m6_bank_qynum": -1, + "ppcm_d7_bank_qynum": -1, + "ppcm_m6_bank_neh_repnum_ratio": -1, + "ppcm_d7_cred_reporg": -1, + "ppcm_m6_cred_succ_reporg": -1, + "ppcm_m24_qynum": 13, + "ppcm_m6_fail_neh_repnum_ratio": -1, + "ppcm_m12_loannum": -1, + "ppcm_m1_allnum": 2, + "ppcm_m24_nbank_fin_neh_repnum_ratio": -1, + "ppcm_m6_repday": -1, + "ppcm_m6_nbank_fin_succ_reporg": -1, + "ppcm_d7_cred_succ_reporg": -1, + "ppcm_m3_bank_succ_repamt": -1, + "ppcm_m12_nbank_other_fail_repnum": -1, + "ppcm_m1_qyorg": 2, + "ppcm_m24_repday": -1, + "ppcm_d7_nbank_other_fail_repnum": -1, + "ppcm_m6_qyorg_new": 3, + "ppcm_m3_nbank_other_fail_repnum": -1, + "ppcm_m24_fail_reporg": -1, + "ppcm_m12_bank_neh_repnum_ratio": -1, + "ppcm_m1_cred_fail_repnum": -1, + "ppcm_d7_cred_fail_repnum": -1, + "ppcm_m24_cred_succ_reporg": -1, + "ppcm_m1_m24_nbank_other_succ_repnum_ratio": -1, + "ppcm_m3_m12_nbank_other_loannum_ratio": -1, + "ppcm_m6_m24_succ_repnum_ratio": -1, + "ppcm_m3_loanday": -1, + "ppcm_d7_nbank_fin_fail_repnum": -1, + "ppcm_m1_cred_reporg_new": -1, + "ppcm_m24_bank_fail_repamt": -1, + "ppcm_m12_p3_overamt": -1, + "ppcm_m12_succ_repnum": -1, + "ppcm_d7_succ_repnum": -1, + "ppcm_m24_succ_repamt": -1, + "ppcm_d7_bank_fail_reporg": -1, + "ppcm_latest_qytoday": 1, + "ppcm_m1_nbank_other_loanamt": -1, + "ppcm_recent_cardnum": -1, + "ppcm_m12_bank_loanamt": -1, + "ppcm_m12_bank_fail_reporg": -1, + "ppcm_m1_bank_succ_repamt": -1, + "ppcm_m24_p4_overamt": -1, + "ppcm_m3_succ_repnum": -1, + "ppcm_m3_m24_nbank_fin_qynum_ratio": 1, + "ppcm_d7_qyorg": 2, + "ppcm_m3_qy_rep_ratio": -1, + "ppcm_m12_cred_fail_repnum": -1, + "ppcm_m6_succ_repnum": -1, + "ppcm_m1_nbank_other_succ_repnum": -1, + "ppcm_m1_bank_neh_repnum_ratio": -1, + "ppcm_m12_nbank_other_fail_repamt": -1, + "ppcm_m1_p1_overamt": -1, + "ppcm_m3_overorg": -1, + "ppcm_m3_cred_fail_reporg_new": -1, + "ppcm_m6_m24_bank_fail_repnum_ratio": -1, + "ppcm_m12_qy_rep_ratio": -1, + "ppcm_m24_nbank_fin_succ_repamt": -1, + "ppcm_m1_bank_loanorg": -1, + "ppcm_m3_cred_fail_reporg": -1, + "ppcm_m24_nbank_other_succ_repamt": -1, + "ppcm_m6_qynum_avg": 0.5, + "ppcm_m24_nbank_fin_fail_reporg": -1, + "ppcm_m6_nbank_fin_loannum": -1, + "ppcm_m3_nbank_fin_loanamt": -1, + "ppcm_m24_bank_loannum": -1, + "ppcm_m1_fail_reporg": -1, + "ppcm_m6_nbank_fin_succ_repnum": -1, + "ppcm_m3_m24_nbank_fin_succ_repnum_ratio": -1, + "ppcm_m24_nbank_other_fail_reporg": -1, + "ppcm_m1_m6_qynum_ratio": 0.67, + "ppcm_m1_succ_repamt": -1, + "ppcm_m24_fail_repnum": -1, + "ppcm_m3_nbank_other_fail_reporg": -1, + "ppcm_m12_loanorg_new": -1, + "ppcm_m1_m24_nbank_fin_fail_repnum_ratio": -1, + "ppcm_m24_overnum": -1, + "ppcm_d7_nbank_other_succ_repamt": -1, + "ppcm_m12_reporg": -1, + "ppcm_m1_reporg": -1, + "ppcm_d7_overamt": -1, + "ppcm_m1_succ_reporg_new": -1, + "ppcm_m1_cred_succ_reporg": -1, + "ppcm_m3_nbank_other_succ_repamt": -1, + "ppcm_d7_nbank_fin_succ_repamt": -1, + "ppcm_m3_loannum": -1, + "ppcm_m1_bank_fail_reporg": -1, + "ppcm_d7_m12_nbank_fin_qynum_ratio": 0, + "ppcm_m6_nbank_other_loanorg": -1, + "ppcm_m24_cred_fail_reporg": -1, + "ppcm_m6_loanamt": -1, + "ppcm_m1_nbank_fin_fail_repamt": -1, + "ppcm_d7_bank_loannum": -1, + "ppcm_m12_nbank_other_loanorg": -1, + "ppcm_m6_nbank_other_succ_repamt": -1, + "ppcm_m3_p4_overamt": -1, + "ppcm_d7_qynum": 2, + "ppcm_m24_nbank_other_fail_repnum": -1, + "ppcm_m3_bank_fail_repamt": -1, + "ppcm_d7_m12_qynum_ratio": 0.5, + "ppcm_d7_nbank_other_fail_reporg": -1, + "ppcm_m6_bank_loanamt": -1, + "ppcm_m3_nbank_fin_fail_repnum": -1, + "ppcm_m1_bank_loannum": -1, + "ppcm_d7_fail_repnum": -1, + "ppcm_m3_m24_bank_fail_repnum_ratio": -1, + "ppcm_m3_cred_fail_repnum": -1, + "ppcm_m12_nbank_fin_loanamt": -1, + "ppcm_m12_bank_qynum": -1, + "ppcm_m3_cred_succ_repamt": -1, + "ppcm_m6_cred_fail_reporg": -1, + "ppcm_m12_nbank_other_qynum": 3, + "ppcm_m6_m24_bank_succ_repnum_ratio": -1, + "ppcm_m3_nbank_other_neh_repnum_ratio": -1, + "ppcm_d7_nbank_other_loanorg": -1, + "ppcm_m24_nbank_fin_fail_repnum": -1, + "ppcm_m3_fail_repnum_avg": -1, + "ppcm_m1_m6_nbank_other_qynum_ratio": 1, + "ppcm_m12_repday": -1, + "ppcm_d7_succ_reporg": -1, + "ppcm_m3_cred_succ_reporg_new": -1, + "ppcm_m6_fail_repnum_avg": -1, + "ppcm_m1_m12_nbank_fin_loannum_ratio": -1, + "ppcm_m3_cred_reporg": -1, + "ppcm_m6_loanorg_new": -1, + "ppcm_m6_cred_fail_reporg_new": -1, + "ppcm_m24_reporg": -1, + "ppcm_m3_nbank_other_qynum": 2, + "ppcm_m3_m24_nbank_fin_fail_repnum_ratio": -1, + "ppcm_d7_cred_fail_reporg": -1, + "ppcm_d7_nbank_fin_loanamt": -1, + "ppcm_m6_fail_repamt": -1, + "ppcm_d7_loanorg": -1, + "ppcm_m1_loanamt": -1, + "ppcm_m12_p4_overamt": -1, + "ppcm_d7_cred_succ_repamt": -1, + "ppcm_m24_nbank_other_loanamt": -1, + "ppcm_m3_loanorg": -1, + "ppcm_m3_m12_nbank_fin_loannum_ratio": -1, + "ppcm_m1_bank_fail_repnum": -1, + "ppcm_m6_bank_fail_repamt": -1, + "ppcm_m12_cred_succ_reporg": -1, + "ppcm_m6_p3_overamt": -1, + "ppcm_m12_qyday": 4, + "ppcm_m12_bank_succ_repamt": -1, + "ppcm_m6_nbank_fin_loanorg": -1, + "ppcm_d7_nbank_other_qynum": 2, + "ppcm_m12_qynum": 4, + "ppcm_m24_p3_overamt": -1, + "ppcm_m12_allnum": 4, + "ppcm_m6_nbank_other_fail_reporg": -1, + "ppcm_m3_qyorg_new": 3, + "ppcm_m24_nbank_other_qyorg": 5, + "ppcm_d7_allnum": 2, + "ppcm_m1_m24_nbank_fin_succ_repnum_ratio": -1, + "ppcm_m12_qyorg_new": 4, + "ppcm_d7_nbank_other_succ_reporg": -1, + "ppcm_m6_cred_succ_repamt": -1, + "ppcm_m24_loanday": -1, + "ppcm_m1_succ_repamt_max": -1, + "ppcm_m24_succ_repamt_max": -1, + "ppcm_d7_nbank_fin_qyorg": -1, + "ppcm_m1_nbank_fin_succ_repnum": -1, + "ppcm_d7_bank_fail_repamt": -1, + "ppcm_m3_overamt": -1, + "ppcm_m24_nbank_other_loannum": -1, + "ppcm_m6_p2_overamt": -1, + "ppcm_m24_cred_fail_repnum": -1, + "ppcm_m3_bank_qynum": -1, + "ppcm_m24_bank_qyorg": -1, + "ppcm_m1_bank_qyorg": -1, + "ppcm_d7_nbank_fin_succ_reporg": -1, + "ppcm_m3_m12_qynum_ratio": 0.75, + "ppcm_m3_nbank_other_loanorg": -1, + "ppcm_d7_bank_loanorg": -1, + "ppcm_m3_nbank_fin_loanorg": -1, + "ppcm_m3_repday": -1, + "ppcm_m6_allnum": 3, + "ppcm_m6_bank_succ_reporg": -1, + "ppcm_m12_loanamt": -1, + "ppcm_m1_bank_succ_reporg": -1, + "ppcm_m12_succ_repamt_max": -1, + "ppcm_m12_nbank_fin_succ_repnum": -1, + "ppcm_m3_bank_succ_repnum": -1, + "ppcm_d7_m12_bank_qynum_ratio": -1, + "ppcm_m1_loanamt_max": -1, + "ppcm_m3_loanamt_max": -1, + "ppcm_m3_bank_fail_repnum": -1, + "ppcm_m6_nbank_other_fail_repnum": -1, + "ppcm_m3_m24_succ_repnum_ratio": -1, + "ppcm_m12_cred_fail_reporg": -1, + "ppcm_m1_cred_succ_repamt": -1, + "ppcm_m3_p1_overamt": -1, + "ppcm_m24_nbank_other_fail_repamt": -1, + "ppcm_m12_p2_overamt": -1, + "ppcm_m1_nbank_fin_fail_reporg": -1, + "ppcm_m24_nbank_other_qynum": 12, + "ppcm_m6_bank_loannum": -1, + "ppcm_m24_nbank_other_neh_repnum_ratio": -1, + "ppcm_m3_cred_fail_repamt": -1, + "ppcm_m12_nbank_other_succ_repamt": -1, + "ppcm_m1_overnum": -1, + "ppcm_m3_m24_qynum_ratio": 0.23, + "ppcm_m1_nbank_other_fail_repnum": -1, + "ppcm_m12_loanamt_max": -1, + "ppcm_d7_fail_neh_repnum_ratio": -1, + "ppcm_m24_nbank_fin_fail_repamt": -1, + "ppcm_m3_nbank_fin_succ_repamt": -1, + "ppcm_m3_fail_reporg_new": -1, + "ppcm_m6_fail_reporg_new": -1, + "ppcm_d7_nbank_fin_fail_reporg": -1, + "ppcm_m3_nbank_other_succ_reporg": -1, + "ppcm_m12_nbank_fin_fail_repnum": -1, + "ppcm_m1_p2_overamt": -1, + "ppcm_m1_cred_succ_reporg_new": -1, + "ppcm_m3_m12_bank_loannum_ratio": -1, + "ppcm_m12_overnum": -1, + "ppcm_m12_cred_succ_repnum": -1, + "ppcm_m6_loanamt_max": -1, + "ppcm_m12_bank_fail_repnum": -1, + "ppcm_m1_nbank_fin_loannum": -1, + "ppcm_m6_nbank_fin_fail_repnum": -1, + "ppcm_m12_cred_reporg": -1, + "ppcm_m3_nbank_other_loannum": -1, + "ppcm_m12_fail_neh_repnum_ratio": -1, + "ppcm_d7_overorg": -1, + "ppcm_m6_m24_nbank_other_succ_repnum_ratio": -1, + "ppcm_m12_qyorg": 4, + "ppcm_m6_cred_fail_repamt": -1, + "ppcm_m6_bank_succ_repnum": -1, + "ppcm_m3_cred_succ_reporg": -1, + "ppcm_m3_m12_loannum_ratio": -1, + "ppcm_history_cardnum": -1, + "ppcm_d7_nbank_fin_loanorg": -1, + "ppcm_latest_loantoday": -1, + "ppcm_m6_nbank_other_neh_repnum_ratio": -1, + "ppcm_m24_cred_succ_repnum": -1, + "ppcm_m24_allnum": 13, + "ppcm_m12_nbank_other_loanamt": -1, + "ppcm_m1_m6_nbank_fin_qynum_ratio": 0, + "ppcm_m24_nbank_other_loanorg": -1, + "ppcm_latest_fail_reptoday": -1, + "ppcm_d7_nbank_other_fail_repamt": -1, + "ppcm_m24_p2_overamt": -1, + "ppcm_m6_bank_loanorg": -1, + "ppcm_m1_m24_bank_fail_repnum_ratio": -1, + "ppcm_d7_nbank_fin_neh_repnum_ratio": -1, + "ppcm_m6_cred_succ_reporg_new": -1, + "ppcm_m24_bank_succ_repamt": -1, + "ppcm_m1_m24_bank_succ_repnum_ratio": -1, + "ppcm_m6_qy_rep_ratio": -1, + "ppcm_m3_bank_qyorg": -1, + "ppcm_m24_fail_neh_repnum_ratio": -1, + "ppcm_m6_cred_reporg": -1, + "ppcm_m1_nbank_fin_fail_repnum": -1, + "ppcm_m3_m24_fail_repnum_ratio": -1, + "ppcm_d7_nbank_fin_succ_repnum": -1, + "ppcm_m3_nbank_other_fail_repamt": -1, + "ppcm_m12_bank_qyorg": -1, + "ppcm_m12_nbank_other_qyorg": 3, + "ppcm_m24_bank_neh_repnum_ratio": -1, + "ppcm_d7_nbank_other_loannum": -1, + "ppcm_m24_cred_reporg": -1, + "ppcm_m24_bank_qynum": -1, + "ppcm_m6_nbank_other_loannum": -1, + "ppcm_m3_bank_loanamt": -1, + "ppcm_m3_m24_bank_succ_repnum_ratio": -1, + "ppcm_m12_overorg": -1, + "ppcm_d7_succ_repamt": -1, + "ppcm_d7_fail_repamt_max": -1, + "ppcm_m24_nbank_fin_succ_reporg": -1, + "ppcm_m3_m12_nbank_other_qynum_ratio": 0.67, + "ppcm_m24_nbank_other_succ_reporg": -1, + "ppcm_m1_nbank_fin_loanorg": -1, + "ppcm_d7_loanamt": -1, + "ppcm_m12_nbank_fin_succ_reporg": -1, + "ppcm_m1_fail_repnum": -1, + "ppcm_m1_m6_bank_qynum_ratio": -1, + "ppcm_m24_nbank_fin_loanamt": -1, + "ppcm_d7_nbank_fin_qynum": -1, + "ppcm_m3_bank_fail_reporg": -1, + "ppcm_m3_fail_repnum": -1, + "ppcm_m1_m24_nbank_other_fail_repnum_ratio": -1, + "ppcm_d7_fail_reporg": -1, + "ppcm_d7_bank_succ_repamt": -1, + "ppcm_m6_overamt": -1, + "ppcm_m24_loannum": -1, + "ppcm_m6_bank_fail_reporg": -1, + "ppcm_m6_nbank_fin_loanamt": -1, + "ppcm_m1_nbank_other_fail_reporg": -1, + "ppcm_m24_bank_loanamt": -1, + "ppcm_m3_qynum": 3, + "ppcm_m3_loannum_avg": -1, + "ppcm_m3_p2_overamt": -1, + "ppcm_m3_bank_neh_repnum_ratio": -1, + "ppcm_m6_loannum_avg": -1, + "ppcm_m6_bank_fail_repnum": -1, + "ppcm_m24_qyday": 13, + "ppcm_m12_loanorg": -1, + "ppcm_m1_succ_repnum": -1, + "ppcm_m3_bank_loannum": -1, + "ppcm_latest_succ_reptoday": -1, + "ppcm_d7_overnum": -1, + "ppcm_m6_nbank_fin_fail_reporg": -1, + "ppcm_m24_overamt": -1, + "ppcm_m12_bank_succ_repnum": -1, + "ppcm_m3_nbank_fin_neh_repnum_ratio": -1, + "ppcm_m3_loanamt": -1, + "ppcm_m24_fail_repamt_max": -1, + "ppcm_m6_loannum": -1, + "ppcm_d7_bank_succ_repnum": -1, + "ppcm_m1_loanorg": -1, + "ppcm_m6_m24_nbank_fin_succ_repnum_ratio": -1, + "ppcm_m24_loanorg": -1, + "ppcm_d7_cred_fail_repamt": -1, + "ppcm_m1_cred_fail_repamt": -1, + "ppcm_m6_loanday": -1, + "ppcm_m1_fail_repamt_max": -1, + "ppcm_m12_succ_repamt": -1, + "ppcm_d7_nbank_fin_fail_repamt": -1, + "ppcm_m3_fail_reporg": -1, + "ppcm_m24_bank_fail_repnum": -1, + "ppcm_m6_p1_overamt": -1, + "ppcm_m1_nbank_other_loannum": -1, + "ppcm_m6_fail_reporg": -1, + "ppcm_m3_reporg_new": -1, + "ppcm_m3_m24_nbank_other_succ_repnum_ratio": -1, + "ppcm_m3_nbank_fin_fail_repamt": -1, + "ppcm_m12_cred_fail_repamt": -1, + "ppcm_m6_nbank_fin_qynum": 1, + "ppcm_m1_bank_succ_repnum": -1, + "ppcm_m3_nbank_fin_qynum": 1, + "ppcm_m12_bank_loannum": -1, + "ppcm_m3_allnum": 3, + "ppcm_m3_cred_succ_repnum": -1, + "ppcm_d7_bank_neh_repnum_ratio": -1, + "ppcm_m3_succ_repamt": -1, + "ppcm_m12_cred_succ_reporg_new": -1, + "ppcm_m6_succ_repamt": -1, + "ppcm_m6_nbank_other_qynum": 2, + "ppcm_m24_p1_overamt": -1, + "ppcm_m24_nbank_fin_succ_repnum": -1, + "ppcm_m12_fail_reporg": -1, + "ppcm_m24_nbank_other_succ_repnum": -1, + "ppcm_m12_nbank_other_succ_reporg": -1, + "ppcm_m3_m24_nbank_other_fail_repnum_ratio": -1, + "ppcm_m6_bank_qyorg": -1, + "ppcm_m1_loannum": -1, + "ppcm_m3_nbank_fin_loannum": -1, + "ppcm_d7_cred_succ_repnum": -1, + "ppcm_m6_nbank_fin_succ_repamt": -1, + "ppcm_m1_fail_neh_repnum_ratio": -1, + "ppcm_m1_cred_reporg": -1, + "ppcm_m24_nbank_fin_loanorg": -1, + "ppcm_m1_bank_fail_repamt": -1, + "ppcm_m12_p1_overamt": -1, + "ppcm_m24_loanamt_max": -1, + "ppcm_behav_score": 595, + "ppcm_m24_fail_repamt": -1, + "ppcm_d7_bank_succ_reporg": -1, + "ppcm_m1_m24_fail_repnum_ratio": -1, + "ppcm_history_cellnum": -1, + "ppcm_m6_loanorg": -1, + "ppcm_m12_nbank_other_neh_repnum_ratio": -1, + "ppcm_m12_fail_repnum": -1, + "ppcm_latest_cred_succ_reptoday": -1, + "ppcm_m1_m12_loannum_ratio": -1, + "ppcm_d7_nbank_other_succ_repnum": -1, + "ppcm_m3_m12_bank_qynum_ratio": -1, + "ppcm_m1_nbank_fin_succ_reporg": -1, + "ppcm_m3_succ_repamt_max": -1, + "ppcm_m1_qyday": 2, + "ppcm_m6_succ_repamt_max": -1, + "ppcm_m1_m24_succ_repnum_ratio": -1, + "ppcm_m1_qy_rep_ratio": -1, + "ppcm_latest_cred_fail_reptoday": -1, + "ppcm_m1_nbank_fin_loanamt": -1, + "ppcm_m12_overamt": -1, + "ppcm_m1_m12_nbank_other_loannum_ratio": -1, + "ppcm_m1_overorg": -1, + "ppcm_m3_bank_loanorg": -1, + "ppcm_m6_qyorg": 3, + "ppcm_m6_nbank_other_succ_repnum": -1, + "ppcm_m6_overorg": -1, + "ppcm_m12_nbank_fin_qyorg": 1, + "ppcm_m6_m24_nbank_other_fail_repnum_ratio": -1, + "ppcm_m1_bank_qynum": -1, + "ppcm_d7_bank_loanamt": -1, + "ppcm_m1_nbank_fin_neh_repnum_ratio": -1, + "ppcm_latest_rep_status": -1, + "ppcm_m3_nbank_other_succ_repnum": -1, + "ppcm_m12_nbank_fin_fail_reporg": -1, + "ppcm_m12_nbank_fin_loannum": -1, + "ppcm_recent_cellnum": -1, + "ppcm_m1_bank_loanamt": -1, + "ppcm_m3_bank_succ_reporg": -1, + "ppcm_m6_reporg_new": -1, + "ppcm_m6_nbank_other_qyorg": 2, + "ppcm_d7_fail_repamt": -1, + "ppcm_m24_bank_succ_reporg": -1, + "ppcm_m3_nbank_fin_qyorg": 1, + "ppcm_m3_reporg": -1, + "ppcm_m3_qyday": 3, + "ppcm_m1_p4_overamt": -1, + "ppcm_m3_m12_nbank_fin_qynum_ratio": 1, + "ppcm_m3_succ_reporg_new": -1, + "ppcm_m6_succ_reporg_new": -1, + "ppcm_m12_cred_fail_reporg_new": -1, + "ppcm_m1_loanday": -1, + "ppcm_d7_nbank_fin_loannum": -1, + "ppcm_m1_nbank_other_succ_repamt": -1, + "ppcm_m12_nbank_fin_succ_repamt": -1, + "ppcm_m1_nbank_other_loanorg": -1, + "ppcm_m1_cred_fail_reporg_new": -1, + "ppcm_m12_succ_reporg_new": -1, + "ppcm_m6_fail_repnum": -1, + "ppcm_m6_nbank_fin_qyorg": 1 + }, + "message": "success", + "success": true + } + } + }, { "feature": { "featureName": "借贷意向验证", diff --git a/src/components/BaseReport.vue b/src/components/BaseReport.vue index 4998a5c..6c815e4 100644 --- a/src/components/BaseReport.vue +++ b/src/components/BaseReport.vue @@ -342,6 +342,13 @@ const featureMap = { remark: '借贷意向验证提供全面的借贷申请行为分析,包括申请次数、申请总次数(银行+非银)和申请机构总数(银行+非银)等多维度数据。通过不同时间段的统计分析,全面展示申请人的借贷申请行为。' }, + // 支付行为指数 + JRZQ3C9R: { + name: "支付行为指数", + component: defineAsyncComponent(() => import("@/ui/JRZQ3C9R/index.vue")), + remark: '支付行为指数基于近两年的查验记录、还款成功与失败表现以及余额不足情况,对用户支付与还款习惯进行量化评分,用于评估其支付稳定性与违约风险。' + }, + // 手机携号转网 YYSY7D3E: { name: "手机携号转网", @@ -484,6 +491,7 @@ const featureRiskLevels = { 'JRZQ8203': 7, // 借贷行为验证 'JRZQ4AA8': 6, // 偿债压力指数 'FLXG3D56': 9, // 特殊名单验证 + 'JRZQ3C9R': 7, // 支付行为指数 'YYSY7D3E': 5, // 手机携号转网 'YYSY8B1C': 5, // 手机在网时长 diff --git a/src/components/Remark.vue b/src/components/Remark.vue index dcccf06..0e68295 100644 --- a/src/components/Remark.vue +++ b/src/components/Remark.vue @@ -1,11 +1,15 @@ @@ -17,6 +21,14 @@ const props = defineProps({ content: { type: String, required: true + }, + title: { + type: String, + default: '温馨提示!' + }, + defaultExpanded: { + type: Boolean, + default: false } }); @@ -81,4 +93,3 @@ const isExpanded = ref(false); color: #999999; } - diff --git a/src/ui/JRZQ3C9R/components/BasicInfoSection.vue b/src/ui/JRZQ3C9R/components/BasicInfoSection.vue new file mode 100644 index 0000000..ba46d40 --- /dev/null +++ b/src/ui/JRZQ3C9R/components/BasicInfoSection.vue @@ -0,0 +1,200 @@ + + + + + diff --git a/src/ui/JRZQ3C9R/components/InsufficientRatioSection.vue b/src/ui/JRZQ3C9R/components/InsufficientRatioSection.vue new file mode 100644 index 0000000..61493ca --- /dev/null +++ b/src/ui/JRZQ3C9R/components/InsufficientRatioSection.vue @@ -0,0 +1,107 @@ + + + + + + + diff --git a/src/ui/JRZQ3C9R/components/LoanAndOverdueSection.vue b/src/ui/JRZQ3C9R/components/LoanAndOverdueSection.vue new file mode 100644 index 0000000..228128b --- /dev/null +++ b/src/ui/JRZQ3C9R/components/LoanAndOverdueSection.vue @@ -0,0 +1,322 @@ + + + + + diff --git a/src/ui/JRZQ3C9R/components/QueryOverviewSection.vue b/src/ui/JRZQ3C9R/components/QueryOverviewSection.vue new file mode 100644 index 0000000..431b818 --- /dev/null +++ b/src/ui/JRZQ3C9R/components/QueryOverviewSection.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/src/ui/JRZQ3C9R/components/QueryTrendSection.vue b/src/ui/JRZQ3C9R/components/QueryTrendSection.vue new file mode 100644 index 0000000..a7a5221 --- /dev/null +++ b/src/ui/JRZQ3C9R/components/QueryTrendSection.vue @@ -0,0 +1,136 @@ + + + + + + + diff --git a/src/ui/JRZQ3C9R/components/RepayFailTrendSection.vue b/src/ui/JRZQ3C9R/components/RepayFailTrendSection.vue new file mode 100644 index 0000000..d357e78 --- /dev/null +++ b/src/ui/JRZQ3C9R/components/RepayFailTrendSection.vue @@ -0,0 +1,104 @@ + + + + + + + diff --git a/src/ui/JRZQ3C9R/components/RepayOrgAndLevelSection.vue b/src/ui/JRZQ3C9R/components/RepayOrgAndLevelSection.vue new file mode 100644 index 0000000..4422ec5 --- /dev/null +++ b/src/ui/JRZQ3C9R/components/RepayOrgAndLevelSection.vue @@ -0,0 +1,232 @@ + + + + + + + diff --git a/src/ui/JRZQ3C9R/components/RepaySuccessTrendSection.vue b/src/ui/JRZQ3C9R/components/RepaySuccessTrendSection.vue new file mode 100644 index 0000000..b5a4d2b --- /dev/null +++ b/src/ui/JRZQ3C9R/components/RepaySuccessTrendSection.vue @@ -0,0 +1,104 @@ + + + + + + + diff --git a/src/ui/JRZQ3C9R/components/RepayTrendSection.vue b/src/ui/JRZQ3C9R/components/RepayTrendSection.vue new file mode 100644 index 0000000..14ff8fa --- /dev/null +++ b/src/ui/JRZQ3C9R/components/RepayTrendSection.vue @@ -0,0 +1,124 @@ + + + + + + + diff --git a/src/ui/JRZQ3C9R/components/ScoreSection.vue b/src/ui/JRZQ3C9R/components/ScoreSection.vue new file mode 100644 index 0000000..971de32 --- /dev/null +++ b/src/ui/JRZQ3C9R/components/ScoreSection.vue @@ -0,0 +1,71 @@ + + + + + + + diff --git a/src/ui/JRZQ3C9R/index.vue b/src/ui/JRZQ3C9R/index.vue new file mode 100644 index 0000000..5ed41c7 --- /dev/null +++ b/src/ui/JRZQ3C9R/index.vue @@ -0,0 +1,105 @@ + + + + + + + diff --git a/src/ui/JRZQ3C9R/utils/dataParser.js b/src/ui/JRZQ3C9R/utils/dataParser.js new file mode 100644 index 0000000..63c5dc9 --- /dev/null +++ b/src/ui/JRZQ3C9R/utils/dataParser.js @@ -0,0 +1,160 @@ +/** + * 支付行为指数(JRZQ3C9R)数据解析工具 + */ + +/** + * 将 -1 / 空 / null 统一视为 0,其他数值转为 Number + */ +export function normalizeValue(value) { + if (value === undefined || value === null || value === "" || value === -1) { + return 0; + } + const num = Number(value); + return Number.isNaN(num) ? 0 : num; +} + +/** + * 从原始 data 中提取真正的指标对象 + * 兼容多种包裹结构: + * - { code, data: {...} } + * - { data: { code, data: {...} } } + */ +export function extractPpcmData(raw) { + if (!raw) return {}; + + // example.json 结构:data.data.data + if (raw.data && raw.data.data) { + return raw.data.data || {}; + } + + // 已经是 { code, data } 这一层 + if (raw.data && !raw.code) { + return raw.data || {}; + } + + return raw || {}; +} + +/** + * 获取支付行为评分(原始 300-900 分) + */ +export function getBehavScore(ppcm) { + const score = normalizeValue(ppcm.ppcm_behav_score); + return score; +} + +/** + * 将 300-900 分映射到 0-100 分(用于统一风险评分体系) + */ +export function mapScoreTo100(score) { + if (!score || score <= 0) { + return 100; + } + // 限制在 [300,900] + const clamped = Math.min(900, Math.max(300, score)); + // 300 -> 0, 900 -> 100 + const mapped = ((clamped - 300) / 600) * 100; + return Math.round(mapped); +} + +/** + * 支付行为评分等级标签 + */ +export function getBehavLevel(score) { + if (!score || score <= 0) return "暂无评分"; + if (score >= 800) return "优秀"; + if (score >= 750) return "良好"; + if (score >= 700) return "中等"; + if (score >= 650) return "一般"; + return "偏低"; +} + +/** + * 通用时间段 + */ +export const PERIODS = [ + { key: "d7", label: "近7天" }, + { key: "m1", label: "近1个月" }, + { key: "m3", label: "近3个月" }, + { key: "m6", label: "近6个月" }, + { key: "m12", label: "近1年" }, + { key: "m24", label: "近2年" }, +]; + +/** + * 获取查验次数统计(按时间段) + * ppcm_{period}_bank_qynum / _nbank_fin_qynum / _nbank_other_qynum / _qynum + */ +export function getQueryCountsByPeriod(ppcm) { + const result = {}; + + PERIODS.forEach((p) => { + const prefix = `ppcm_${p.key}`; + result[p.key] = { + bank: normalizeValue(ppcm[`${prefix}_bank_qynum`]), + nbankFin: normalizeValue(ppcm[`${prefix}_nbank_fin_qynum`]), + nbankOther: normalizeValue(ppcm[`${prefix}_nbank_other_qynum`]), + total: normalizeValue(ppcm[`${prefix}_qynum`]), + }; + }); + + return result; +} + +/** + * 获取还款成功 / 失败次数统计(按时间段) + * success:ppcm_{period}_succ_repnum + * fail:ppcm_{period}_fail_repnum + */ +export function getRepayCountsByPeriod(ppcm) { + const result = {}; + + PERIODS.forEach((p) => { + const prefix = `ppcm_${p.key}`; + result[p.key] = { + success: normalizeValue(ppcm[`${prefix}_succ_repnum`]), + fail: normalizeValue(ppcm[`${prefix}_fail_repnum`]), + }; + }); + + return result; +} + +/** + * 获取余额不足失败占比(按时间段) + * ppcm_{period}_fail_neh_repnum_ratio + */ +export function getInsufficientRatioByPeriod(ppcm) { + const result = {}; + + PERIODS.forEach((p) => { + const prefix = `ppcm_${p.key}`; + result[p.key] = normalizeValue(ppcm[`${prefix}_fail_neh_repnum_ratio`]); + }); + + return result; +} + +/** + * 解析最近一次查验距今天数区间编码 + * ppcm_latest_qytoday: 1-10 档位 + */ +export function getLatestQueryBucket(ppcm) { + const code = normalizeValue(ppcm.ppcm_latest_qytoday); + if (!code) return "暂无查验记录"; + + const mapping = { + 1: "0-7天", + 2: "7-15天", + 3: "15-30天", + 4: "30-60天", + 5: "60-90天", + 6: "90-120天", + 7: "120-150天", + 8: "150-180天", + 9: "180-360天", + 10: "360天以上", + }; + + return mapping[code] || "未知区间"; +} diff --git a/src/ui/JRZQ6F2A/components/ApplicationCountSection.vue b/src/ui/JRZQ6F2A/components/ApplicationCountSection.vue index 7d602d3..5577281 100644 --- a/src/ui/JRZQ6F2A/components/ApplicationCountSection.vue +++ b/src/ui/JRZQ6F2A/components/ApplicationCountSection.vue @@ -1,14 +1,21 @@