配置风控选项联调

V0.1
yujialong 12 months ago
parent da1ace2eff
commit fa6e48314e
  1. 573
      src/views/product/bank/Config.vue

@ -14,23 +14,48 @@
<h6 class="step-name mb-7">办理账户</h6>
<el-form-item label="提供材料"
prop="accountMaterials">
<el-checkbox-group v-model="form.accountMaterials"
@change="denyAll('accountMaterials', 769)">
<el-checkbox v-for="(item, i) in config[0]?.recordChildren[0]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group>
<div>
<div class="radio-wrap flex-col items-start mb-1">
<el-radio-group v-model="form.accountMaterialsCheck">
<el-radio v-for="(item, i) in whethers"
:key="i"
:label="item.id">{{ item.name }}</el-radio>
</el-radio-group>
<p class="whether mt-1">选择需要提供的申请人材料至少选一样</p>
</div>
<el-checkbox-group v-if="form.accountMaterialsCheck === 797"
v-model="form.accountMaterials">
<el-checkbox v-for="(item, i) in config[0]?.recordChildren[0]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group>
</div>
</el-form-item>
<el-form-item label="发放账户"
prop="sendingAccount">
<el-radio v-model="form.sendingAccount"
:label="46">借记卡或放款专户</el-radio>
<div>
<div class="radio-wrap flex-col items-start">
<el-radio-group v-model="form.sendingAccountCheck">
<el-radio v-for="(item, i) in config[0]?.recordChildren[1]?.recordChildren[0]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group>
<p class="whether mt-1">选择需要发放的账户至少选一样</p>
</div>
<template v-if="form.sendingAccountCheck === 801">
<el-radio v-for="(item, i) in config[0]?.recordChildren[1]?.subject?.itemList"
:key="i"
v-model="form.sendingAccount"
:label="item.itemId">{{ item.options }}</el-radio>
</template>
</div>
</el-form-item>
</div>
<div class="step">
<h6 class="step-name mb-7">贷款申请</h6>
<el-form-item label="申请方式"
prop="loanApplicationMethod">
<p class="mr-5 text-xs text-[#666]">选择申请方式至少选一样</p>
<el-checkbox-group v-model="form.loanApplicationMethod">
<el-checkbox v-for="(item, i) in config[1]?.recordChildren[0]?.subject?.itemList"
:key="i"
@ -40,13 +65,19 @@
<el-form-item label="提供材料"
prop="borrowerMaterial">
<div class="flex-1">
<p class="field-name">借款人材料</p>
<div class="flex items-center mb-3">
<el-checkbox-group v-model="form.borrowerMaterial">
<el-checkbox :label="config[1]?.recordChildren[1]?.recordChildren[0].id">{{ config[1]?.recordChildren[1]?.recordChildren[0].name }}</el-checkbox>
</el-checkbox-group>
<el-select v-show="(info.productType && form.borrowerMaterial?.includes(316)) || (!info.productType && form.borrowerMaterial?.includes(314))"
class="ml-5"
<div class="flex items-center">
<p class="field-name mr-5 mb-0">借款人材料</p>
<div class="radio-wrap flex-col items-start">
<el-radio-group v-model="form.borrowerMaterialCheck">
<el-radio v-for="(item, i) in whethers"
:key="i"
:label="item.id">{{ item.name }}</el-radio>
</el-radio-group>
</div>
</div>
<p class="text-xs text-[#666]">选择需要提供的借款人材料至少选一样</p>
<div v-if="form.borrowerMaterialCheck === 797">
<el-select class="my-2"
v-model="form.borrowerMaterialSelect"
placeholder="请选择">
<el-option v-for="item in config[1]?.recordChildren[1]?.recordChildren[1]?.subject?.itemList"
@ -54,19 +85,29 @@
:label="item.options"
:value="item.itemId" />
</el-select>
<el-checkbox-group v-model="form.borrowerMaterial"
@change="denyAll('borrowerMaterial', 770)">
<el-checkbox v-for="(item, i) in config[1]?.recordChildren[1]?.recordChildren[0]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group>
</div>
<el-checkbox-group v-model="form.borrowerMaterial"
@change="denyAll('borrowerMaterial', 770)">
<el-checkbox v-for="(item, i) in config[1]?.recordChildren[1]?.recordChildren[0]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group>
<!-- 企业 -->
<template v-if="info.productType">
<p class="field-name mt-5">企业材料</p>
<div>
<el-checkbox-group v-model="form.enterpriseMaterial">
<div class="radio-wrap flex-col items-start mb-2">
<el-radio-group v-model="form.enterpriseMaterialCheck">
<el-radio v-for="(item, i) in whethers"
:key="i"
:label="item.id">{{ item.name }}</el-radio>
</el-radio-group>
<p class="whether mt-1">选择需要提供的企业材料至少选一样</p>
</div>
<el-checkbox-group v-if="form.enterpriseMaterialCheck === 797"
v-model="form.enterpriseMaterial">
<el-checkbox v-for="(item, i) in config[1]?.recordChildren[2]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-checkbox>
@ -74,7 +115,16 @@
</div>
<p class="field-name mt-5">抵押物</p>
<div>
<el-checkbox-group v-model="form.collateral">
<div class="radio-wrap flex-col items-start mb-2">
<el-radio-group v-model="form.collateralCheck">
<el-radio v-for="(item, i) in whethers"
:key="i"
:label="item.id">{{ item.name }}</el-radio>
</el-radio-group>
<p class="whether mt-1">选择需要提供的抵押物材料至少选一样</p>
</div>
<el-checkbox-group v-if="form.collateralCheck === 797"
v-model="form.collateral">
<el-checkbox v-for="(item, i) in config[1]?.recordChildren[3]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-checkbox>
@ -83,9 +133,19 @@
</template>
<!-- 个人 -->
<template v-else>
<p class="field-name mt-5">配偶材料</p>
<p class="field-name mt-5 mb-0">配偶材料</p>
<div>
<el-checkbox-group v-model="form.mateMaterial"
<div class="radio-wrap flex-col items-start mb-1">
<el-radio-group v-model="form.mateMaterialCheck">
<el-radio v-for="(item, i) in whethers"
:key="i"
:label="item.id">{{ item.name }}</el-radio>
</el-radio-group>
<p class="whether mt-1">选择需要提供的配偶材料至少选一样</p>
</div>
<el-checkbox-group v-if="form.mateMaterialCheck === 797"
v-model="form.mateMaterial"
@change="denyAll('mateMaterial', 350)">
<el-checkbox v-for="(item, i) in config[1]?.recordChildren[2]?.subject?.itemList"
:key="i"
@ -94,7 +154,17 @@
</div>
<p class="field-name mt-5">经营类材料</p>
<div>
<el-checkbox-group v-model="form.businessMaterials"
<div class="radio-wrap flex-col items-start mb-1">
<el-radio-group v-model="form.businessMaterialsCheck">
<el-radio v-for="(item, i) in whethers"
:key="i"
:label="item.id">{{ item.name }}</el-radio>
</el-radio-group>
<p class="whether mt-1">选择需要提供的经营类材料至少选一样</p>
</div>
<el-checkbox-group v-if="form.businessMaterialsCheck === 797"
v-model="form.businessMaterials"
@change="denyAll('businessMaterials', 351)">
<el-checkbox v-for="(item, i) in config[1]?.recordChildren[3]?.subject?.itemList"
:key="i"
@ -104,14 +174,23 @@
</template>
<p class="field-name mt-5">补充材料</p>
<div>
<el-checkbox-group v-model="form.supplementaryMaterials"
<div class="radio-wrap flex-col items-start mb-1">
<el-radio-group v-model="form.supplementaryMaterialsCheck">
<el-radio v-for="(item, i) in whethers"
:key="i"
:label="item.id">{{ item.name }}</el-radio>
</el-radio-group>
<p class="whether mt-1">选择需要提供的补充材料至少选一样</p>
</div>
<el-checkbox-group v-if="form.supplementaryMaterialsCheck === 797"
v-model="form.supplementaryMaterials"
@change="denyAll('supplementaryMaterials', 352)">
<el-checkbox v-for="(item, i) in config[1]?.recordChildren[4]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group>
</div>
</div>
</el-form-item>
</div>
@ -119,68 +198,120 @@
<h6 class="step-name mb-7">系统跑批准入风控策略</h6>
<el-form-item label="跑批对象"
prop="runBatchObject">
<el-checkbox-group v-model="form.runBatchObject">
<el-checkbox v-for="(item, i) in config[2]?.recordChildren[0]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group>
<div>
<div class="radio-wrap flex-col items-start mb-2">
<el-radio-group v-model="form.runBatchObjectCheck">
<el-radio v-for="(item, i) in config[2]?.recordChildren[0]?.recordChildren[0]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group>
<p class="whether mt-1">选择需要跑批的对象至少选一样</p>
</div>
<el-checkbox-group v-if="form.runBatchObjectCheck === 803"
v-model="form.runBatchObject">
<el-checkbox v-for="(item, i) in config[2]?.recordChildren[0]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group>
</div>
</el-form-item>
<el-form-item label="准入策略"
prop="accessStrategy">
<el-checkbox-group v-model="form.accessStrategy">
<el-checkbox v-for="(item, i) in config[2]?.recordChildren[1]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group>
<div>
<div class="radio-wrap flex-col items-start mb-2">
<el-radio-group v-model="form.accessStrategyCheck">
<el-radio v-for="(item, i) in config[2]?.recordChildren[1]?.recordChildren[0]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group>
<p class="whether mt-1">选择需要跑批的准入策略至少选一样</p>
</div>
<el-checkbox-group v-if="form.accessStrategyCheck === 803"
v-model="form.accessStrategy">
<el-checkbox v-for="(item, i) in config[2]?.recordChildren[1]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group>
</div>
</el-form-item>
<el-form-item label="信用评分策略"
label-width="130px"
prop="personalCreditScoringStrategiesCheck">
<div class="flex-1">
<div class="flex items-center mb-3">
<el-checkbox v-model="form.personalCreditScoringStrategiesCheck"
label="个人信用评分策略" />
<el-select v-show="form.personalCreditScoringStrategiesCheck"
<div class="radio-wrap">
<span class="label">个人信用评分策略</span>
<el-radio-group v-model="form.personalCreditScoringStrategiesCheck">
<el-radio v-for="(item, i) in whethers"
:key="i"
:label="item.id">{{ item.name }}</el-radio>
</el-radio-group>
</div>
<el-select v-if="form.personalCreditScoringStrategiesCheck === 797"
class="ml-5"
v-model="form.personalCreditScoringStrategies"
placeholder="请选择">
<el-option v-for="item in credits.filter(e => !e.scoringObject)"
:key="item"
:value="item.scoreCardName" />
<el-option value="无" />
</el-select>
</div>
<div class="flex items-center">
<el-checkbox v-model="form.corporateCreditScoringStrategiesCheck"
label="企业信用评分策略" />
<el-select v-show="form.corporateCreditScoringStrategiesCheck"
<div class="radio-wrap">
<span class="label">企业信用评分策略</span>
<el-radio-group v-model="form.corporateCreditScoringStrategiesCheck">
<el-radio v-for="(item, i) in whethers"
:key="i"
:label="item.id">{{ item.name }}</el-radio>
</el-radio-group>
</div>
<el-select v-if="form.corporateCreditScoringStrategiesCheck === 797"
class="ml-5"
v-model="form.corporateCreditScoringStrategies"
placeholder="请选择">
<el-option v-for="item in credits.filter(e => e.scoringObject)"
:key="item"
:value="item.scoreCardName" />
<el-option value="无" />
</el-select>
</div>
</div>
</el-form-item>
<el-form-item label="风险度策略"
prop="riskDegreeStrategy">
<el-checkbox-group v-model="form.riskDegreeStrategy">
<el-checkbox v-for="(item, i) in config[2]?.recordChildren[3]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group>
<div class="flex items-center h-[47px]">
<div class="radio-wrap">
<el-radio-group v-model="form.riskDegreeStrategyCheck">
<el-radio v-for="(item, i) in config[2]?.recordChildren[3]?.recordChildren[0]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group>
</div>
<el-checkbox-group v-if="form.riskDegreeStrategyCheck === 803"
v-model="form.riskDegreeStrategy">
<el-checkbox v-for="(item, i) in config[2]?.recordChildren[3]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group>
</div>
</el-form-item>
<el-form-item label="利率定价模型"
label-width="130px"
prop="interestRatePricingModelCheck">
<div class="flex-1">
<div class="flex items-center mb-3">
<el-checkbox v-model="form.interestRatePricingModelCheck"
:label="(info.productType ? '企业' : '个人') + '额度模型'" />
<el-select v-show="form.interestRatePricingModelCheck"
<div class="radio-wrap">
<span class="label">{{ (info.productType ? '企业' : '个人') + '额度模型' }}</span>
<el-radio-group v-model="form.interestRatePricingModelCheck">
<el-radio v-for="(item, i) in config[2]?.recordChildren[3]?.recordChildren[0]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group>
</div>
<el-select v-if="form.interestRatePricingModelCheck === 803"
class="ml-5"
v-model="form.interestRatePricingModel"
placeholder="请选择">
@ -190,8 +321,15 @@
:value="item.itemId" />
</el-select>
</div>
<el-checkbox v-model="form.individualInterestRateModel"
:label="info.productType ? 763 : 762">{{ info.productType ? '企业' : '个人' }}利率模型</el-checkbox>
<div class="radio-wrap">
<span class="label">{{ (info.productType ? '企业' : '个人') + '利率模型' }}</span>
<el-radio-group v-model="form.individualInterestRateModel">
<el-radio v-for="(item, i) in config[2]?.recordChildren[4]?.recordChildren[0]?.recordChildren[0]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group>
</div>
</div>
</el-form-item>
</div>
@ -199,60 +337,95 @@
<h6 class="step-name mb-7">尽职调查</h6>
<el-form-item label="尽调方式"
prop="dueDiligenceMode">
<el-radio-group v-model="form.dueDiligenceMode">
<el-radio v-for="(item, i) in config[3]?.recordChildren[0]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group>
<div>
<p class="tips leading-[32px]">选择尽调方式至少选一样</p>
<el-radio-group v-model="form.dueDiligenceMode">
<el-radio v-for="(item, i) in config[3]?.recordChildren[0]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group>
</div>
</el-form-item>
<el-form-item label="尽调内容"
prop="dueDiligenceContent">
<el-checkbox-group v-model="form.dueDiligenceContent">
<el-checkbox v-for="(item, i) in config[3]?.recordChildren[1]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group>
<div>
<p class="tips leading-[32px]">选择尽调内容至少选一样</p>
<el-checkbox-group v-model="form.dueDiligenceContent">
<el-checkbox v-for="(item, i) in config[3]?.recordChildren[1]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group>
</div>
</el-form-item>
</div>
<div class="step">
<h6 class="step-name mb-7">贷款审查</h6>
<el-form-item label="审查内容"
prop="reviewContent">
<el-radio v-model="form.reviewContent"
:label="info.productType ? 261 : 114">{{ info.productType ? '所有基本信息' : '所有基本材料' }}</el-radio>
<div>
<p class="tips leading-[32px]">选择审查材料至少选一样</p>
<el-radio v-model="form.reviewContent"
:label="info.productType ? 261 : 114">{{ info.productType ? '所有基本信息' : '所有基本材料' }}</el-radio>
</div>
</el-form-item>
<el-form-item label="审查签字"
prop="reviewSignature">
<el-radio v-model="form.reviewSignature"
:label="info.productType ? 262 : 115">用信调查申报表</el-radio>
<div>
<p class="tips leading-[32px]">选择签字表单至少选一样</p>
<el-radio v-model="form.reviewSignature"
:label="info.productType ? 262 : 115">用信调查申报表</el-radio>
</div>
</el-form-item>
</div>
<div class="step">
<h6 class="step-name mb-7">贷款审批</h6>
<el-form-item label="审批内容"
prop="reviewApproveContent">
<el-radio v-model="form.reviewApproveContent"
:label="info.productType ? 263 : 116">以上所有材料</el-radio>
<div>
<p class="tips leading-[32px]">选择审批材料至少选一样</p>
<el-radio v-model="form.reviewApproveContent"
:label="info.productType ? 263 : 116">以上所有材料</el-radio>
</div>
</el-form-item>
<el-form-item label="审批签字"
prop="approvalSignature">
<el-radio v-model="form.approvalSignature"
:label="info.productType ? 264 : 117">用信调查申报表</el-radio>
<div>
<p class="tips leading-[32px]">选择签字表单至少选一样</p>
<el-radio v-model="form.approvalSignature"
:label="info.productType ? 264 : 117">用信调查申报表</el-radio>
</div>
</el-form-item>
</div>
<div class="step">
<h6 class="step-name mb-7">签订合同</h6>
<el-form-item label="提供的材料"
prop="contractMaterials">
<el-radio v-model="form.contractMaterials"
:label="info.productType ? 265 : 118">抵押物所有权证明</el-radio>
<div class="flex items-center">
<div class="radio-wrap">
<el-radio-group v-model="form.contractMaterialsCheck">
<el-radio v-for="(item, i) in whethers"
:key="i"
:label="item.id">{{ item.name }}</el-radio>
</el-radio-group>
</div>
<el-radio v-if="form.contractMaterialsCheck === 797"
v-model="form.contractMaterials"
:label="info.productType ? 265 : 118">抵押物所有权证明</el-radio>
</div>
</el-form-item>
<el-form-item label="合同模板">
<div class="flex-1">
<div class="flex items-center mb-3">
<el-checkbox v-model="form.loanContractCheck"
label="借贷合同" />
<el-select v-show="form.loanContractCheck"
<div class="radio-wrap">
<span class="label">借贷合同</span>
<el-radio-group v-model="form.loanContractCheck">
<el-radio v-for="(item, i) in whethers"
:key="i"
:label="item.id">{{ item.name }}</el-radio>
</el-radio-group>
</div>
<el-select v-if="form.loanContractCheck === 797"
class="ml-5"
v-model="form.loanContract"
placeholder="请选择">
@ -263,9 +436,16 @@
</el-select>
</div>
<div class="flex items-center mb-3">
<el-checkbox v-model="form.mortgageContractCheck"
label="抵押合同" />
<el-select v-show="form.mortgageContractCheck"
<div class="radio-wrap">
<span class="label">抵押合同</span>
<el-radio-group v-model="form.mortgageContractCheck">
<el-radio v-for="(item, i) in whethers"
:key="i"
:label="item.id">{{ item.name }}</el-radio>
</el-radio-group>
</div>
<el-select v-if="form.mortgageContractCheck === 797"
class="ml-5"
v-model="form.mortgageContract"
placeholder="请选择">
@ -276,9 +456,15 @@
</el-select>
</div>
<div class="flex items-center mb-3">
<el-checkbox v-model="form.pledgeContractCheck"
label="质押合同" />
<el-select v-show="form.pledgeContractCheck"
<div class="radio-wrap">
<span class="label">质押合同</span>
<el-radio-group v-model="form.pledgeContractCheck">
<el-radio v-for="(item, i) in whethers"
:key="i"
:label="item.id">{{ item.name }}</el-radio>
</el-radio-group>
</div>
<el-select v-if="form.pledgeContractCheck === 797"
class="ml-5"
v-model="form.pledgeContract"
placeholder="请选择">
@ -289,9 +475,15 @@
</el-select>
</div>
<div class="flex items-center">
<el-checkbox v-model="form.guaranteeContractCheck"
label="担保合同" />
<el-select v-show="form.guaranteeContractCheck"
<div class="radio-wrap">
<span class="label">担保合同</span>
<el-radio-group v-model="form.guaranteeContractCheck">
<el-radio v-for="(item, i) in whethers"
:key="i"
:label="item.id">{{ item.name }}</el-radio>
</el-radio-group>
</div>
<el-select v-if="form.guaranteeContractCheck === 797"
class="ml-5"
v-model="form.guaranteeContract"
placeholder="请选择">
@ -308,11 +500,22 @@
<h6 class="step-name mb-7">贷后管理</h6>
<el-form-item label="选择策略"
prop="selectionStrategy">
<el-checkbox-group v-model="form.selectionStrategy">
<el-checkbox v-for="(item, i) in info.productType ? config[7]?.recordChildren[0]?.subject?.itemList : config[7]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group>
<div>
<div class="radio-wrap flex-col items-start mb-1">
<el-radio-group v-model="form.selectionStrategyCheck">
<el-radio v-for="(item, i) in info.productType ? config[7]?.recordChildren[0]?.recordChildren[0]?.subject?.itemList : config[7]?.recordChildren[0]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group>
<p class="whether mt-1">选择策略至少选一样</p>
</div>
<el-checkbox-group v-if="form.selectionStrategyCheck === 803"
v-model="form.selectionStrategy">
<el-checkbox v-for="(item, i) in info.productType ? config[7]?.recordChildren[0]?.subject?.itemList : config[7]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group>
</div>
</el-form-item>
</div>
</el-form>
@ -345,42 +548,58 @@ import Cookies from 'js-cookie';
const emit = defineEmits(['getList']);
interface RuleForm {
accessStrategyCheck?: number;
accessStrategy: any;
accountMaterialsCheck?: number;
accountMaterials: any;
approvalSignature?: any;
bankProductsId: any;
borrowerMaterialCheck?: number;
borrowerMaterial: any;
borrowerMaterialSelect: any;
businessMaterialsCheck?: number;
businessMaterials: any;
collateralCheck?: number;
collateral: any;
contractMaterialsCheck?: number;
contractMaterials: any;
corporateCreditScoringStrategiesCheck: boolean;
corporateCreditScoringStrategiesCheck?: number;
corporateCreditScoringStrategies: any;
corporateInterestRateModel: any;
dueDiligenceContent: any;
dueDiligenceMode: any;
enterpriseMaterialCheck?: number;
enterpriseMaterial: any;
enterpriseQuotaModel: any;
guaranteeContractCheck?: number;
guaranteeContract: any;
individualInterestRateModel: any;
interestRatePricingModelCheck: boolean;
individualInterestRateModel?: number;
interestRatePricingModelCheck?: number;
interestRatePricingModel: any;
loanApplicationMethod: any;
loanContractCheck?: number;
loanContract: any;
mateMaterialCheck?: number;
mateMaterial: any;
materialsForLoanApproval: any;
mortgageContractCheck?: number;
mortgageContract: any;
personalCreditScoringStrategiesCheck: boolean;
personalCreditScoringStrategiesCheck?: number;
personalCreditScoringStrategies: any;
pledgeContractCheck: boolean;
pledgeContractCheck?: number;
pledgeContract: any;
reviewApproveContent: any;
reviewContent: any;
reviewSignature: any;
riskDegreeStrategyCheck?: number;
riskDegreeStrategy: any;
runBatchObjectCheck?: number;
runBatchObject: any;
selectionStrategyCheck?: number;
selectionStrategy: any;
sendingAccountCheck?: number;
sendingAccount: any;
supplementaryMaterialsCheck?: number;
supplementaryMaterials: any;
}
@ -393,46 +612,72 @@ const curTab = ref<string>('tab1');
const config = ref<any[]>([]);
const credits = ref<Record<string, any>[]>([]);
const info = ref<Record<string, any>>({});
const whethers = ref<Record<string, any>>([
{
id: 797,
name: '需要提供',
},
{
id: 798,
name: '无需提供',
},
]);
const formRef = ref<FormInstance>();
const form = reactive<RuleForm>({
checkPointId: levelId,
projectId,
accessStrategyCheck: '',
accessStrategy: [],
accountMaterialsCheck: '',
accountMaterials: [],
approvalSignature: '',
bankProductsId: computed(() => +route.query.id),
borrowerMaterialCheck: '',
borrowerMaterial: [],
borrowerMaterialSelect: '',
businessMaterialsCheck: '',
businessMaterials: [],
collateralCheck: '',
collateral: [],
contractMaterialsCheck: '',
contractMaterials: '',
corporateCreditScoringStrategiesCheck: false,
corporateCreditScoringStrategiesCheck: '',
corporateCreditScoringStrategies: '',
corporateInterestRateModel: [],
dueDiligenceContent: [],
dueDiligenceMode: '',
enterpriseMaterialCheck: '',
enterpriseMaterial: [],
enterpriseQuotaModel: '',
guaranteeContractCheck: '',
guaranteeContract: '',
individualInterestRateModel: [],
interestRatePricingModelCheck: false,
individualInterestRateModel: '',
interestRatePricingModelCheck: '',
interestRatePricingModel: '',
loanApplicationMethod: [],
loanContractCheck: '',
loanContract: '',
mateMaterialCheck: '',
mateMaterial: [],
materialsForLoanApproval: [],
mortgageContractCheck: '',
mortgageContract: '',
personalCreditScoringStrategiesCheck: false,
personalCreditScoringStrategiesCheck: '',
personalCreditScoringStrategies: '',
pledgeContractCheck: false,
pledgeContractCheck: '',
pledgeContract: '',
reviewApproveContent: '',
reviewContent: '',
reviewSignature: '',
riskDegreeStrategyCheck: '',
riskDegreeStrategy: [],
runBatchObjectCheck: '',
runBatchObject: [],
selectionStrategyCheck: '',
selectionStrategy: [],
sendingAccountCheck: '',
sendingAccount: '',
supplementaryMaterialsCheck: '',
supplementaryMaterials: [],
});
@ -486,35 +731,35 @@ const submit = async (formEl: FormInstance | undefined) => {
const isEnterprise = info.value.productType === 1;
const param = JSON.parse(JSON.stringify(form));
param.accessStrategy = param.accessStrategy.join();
if ((isEnterprise && param.borrowerMaterial?.includes(316)) || (!isEnterprise && param.borrowerMaterial?.includes(314)))
param.borrowerMaterial.splice(1, 0, param.borrowerMaterialSelect);
param.accessStrategy = param.accessStrategyCheck === 797 ? param.accessStrategy.join() : '';
if (param.borrowerMaterialCheck === 797) param.borrowerMaterial.unshift(param.borrowerMaterialSelect);
param.borrowerMaterial = param.borrowerMaterial.join();
param.accountMaterials = param.accountMaterials.join();
param.accountMaterials = param.accountMaterialsCheck === 797 ? param.accountMaterials.join() : '';
if (param.sendingAccountCheck === 802) param.sendingAccount = '';
//
param.collateral = param.collateral.join();
param.enterpriseMaterial = param.enterpriseMaterial.join();
param.collateral = param.collateralCheck === 797 ? param.collateral.join() : '';
param.enterpriseMaterial = param.enterpriseMaterialCheck === 797 ? param.enterpriseMaterial.join() : '';
param.corporateInterestRateModel = param.corporateInterestRateModel.join();
param.materialsForLoanApproval = param.materialsForLoanApproval.join();
//
param.businessMaterials = param.businessMaterials.join();
param.mateMaterial = param.mateMaterial.join();
param.individualInterestRateModel = param.individualInterestRateModel.join();
if (!param.personalCreditScoringStrategiesCheck) param.personalCreditScoringStrategies = '无';
if (!param.corporateCreditScoringStrategiesCheck) param.corporateCreditScoringStrategies = '无';
if (!param.interestRatePricingModelCheck) param.interestRatePricingModel = '';
if (!param.loanContractCheck) param.loanContract = '';
if (!param.mortgageContractCheck) param.mortgageContract = '';
if (!param.pledgeContractCheck) param.pledgeContract = '';
if (!param.guaranteeContractCheck) param.guaranteeContract = '';
param.businessMaterials = param.businessMaterialsCheck === 797 ? param.businessMaterials.join() : '';
param.mateMaterial = param.mateMaterialCheck === 797 ? param.mateMaterial.join() : '';
if (param.personalCreditScoringStrategiesCheck !== 797) param.personalCreditScoringStrategies = '';
if (param.corporateCreditScoringStrategiesCheck !== 797) param.corporateCreditScoringStrategies = '';
if (param.interestRatePricingModelCheck !== 803) param.interestRatePricingModel = '';
if (param.loanContractCheck !== 797) param.loanContract = '';
if (param.mortgageContractCheck !== 797) param.mortgageContract = '';
if (param.pledgeContractCheck !== 797) param.pledgeContract = '';
if (param.guaranteeContractCheck !== 797) param.guaranteeContract = '';
param.dueDiligenceContent = param.dueDiligenceContent.join();
param.loanApplicationMethod = param.loanApplicationMethod.join();
param.riskDegreeStrategy = param.riskDegreeStrategy.join();
param.runBatchObject = param.runBatchObject.join();
param.selectionStrategy = param.selectionStrategy.join();
param.supplementaryMaterials = param.supplementaryMaterials.join();
param.riskDegreeStrategy = param.riskDegreeStrategyCheck === 803 ? param.riskDegreeStrategy.join() : '';
param.runBatchObject = param.runBatchObjectCheck === 797 ? param.runBatchObject.join() : '';
param.selectionStrategy = param.selectionStrategyCheck === 803 ? param.selectionStrategy.join() : '';
param.supplementaryMaterials = param.supplementaryMaterialsCheck === 797 ? param.supplementaryMaterials.join() : '';
if (param.contractMaterialsCheck !== 797) param.contractMaterials = '';
if (info.value.riskControlDetails) {
param.id = info.value.riskControlDetails.id;
await riskUpdate(param);
@ -541,31 +786,43 @@ const addRecord = async (data: Record<string, any>) => {
//
if (isEnterprise) {
data.accountMaterialsCheck && lcRule.push(handleId(1268, 325, data.accountMaterialsCheck, preIds + ',112,120,1268', 1));
data.accountMaterials && lcRule.push(handleId(120, 44, data.accountMaterials, preIds + ',112,120', 1));
data.sendingAccount && lcRule.push(handleId(121, 45, 162, preIds + ',112,121', 1));
data.sendingAccountCheck && lcRule.push(handleId(1269, 326, data.sendingAccountCheck, preIds + ',112,121,1269', 1));
data.sendingAccount && lcRule.push(handleId(121, 45, data.sendingAccount, preIds + ',112,121', 1));
data.loanApplicationMethod && lcRule.push(handleId(122, 46, data.loanApplicationMethod, preIds + ',113,122', 1));
data.enterpriseMaterialCheck && lcRule.push(handleId(1272, 325, data.enterpriseMaterialCheck, preIds + ',113,124,1272', 1));
data.enterpriseMaterial && lcRule.push(handleId(124, 48, data.enterpriseMaterial, preIds + ',113,124', 1));
form.borrowerMaterialCheck && lcRule.push(handleId(1270, 325, form.borrowerMaterialCheck, preIds + ',113,123,316,1270', 1));
const borrowerMaterial = [];
form.borrowerMaterial.forEach((e) => {
e != 316 && borrowerMaterial.push(e);
borrowerMaterial.push(e);
});
borrowerMaterial.length && lcRule.push(handleId(316, 47, borrowerMaterial.join(), preIds + ',113,123,316', 1));
data.borrowerMaterialSelect && lcRule.push(handleId(317, 149, data.borrowerMaterialSelect, preIds + ',113,123,317', 1));
data.collateralCheck && lcRule.push(handleId(1273, 325, data.collateralCheck, preIds + ',113,125,1273', 1));
data.collateral && lcRule.push(handleId(125, 49, data.collateral, preIds + ',113,125', 1));
data.supplementaryMaterialsCheck && lcRule.push(handleId(1274, 325, data.supplementaryMaterialsCheck, preIds + ',113,126,1274', 1));
data.supplementaryMaterials && lcRule.push(handleId(126, 50, data.supplementaryMaterials, preIds + ',113,126', 1));
data.runBatchObjectCheck && lcRule.push(handleId(1275, 327, data.runBatchObjectCheck, preIds + ',114,127,1275', 1));
data.runBatchObject && lcRule.push(handleId(127, 51, data.runBatchObject, preIds + ',114,127', 1));
data.accessStrategyCheck && lcRule.push(handleId(1276, 327, data.accessStrategyCheck, preIds + ',114,128,1276', 1));
data.accessStrategy && lcRule.push(handleId(128, 52, data.accessStrategy, preIds + ',114,128', 1));
//
lcRule.push(handleId(1044, 302, data.personalCreditScoringStrategiesCheck ? 759 : 760, preIds + ',114,129,1046,1044', 1));
lcRule.push(handleId(1044, 302, data.corporateCreditScoringStrategiesCheck ? 759 : 760, preIds + ',114,129,1047,1044', 1));
lcRule.push(handleId(1045, 303, data.personalCreditScoringStrategies, preIds + ',114,129,1046,1045', 3));
lcRule.push(handleId(1045, 303, data.corporateCreditScoringStrategies, preIds + ',114,129,1047,1045', 3));
data.personalCreditScoringStrategiesCheck && lcRule.push(handleId(1256, 327, data.personalCreditScoringStrategiesCheck, preIds + ',114,129,1046,1256', 1));
data.corporateCreditScoringStrategiesCheck && lcRule.push(handleId(1257, 327, data.corporateCreditScoringStrategiesCheck, preIds + ',114,129,1047,1257', 1));
data.riskDegreeStrategyCheck && lcRule.push(handleId(1277, 327, data.riskDegreeStrategyCheck, preIds + ',114,130,1277', 1));
data.riskDegreeStrategy && lcRule.push(handleId(130, 54, data.riskDegreeStrategy, preIds + ',114,130', 1));
data.interestRatePricingModelCheck && lcRule.push(handleId(305, 55, data.interestRatePricingModel, preIds + ',114,131,305', 1));
data.individualInterestRateModel && lcRule.push(handleId(304, 305, data.individualInterestRateModel, preIds + ',114,131,304', 1));
data.interestRatePricingModelCheck && lcRule.push(handleId(1279, 327, data.interestRatePricingModelCheck, preIds + ',114,131,305,1279', 1));
data.interestRatePricingModel && lcRule.push(handleId(305, 55, data.interestRatePricingModel, preIds + ',114,131,305', 1));
data.individualInterestRateModel && lcRule.push(handleId(1278, 327, data.individualInterestRateModel, preIds + ',114,131,304,1278', 1));
data.dueDiligenceMode && lcRule.push(handleId(132, 56, data.dueDiligenceMode, preIds + ',115,132', 1));
data.dueDiligenceContent && lcRule.push(handleId(133, 57, data.dueDiligenceContent, preIds + ',115,133', 1));
@ -573,38 +830,61 @@ const addRecord = async (data: Record<string, any>) => {
data.reviewSignature && lcRule.push(handleId(135, 59, data.reviewSignature, preIds + ',116,135', 1));
data.reviewApproveContent && lcRule.push(handleId(136, 60, data.reviewApproveContent, preIds + ',117,136', 1));
data.approvalSignature && lcRule.push(handleId(137, 61, data.approvalSignature, preIds + ',117,137', 1));
data.contractMaterialsCheck && lcRule.push(handleId(1280, 325, data.contractMaterialsCheck, preIds + ',118,138,1280', 1));
data.contractMaterials && lcRule.push(handleId(138, 62, data.contractMaterials, preIds + ',118,138', 1));
data.loanContractCheck && lcRule.push(handleId(1281, 325, data.loanContractCheck, preIds + ',118,139,306,1281', 1));
data.loanContract && lcRule.push(handleId(306, 63, data.loanContract, preIds + ',118,139,306', 1));
data.mortgageContractCheck && lcRule.push(handleId(1282, 325, data.mortgageContractCheck, preIds + ',118,139,307,1282', 1));
data.mortgageContract && lcRule.push(handleId(307, 142, data.mortgageContract, preIds + ',118,139,307', 1));
data.pledgeContractCheck && lcRule.push(handleId(1283, 325, data.pledgeContractCheck, preIds + ',118,139,308,1283', 1));
data.pledgeContract && lcRule.push(handleId(308, 143, data.pledgeContract, preIds + ',118,139,308', 1));
data.guaranteeContractCheck && lcRule.push(handleId(1284, 325, data.guaranteeContractCheck, preIds + ',118,139,309,1284', 1));
data.guaranteeContract && lcRule.push(handleId(309, 144, data.guaranteeContract, preIds + ',118,139,309', 1));
data.selectionStrategyCheck && lcRule.push(handleId(1285, 327, data.selectionStrategyCheck, preIds + ',119,140,1285', 1));
data.selectionStrategy && lcRule.push(handleId(140, 64, data.selectionStrategy, preIds + ',119,140', 1));
} else {
data.accountMaterialsCheck && lcRule.push(handleId(1246, 325, data.accountMaterialsCheck, preIds + ',72,75,1246', 1));
data.accountMaterials && lcRule.push(handleId(75, 20, data.accountMaterials, preIds + ',72,75', 1));
data.sendingAccount && lcRule.push(handleId(76, 21, 46, preIds + ',72,76', 1));
data.sendingAccountCheck && lcRule.push(handleId(1247, 326, data.sendingAccountCheck, preIds + ',72,76,1247', 1));
data.sendingAccount && lcRule.push(handleId(76, 21, data.sendingAccount, preIds + ',72,76', 1));
data.loanApplicationMethod && lcRule.push(handleId(77, 22, data.loanApplicationMethod, preIds + ',73,77', 1));
form.borrowerMaterialCheck && lcRule.push(handleId(1249, 325, form.borrowerMaterialCheck, preIds + ',73,78,314,1249', 1));
const borrowerMaterial = [];
form.borrowerMaterial.forEach((e) => {
e != 314 && borrowerMaterial.push(e);
borrowerMaterial.push(e);
});
borrowerMaterial.length && lcRule.push(handleId(314, 23, borrowerMaterial.join(), preIds + ',73,78,314', 1));
data.borrowerMaterialSelect && lcRule.push(handleId(315, 148, data.borrowerMaterialSelect, preIds + ',73,78,315', 1));
data.mateMaterialCheck && lcRule.push(handleId(1251, 325, data.mateMaterialCheck, preIds + ',73,79,1251', 1));
data.mateMaterial && lcRule.push(handleId(79, 24, data.mateMaterial, preIds + ',73,79', 1));
data.businessMaterialsCheck && lcRule.push(handleId(1252, 325, data.businessMaterialsCheck, preIds + ',73,80,1252', 1));
data.businessMaterials && lcRule.push(handleId(80, 25, data.businessMaterials, preIds + ',73,80', 1));
data.supplementaryMaterialsCheck && lcRule.push(handleId(1253, 325, data.supplementaryMaterialsCheck, preIds + ',73,81,1253', 1));
data.supplementaryMaterials && lcRule.push(handleId(81, 26, data.supplementaryMaterials, preIds + ',73,81', 1));
data.runBatchObjectCheck && lcRule.push(handleId(1254, 325, data.runBatchObjectCheck, preIds + ',74,82,1254', 1));
data.runBatchObject && lcRule.push(handleId(82, 27, data.runBatchObject, preIds + ',74,82', 1));
data.accessStrategyCheck && lcRule.push(handleId(1255, 325, data.accessStrategyCheck, preIds + ',74,83,1255', 1));
data.accessStrategy && lcRule.push(handleId(83, 28, data.accessStrategy, preIds + ',74,83', 1));
//
lcRule.push(handleId(1044, 302, data.personalCreditScoringStrategiesCheck ? 759 : 760, preIds + ',74,84,1046,1044', 1));
lcRule.push(handleId(1044, 302, data.corporateCreditScoringStrategiesCheck ? 759 : 760, preIds + ',74,84,1047,1044', 1));
lcRule.push(handleId(1045, 303, data.personalCreditScoringStrategies, preIds + ',74,84,1046,1045', 3));
lcRule.push(handleId(1045, 303, data.corporateCreditScoringStrategies, preIds + ',74,84,1047,1045', 3));
data.personalCreditScoringStrategiesCheck && lcRule.push(handleId(1256, 325, data.personalCreditScoringStrategiesCheck, preIds + ',74,84,1046,1256', 1));
data.corporateCreditScoringStrategiesCheck && lcRule.push(handleId(1257, 325, data.corporateCreditScoringStrategiesCheck, preIds + ',74,84,1047,1257', 1));
data.riskDegreeStrategyCheck && lcRule.push(handleId(1258, 327, data.riskDegreeStrategyCheck, preIds + ',74,85,1258', 1));
data.riskDegreeStrategy && lcRule.push(handleId(85, 30, data.riskDegreeStrategy, preIds + ',74,85', 1));
data.interestRatePricingModelCheck && lcRule.push(handleId(303, 141, data.interestRatePricingModel, preIds + ',74,86,303', 1));
data.individualInterestRateModel && lcRule.push(handleId(302, 304, data.individualInterestRateModel, preIds + ',74,86,302', 1));
data.interestRatePricingModelCheck && lcRule.push(handleId(1260, 327, data.interestRatePricingModelCheck, preIds + ',74,86,303,1260', 1));
data.interestRatePricingModel && lcRule.push(handleId(303, 141, data.interestRatePricingModel, preIds + ',74,86,303', 1));
data.individualInterestRateModel && lcRule.push(handleId(1259, 327, data.individualInterestRateModel, preIds + ',74,86,302,1259', 1));
data.dueDiligenceMode && lcRule.push(handleId(88, 32, data.dueDiligenceMode, preIds + ',87,88', 1));
data.dueDiligenceContent && lcRule.push(handleId(89, 33, data.dueDiligenceContent, preIds + ',87,89', 1));
@ -612,12 +892,21 @@ const addRecord = async (data: Record<string, any>) => {
data.reviewSignature && lcRule.push(handleId(92, 35, data.reviewSignature, preIds + ',90,92', 1));
data.reviewApproveContent && lcRule.push(handleId(94, 36, data.reviewApproveContent, preIds + ',93,94', 1));
data.approvalSignature && lcRule.push(handleId(95, 37, data.approvalSignature, preIds + ',93,95', 1));
data.contractMaterialsCheck && lcRule.push(handleId(1261, 325, data.contractMaterialsCheck, preIds + ',96,97,1261', 1));
data.contractMaterials && lcRule.push(handleId(97, 38, data.contractMaterials, preIds + ',96,97', 1));
data.loanContractCheck && lcRule.push(handleId(1263, 325, data.loanContractCheck, preIds + ',96,98,310,1263', 1));
data.loanContract && lcRule.push(handleId(310, 39, data.loanContract, preIds + ',96,98,310', 1));
data.mortgageContractCheck && lcRule.push(handleId(1264, 325, data.mortgageContractCheck, preIds + ',96,98,311,1264', 1));
data.mortgageContract && lcRule.push(handleId(311, 145, data.mortgageContract, preIds + ',96,98,311', 1));
data.pledgeContractCheck && lcRule.push(handleId(1265, 325, data.pledgeContractCheck, preIds + ',96,98,312,1265', 1));
data.pledgeContract && lcRule.push(handleId(312, 146, data.pledgeContract, preIds + ',96,98,312', 1));
data.guaranteeContractCheck && lcRule.push(handleId(1266, 325, data.guaranteeContractCheck, preIds + ',96,98,313,1266', 1));
data.guaranteeContract && lcRule.push(handleId(313, 147, data.guaranteeContract, preIds + ',96,98,313', 1));
data.selectionStrategyCheck && lcRule.push(handleId(1267, 327, data.selectionStrategyCheck, preIds + ',99,1267', 1));
data.selectionStrategy && lcRule.push(handleId(99, 40, data.selectionStrategy, preIds + ',99', 1));
}

Loading…
Cancel
Save