yujialong 7 months ago
parent 795d254f8f
commit 2ad7e088ae
  1. 4
      src/views/product/afterLoan/1029/Detail.vue
  2. 4
      src/views/product/afterLoan/1030/Detail.vue
  3. 4
      src/views/product/afterLoan/1031/Detail.vue
  4. 4
      src/views/product/afterLoan/1032/Detail.vue
  5. 4
      src/views/product/afterLoan/1033/Detail.vue
  6. 126
      src/views/product/bank/Add.vue
  7. 7
      src/views/product/bank/Approve.vue
  8. 251
      src/views/product/bank/Config.vue
  9. 7
      src/views/product/interestRate/772/Detail.vue
  10. 6
      src/views/product/interestRate/935/Detail.vue
  11. 6
      src/views/product/interestRate/936/Detail.vue
  12. 9
      src/views/product/interestRate/CardList.vue
  13. 4
      src/views/product/strategy/150/Detail.vue
  14. 4
      src/views/product/strategy/151/Detail.vue
  15. 5
      src/views/product/strategy/152/Detail.vue
  16. 4
      src/views/product/strategy/153/Detail.vue
  17. 5
      src/views/product/strategy/154/Detail.vue
  18. 4
      src/views/product/strategy/155/Detail.vue
  19. 4
      src/views/product/strategy/156/Detail.vue
  20. 9
      src/views/product/strategy/CardList.vue

@ -135,7 +135,7 @@ const bankIds = ref<Record<string, any>[]>([]);
const getConfig = async () => {
const { process } = await getProcessInformationBasedOnRoles(1029);
const result = [];
process.map((e, i) => {
process.slice(1).map((e, i) => {
const cur = info.value.length ? info.value[i] : {};
result.push({
...getIds(),
@ -174,7 +174,7 @@ const fieldKeys = ['notOverdue', 'thirtyDays', 'ninetyDays', 'oneHundredAndEight
//
const addRecord = async (data: Record<string, any>) => {
const preIds = `1,${Cookies.get('sand-level')},42,69,1029`; // 1id
const rule = [];
const rule = [handleId(140, 28, strategyName.value, `${preIds},140`, 3)];
data.map((e) => {
e.recordChildren.forEach((n, i) => {

@ -119,7 +119,7 @@ const bankIds = ref<Record<string, any>[]>([]);
const getConfig = async () => {
const { process } = await getProcessInformationBasedOnRoles(1030);
const result = [];
process.map((e, i) => {
process.slice(1).map((e, i) => {
const cur = info.value.length ? info.value[i] : {};
let temp = {
...getIds(),
@ -180,7 +180,7 @@ const span = ({ row, column, rowIndex, columnIndex }: SpanMethodProps) => {
//
const addRecord = async (data: Record<string, any>) => {
const preIds = `1,${Cookies.get('sand-level')},42,69,1030`; // 1id
const rule = [];
const rule = [handleId(140, 28, strategyName.value, `${preIds},140`, 3)];
data.forEach((e, i) => {
e.isChoose && rule.push(handleId(1052, 140, e.isChoose, `${preIds},${e.stRecordId},1052`, 1));

@ -255,7 +255,7 @@ const getConfig = async () => {
recordName: '基准分',
},
];
process.map((e, i) => {
process.slice(1).map((e, i) => {
let temp = {
...getIds(),
recordName: e.name,
@ -369,7 +369,7 @@ const span = ({ row, column, rowIndex, columnIndex }: SpanMethodProps) => {
//
const addRecord = async (data: Record<string, any>) => {
const preIds = `1,${Cookies.get('sand-level')},42,69,1031`; // 1id
const rule = [];
const rule = [handleId(140, 28, strategyName.value, `${preIds},140`, 3)];
data.forEach((e, i) => {
e.isChoose && rule.push(handleId(1052, 140, e.isChoose, `${preIds},${e.stRecordId},1052`, 1));

@ -97,7 +97,7 @@ const bankIds = ref<Record<string, any>[]>([]);
const getConfig = async () => {
const { process } = await getProcessInformationBasedOnRoles(1032);
const result = [];
process.map((e, i) => {
process.slice(1).map((e, i) => {
const cur = info.value.length ? info.value[i] : {};
result.push({
...getIds(),
@ -132,7 +132,7 @@ onMounted(getDetail);
//
const addRecord = async (data: Record<string, any>) => {
const preIds = `1,${Cookies.get('sand-level')},42,69,1032`; // 1id
const rule = [];
const rule = [handleId(140, 28, strategyName.value, `${preIds},140`, 3)];
data.map((e) => {
e.isChoose && rule.push(handleId(1052, 140, e.isChoose, `${preIds},${e.stRecordId},1052`, 1));

@ -119,7 +119,7 @@ const bankIds = ref<Record<string, any>[]>([]);
const getConfig = async () => {
const { process } = await getProcessInformationBasedOnRoles(1033);
const result = [];
process[0].recordChildren.map((e, i) => {
process[1].recordChildren.map((e, i) => {
const cur = info.value.length ? info.value[i] : {};
result.push({
...getIds(),
@ -159,7 +159,7 @@ const showDia = (row: Record<string, any>) => {
//
const addRecord = async (data: Record<string, any>) => {
const preIds = `1,${Cookies.get('sand-level')},42,69,1033,1149`; // 1id
const rule = [];
const rule = [handleId(140, 28, strategyName.value, `${preIds},140`, 3)];
data.map((e) => {
e.recordChildren.forEach((n, i) => {

@ -1,7 +1,6 @@
<template>
<div>
<el-tabs v-model="curTab"
@tab-click="tabChange">
<el-tabs v-model="curTab">
<el-tab-pane :label="id ? '配置要素' : '新增产品'"
name="tab1">
<el-form ref="formRef"
@ -326,13 +325,14 @@
<script setup lang="ts">
import { ref, reactive, computed, watch, onMounted, defineEmits } from 'vue';
import { ElMessage } from 'element-plus';
import type { TabsPaneContext, FormInstance, FormRules } from 'element-plus';
import type { FormInstance, FormRules } from 'element-plus';
import { findById, save, update, elementDetail } from '@/api/bank';
import { getProcessInformationBasedOnRoles, addOperation } from '@/api/judgment';
import { useRouter, useRoute } from 'vue-router';
import { handleId, isIllegalNum, getIds, whethers, getUsername } from '@/utils/common';
import Info from './Info.vue';
import Cookies from 'js-cookie';
import { getStat } from '@/store/useProduct';
const emit = defineEmits(['getList']);
interface RuleForm {
@ -413,10 +413,6 @@ const rules = reactive<FormRules<RuleForm>>({
modeRepayment: [{ required: true, message: '请选择还款方式', trigger: 'change' }],
});
// tab
const tabChange = (tab: TabsPaneContext, event: Event) => {
console.log(tab, event);
};
//
const getConfig = async () => {
const { process } = await getProcessInformationBasedOnRoles(form.productType === 1 ? 45 : 44);
@ -463,6 +459,65 @@ watch(
immediate: true,
},
);
//
const addRecord = async (data: Record<string, any>) => {
getStat(299);
const isEnterprise = data.productType === 1;
const preIds = `1,${Cookies.get('sand-level')},41,${data.productType ? 45 : 44}`; // 1id/44/45
const lcRule: Array<Record<string, any>> = [
handleId(48, 1, data.productDefinition, preIds + ',48', 3),
handleId(49, 2, data.productName, preIds + ',49', 3),
handleId(50, 3, 1, preIds + ',50', 1),
];
//
if (isEnterprise) {
//
lcRule.push(
handleId(62, 7, data.productObject, preIds + ',61,62', 1),
handleId(63, 8, data.minimumAge + '~' + data.maximumAge + '', preIds + ',61,63', 5),
handleId(65, 19, data.loanPurpose, preIds + ',65', 1),
);
} else {
//
data.ageSelectedState && lcRule.push(handleId(1235, 324, data.ageSelectedState, preIds + ',51,1234,1235', 1));
data.ageSelectedState === 795 && lcRule.push(handleId(1236, 41, data.minimumAge + '~' + data.maximumAge, preIds + ',51,1234,1236', 5));
data.degreeSelectedStatus && lcRule.push(handleId(1238, 324, data.degreeSelectedStatus, preIds + ',51,1237,1238', 1));
data.degreeSelectedStatus === 795 && lcRule.push(handleId(1239, 42, data.educationalRequirements, preIds + ',51,1237,1239', 1));
data.workingLifeSelectedState && lcRule.push(handleId(1241, 324, data.workingLifeSelectedState, preIds + ',51,1240,1241', 1));
data.workingLifeSelectedState === 795 && lcRule.push(handleId(1242, 43, data.currentWorkingLife, preIds + ',51,1240,1242', 1));
data.providentFundAndSocialSecurity && lcRule.push(handleId(1244, 324, data.providentFundAndSocialSecurity, preIds + ',51,1243,1244', 1)); //
lcRule.push(handleId(1316, 328, data.loanPurpose, preIds + ',52,1316', 1));
data.loanPurpose === 822 && lcRule.push(handleId(1317, 11, data.otherPurposesOfLoan, preIds + ',52,1317', 3));
}
//
data.creditSelectedStatus && lcRule.push(handleId(108, 324, data.creditSelectedStatus, preIds + ',53,108', 1));
data.guaranteeLoanSelectedStatus && lcRule.push(handleId(109, 324, data.guaranteeLoanSelectedStatus, preIds + ',53,109', 1));
data.mortgageSelectedStatus && lcRule.push(handleId(1277, 324, data.mortgageSelectedStatus, preIds + ',53,110,1277', 1));
data.hypothecatedSelectedStatus && lcRule.push(handleId(1278, 324, data.hypothecatedSelectedStatus, preIds + ',53,111,1278', 1));
data.mortgageSelectedStatus === 795 && lcRule.push(handleId(1275, 13, data.bankGuaranteeTypeIds.filter((e: number) => e > 22 && e < 33).join(), preIds + ',53,110,1275', 1));
data.hypothecatedSelectedStatus === 795 && lcRule.push(handleId(1276, 14, data.bankGuaranteeTypeIds.filter((e: number) => e > 32 && e < 38).join(), preIds + ',53,111,1276', 1));
lcRule.push(
handleId(54, 15, data.minimumLoan + '~' + data.loanCeiling, preIds + ',54', 5),
handleId(55, 16, data.minimumAprOnLoan + '~' + data.maximumAnnualInterestRate, preIds + ',55', 5),
handleId(56, 17, data.minimumTermOfLoan + '~' + data.maximumTermOfLoan, preIds + ',56', 5),
handleId(57, 18, data.modeRepayment, preIds + ',57', 1),
);
lcRule.push(handleId(58, 140, data.whetherToSupportEarlyRepayment ? 345 : 346, preIds + ',58', 1));
await addOperation({
...getIds(),
parentId: preIds,
lcJudgmentRuleReq: lcRule,
});
};
//
const submit = async (formEl: FormInstance | undefined) => {
if (!formEl) return;
@ -557,63 +612,6 @@ const submit = async (formEl: FormInstance | undefined) => {
}
});
};
//
const addRecord = async (data: Record<string, any>) => {
const isEnterprise = data.productType === 1;
const preIds = `1,${Cookies.get('sand-level')},41,${data.productType ? 45 : 44}`; // 1id/44/45
const lcRule: Array<Record<string, any>> = [
handleId(48, 1, data.productDefinition, preIds + ',48', 3),
handleId(49, 2, data.productName, preIds + ',49', 3),
handleId(50, 3, 1, preIds + ',50', 1),
];
//
if (isEnterprise) {
//
lcRule.push(
handleId(62, 7, data.productObject, preIds + ',61,62', 1),
handleId(63, 8, data.minimumAge + '~' + data.maximumAge + '', preIds + ',61,63', 5),
handleId(65, 19, data.loanPurpose, preIds + ',65', 1),
);
} else {
//
data.ageSelectedState && lcRule.push(handleId(1235, 324, data.ageSelectedState, preIds + ',51,1234,1235', 1));
data.ageSelectedState === 795 && lcRule.push(handleId(1236, 41, data.minimumAge + '~' + data.maximumAge, preIds + ',51,1234,1236', 5));
data.degreeSelectedStatus && lcRule.push(handleId(1238, 324, data.degreeSelectedStatus, preIds + ',51,1237,1238', 1));
data.degreeSelectedStatus === 795 && lcRule.push(handleId(1239, 42, data.educationalRequirements, preIds + ',51,1237,1239', 1));
data.workingLifeSelectedState && lcRule.push(handleId(1241, 324, data.workingLifeSelectedState, preIds + ',51,1240,1241', 1));
data.workingLifeSelectedState === 795 && lcRule.push(handleId(1242, 43, data.currentWorkingLife, preIds + ',51,1240,1242', 1));
data.providentFundAndSocialSecurity && lcRule.push(handleId(1244, 324, data.providentFundAndSocialSecurity, preIds + ',51,1243,1244', 1)); //
lcRule.push(handleId(1316, 328, data.loanPurpose, preIds + ',52,1316', 1));
data.loanPurpose === 822 && lcRule.push(handleId(1317, 11, data.otherPurposesOfLoan, preIds + ',52,1317', 3));
}
//
data.creditSelectedStatus && lcRule.push(handleId(108, 324, data.creditSelectedStatus, preIds + ',53,108', 1));
data.guaranteeLoanSelectedStatus && lcRule.push(handleId(109, 324, data.guaranteeLoanSelectedStatus, preIds + ',53,109', 1));
data.mortgageSelectedStatus && lcRule.push(handleId(1277, 324, data.mortgageSelectedStatus, preIds + ',53,110,1277', 1));
data.hypothecatedSelectedStatus && lcRule.push(handleId(1278, 324, data.hypothecatedSelectedStatus, preIds + ',53,111,1278', 1));
data.mortgageSelectedStatus === 795 && lcRule.push(handleId(1275, 13, data.bankGuaranteeTypeIds.filter((e: number) => e > 22 && e < 33).join(), preIds + ',53,110,1275', 1));
data.hypothecatedSelectedStatus === 795 && lcRule.push(handleId(1276, 14, data.bankGuaranteeTypeIds.filter((e: number) => e > 32 && e < 38).join(), preIds + ',53,111,1276', 1));
lcRule.push(
handleId(54, 15, data.minimumLoan + '~' + data.loanCeiling, preIds + ',54', 5),
handleId(55, 16, data.minimumAprOnLoan + '~' + data.maximumAnnualInterestRate, preIds + ',55', 5),
handleId(56, 17, data.minimumTermOfLoan + '~' + data.maximumTermOfLoan, preIds + ',56', 5),
handleId(57, 18, data.modeRepayment, preIds + ',57', 1),
);
lcRule.push(handleId(58, 140, data.whetherToSupportEarlyRepayment ? 345 : 346, preIds + ',58', 1));
await addOperation({
...getIds(),
parentId: preIds,
lcJudgmentRuleReq: lcRule,
});
};
onMounted(() => {
getConfig();
});

@ -58,7 +58,7 @@
<script setup lang="ts">
import { ref, computed, reactive, onMounted, watch } from 'vue';
import { ElMessage } from 'element-plus';
import type { TabsPaneContext, FormInstance, FormRules } from 'element-plus';
import type { FormInstance, FormRules } from 'element-plus';
import { useRouter, useRoute } from 'vue-router';
import Info from './Info.vue';
import { handleId, getIds, getNow, getUsername } from '@/utils/common';
@ -67,7 +67,7 @@ import { getOperationTime } from '@/api/config';
import { addOperation } from '@/api/judgment';
import dayjs from 'dayjs';
import Cookies from 'js-cookie';
import { productState } from '@/store/useProduct';
import { productState, getStat } from '@/store/useProduct';
const emit = defineEmits(['getList']);
interface RuleForm {
@ -98,7 +98,7 @@ const signed = ref<string>();
//
const updateAudits = (count: number) => {
if (count >= 10) {
if (count >= 9) {
autids.value.pop();
}
};
@ -140,6 +140,7 @@ const submit = async (formEl: FormInstance | undefined) => {
await examineAndApprove(param.id, param.opinionDescription, param.status, param.approvalTime);
router.push(`/product/bank/detail?type=${route.query.type || ''}&i=${route.query.i}&role=${route.query.role}&id=${id.value}`);
getStat(296);
addRecord(param);
ElMessage.success('提交成功!');
emit('getList');

@ -1,7 +1,6 @@
<template>
<div>
<el-tabs v-model="curTab"
@tab-click="tabChange">
<el-tabs v-model="curTab">
<el-tab-pane label="配置风控"
name="tab1">
<el-form ref="formRef"
@ -633,7 +632,7 @@
<script setup lang="ts">
import { ref, reactive, computed, watch, defineAsyncComponent, markRaw } from 'vue';
import { ElMessage } from 'element-plus';
import type { TabsPaneContext, FormInstance } from 'element-plus';
import type { FormInstance } from 'element-plus';
import { findById, riskSave, riskUpdate, riskControlDetailsAreDisplayed } from '@/api/bank';
import { getProcessInformationBasedOnRoles, addOperation } from '@/api/judgment';
import {
@ -657,6 +656,7 @@ import { useRouter, useRoute } from 'vue-router';
import { handleId, getIds, getUsername } from '@/utils/common';
import Info from './Info.vue';
import Cookies from 'js-cookie';
import { getStat } from '@/store/useProduct';
const emit = defineEmits(['getList']);
interface RuleForm {
@ -824,10 +824,6 @@ const loadComponent = async (componentName: string) => {
}
};
// tab
const tabChange = (tab: TabsPaneContext, event: Event) => {
console.log(tab, event);
};
//
const getAccess = async (i: number) => {
const list = config.value[2].recordChildren[1].recordChildren;
@ -1031,128 +1027,10 @@ watch(
immediate: true,
},
);
//
const submit = async (formEl: FormInstance | undefined) => {
if (!formEl) return;
await formEl.validate(async (valid, fields) => {
if (valid) {
try {
const isEnterprise = info.value.productType === 1;
const param = JSON.parse(JSON.stringify(form));
if (param.provideMaterialSelectedStatus === 797 && !param.accountMaterials.length) return ElMessage.error('请选择需要提供的申请人材料');
if (param.issueAccountSelectStatus === 801 && !param.sendingAccount.length) return ElMessage.error('请选择需要发放的账户');
if (!param.loanApplicationMethod.length) return ElMessage.error('请选择申请方式');
if (param.borrowerMaterialSelectedStatus === 797 && !param.borrowerMaterial.length) return ElMessage.error('请选择借款人材料');
if (isEnterprise) {
//
if (param.enterpriseMaterialSelectedStatus === 797 && !param.enterpriseMaterial.length) return ElMessage.error('请选择需要提供的企业材料');
if (param.mortgagedPropertySelectedStatus === 797 && !param.collateral.length) return ElMessage.error('请选择需要提供的抵押物材料');
} else {
//
if (param.mateMaterialSelectedStatus === 797 && !param.mateMaterial.length) return ElMessage.error('请选择需要提供的配偶材料');
if (param.businessMaterialsSelectedStatus === 797 && !param.businessMaterials.length) return ElMessage.error('请选择需要提供的经营类材料');
}
if (param.supplementMaterialSelectedStatus === 797 && !param.supplementaryMaterials.length) return ElMessage.error('请选择需要提供的补充材料');
if (param.runBatchObjectSelectedStatus === 803 && !param.runBatchObject.length) return ElMessage.error('请选择需要跑批的对象');
const list1 = param.bankRiskControlAllocationTacticsList;
if (list1[0].tacticsSelectedStatus === 803 && !list1[0].tacticsId) return ElMessage.error('请选择政务黑名单策略');
if (list1[1].tacticsSelectedStatus === 803 && !list1[1].tacticsId) return ElMessage.error('请选择征信黑名单策略');
if (list1[2].tacticsSelectedStatus === 803 && !list1[2].tacticsId) return ElMessage.error('请选择商采黑名单策略');
if (list1[3].tacticsSelectedStatus === 803 && !list1[3].tacticsId) return ElMessage.error('请选择行内黑名单策略');
if (list1[4].tacticsSelectedStatus === 803 && !list1[4].tacticsId) return ElMessage.error('请选择企业黑名单策略');
if (list1[5].tacticsSelectedStatus === 803 && !list1[5].tacticsId) return ElMessage.error('请选择反欺诈策略');
if (list1[6].tacticsSelectedStatus === 803 && !list1[6].tacticsId) return ElMessage.error('请选择负面行业黑名单策略');
const list2 = param.creditScoringStrategyList;
if (list2[0].tacticsSelectedStatus === 803 && !list2[0].tacticsId) return ElMessage.error('请选择个人信用评分策略');
if (list2[1].tacticsSelectedStatus === 803 && !list2[1].tacticsId) return ElMessage.error('请选择企业信用评分策略');
const list3 = param.interestRatePricingModelList;
if (list3[0].tacticsSelectedStatus === 803 && !list3[0].tacticsId) return ElMessage.error('请选择个人利率模型');
if (list3[1].tacticsSelectedStatus === 803 && !list3[1].tacticsId) return ElMessage.error('请选择个人额度模型');
if (param.enterpriseQuotaModelSelectedStatus === 803 && !param.enterpriseQuotaModel.length) return ElMessage.error('请选择企业额度模型');
if (list3[2].tacticsSelectedStatus === 803 && !list3[2].tacticsId) return ElMessage.error('请选择企业利率模型');
if (!param.dueDiligenceMode.length) return ElMessage.error('请选择尽调方式');
if (!param.dueDiligenceContent.length) return ElMessage.error('请选择尽调内容');
if (!param.reviewContent.length) return ElMessage.error('请选择审查材料');
if (!param.reviewSignature) return ElMessage.error('请选择签字表单');
if (!param.reviewApproveContent.length) return ElMessage.error('请选择审批材料');
if (!param.approvalSignature) return ElMessage.error('请选择签字表单');
const list4 = param.postLoanSelectionStrategyList;
if (list4[0].tacticsSelectedStatus === 803 && !list4[0].tacticsId) return ElMessage.error('请选择五级分类策略');
if (list4[1].tacticsSelectedStatus === 803 && !list4[1].tacticsId) return ElMessage.error('请选择贷后检查策略');
if (list4[2].tacticsSelectedStatus === 803 && !list4[2].tacticsId) return ElMessage.error('请选择贷后评分卡');
if (list4[3].tacticsSelectedStatus === 803 && !list4[3].tacticsId) return ElMessage.error('请选择贷后预警策略');
if (list4[4].tacticsSelectedStatus === 803 && !list4[4].tacticsId) return ElMessage.error('请选择贷后催收策略');
param.borrowerMaterial = param.borrowerMaterialSelectedStatus === 797 ? param.borrowerMaterial.join() : '';
param.accountMaterials = param.provideMaterialSelectedStatus === 797 ? param.accountMaterials.join() : '';
param.sendingAccount = param.issueAccountSelectStatus === 801 ? param.sendingAccount.join() : '';
//
param.collateral = param.mortgagedPropertySelectedStatus === 797 ? param.collateral.join() : '';
param.enterpriseMaterial = param.enterpriseMaterialSelectedStatus === 797 ? param.enterpriseMaterial.join() : '';
param.corporateInterestRateModel = param.corporateInterestRateModel.join();
param.materialsForLoanApproval = param.materialsForLoanApproval.join();
//
param.businessMaterials = param.businessMaterialsSelectedStatus === 797 ? param.businessMaterials.join() : '';
param.mateMaterial = param.mateMaterialSelectedStatus === 797 ? param.mateMaterial.join() : '';
if (param.loanContractSelectedStatus !== 797) param.loanContract = '';
if (param.mortgageContractSelectedStatus !== 797) param.mortgageContract = '';
if (param.pledgeContractSelectedStatus !== 797) param.pledgeContract = '';
if (param.guaranteeContractSelectedStatus !== 797) param.guaranteeContract = '';
param.dueDiligenceMode = param.dueDiligenceMode.join();
param.dueDiligenceContent = param.dueDiligenceContent.join();
param.reviewContent = param.reviewContent.join();
param.reviewApproveContent = param.reviewApproveContent.join();
param.loanApplicationMethod = param.loanApplicationMethod.join();
param.runBatchObject = param.runBatchObjectSelectedStatus === 803 ? param.runBatchObject.join() : '';
//
list1.map((e) => {
if (e.tacticsSelectedStatus !== 803 && e.tacticsId) e.tacticsId = '';
});
list2.map((e) => {
if (e.tacticsSelectedStatus !== 803 && e.tacticsId) e.tacticsId = '';
});
list3.map((e) => {
if (e.tacticsSelectedStatus !== 803 && e.tacticsId) e.tacticsId = '';
});
list4.map((e) => {
if (e.tacticsSelectedStatus !== 803 && e.tacticsId) e.tacticsId = '';
});
param.enterpriseQuotaModel = param.enterpriseQuotaModelSelectedStatus === 803 ? param.enterpriseQuotaModel.join() : '';
param.supplementaryMaterials = param.supplementMaterialSelectedStatus === 797 ? param.supplementaryMaterials.join() : '';
if (param.contractSupplyMaterialsSelectedStatus !== 797) param.contractMaterials = '';
if (info.value.riskControlDetails) {
param.id = info.value.riskControlDetails.id;
await riskUpdate(param);
addRecord(param);
} else {
await riskSave(param);
addRecord(param);
}
router.push(`/product/bank/detail?type=${route.query.type || ''}&i=${route.query.i}&role=${route.query.role}&id=${id.value}`);
ElMessage.success('提交成功!');
emit('getList');
} finally {
}
} else {
console.log('error submit!', fields);
}
});
};
//
const addRecord = async (data: Record<string, any>) => {
getStat(295);
const isEnterprise = info.value.productType === 1;
const preIds = `1,${Cookies.get('sand-level')},42,66,${isEnterprise ? 71 : 70}`; // 1id/70/71
const lcRule: Array<Record<string, any>> = [];
@ -1425,6 +1303,127 @@ const addRecord = async (data: Record<string, any>) => {
lcJudgmentRuleReq: lcRule,
});
};
//
const submit = async (formEl: FormInstance | undefined) => {
if (!formEl) return;
await formEl.validate(async (valid, fields) => {
if (valid) {
try {
const isEnterprise = info.value.productType === 1;
const param = JSON.parse(JSON.stringify(form));
if (param.provideMaterialSelectedStatus === 797 && !param.accountMaterials.length) return ElMessage.error('请选择需要提供的申请人材料');
if (param.issueAccountSelectStatus === 801 && !param.sendingAccount.length) return ElMessage.error('请选择需要发放的账户');
if (!param.loanApplicationMethod.length) return ElMessage.error('请选择申请方式');
if (param.borrowerMaterialSelectedStatus === 797 && !param.borrowerMaterial.length) return ElMessage.error('请选择借款人材料');
if (isEnterprise) {
//
if (param.enterpriseMaterialSelectedStatus === 797 && !param.enterpriseMaterial.length) return ElMessage.error('请选择需要提供的企业材料');
if (param.mortgagedPropertySelectedStatus === 797 && !param.collateral.length) return ElMessage.error('请选择需要提供的抵押物材料');
} else {
//
if (param.mateMaterialSelectedStatus === 797 && !param.mateMaterial.length) return ElMessage.error('请选择需要提供的配偶材料');
if (param.businessMaterialsSelectedStatus === 797 && !param.businessMaterials.length) return ElMessage.error('请选择需要提供的经营类材料');
}
if (param.supplementMaterialSelectedStatus === 797 && !param.supplementaryMaterials.length) return ElMessage.error('请选择需要提供的补充材料');
if (param.runBatchObjectSelectedStatus === 803 && !param.runBatchObject.length) return ElMessage.error('请选择需要跑批的对象');
const list1 = param.bankRiskControlAllocationTacticsList;
if (list1[0].tacticsSelectedStatus === 803 && !list1[0].tacticsId) return ElMessage.error('请选择政务黑名单策略');
if (list1[1].tacticsSelectedStatus === 803 && !list1[1].tacticsId) return ElMessage.error('请选择征信黑名单策略');
if (list1[2].tacticsSelectedStatus === 803 && !list1[2].tacticsId) return ElMessage.error('请选择商采黑名单策略');
if (list1[3].tacticsSelectedStatus === 803 && !list1[3].tacticsId) return ElMessage.error('请选择行内黑名单策略');
if (list1[4].tacticsSelectedStatus === 803 && !list1[4].tacticsId) return ElMessage.error('请选择企业黑名单策略');
if (list1[5].tacticsSelectedStatus === 803 && !list1[5].tacticsId) return ElMessage.error('请选择反欺诈策略');
if (list1[6].tacticsSelectedStatus === 803 && !list1[6].tacticsId) return ElMessage.error('请选择负面行业黑名单策略');
const list2 = param.creditScoringStrategyList;
if (list2[0].tacticsSelectedStatus === 803 && !list2[0].tacticsId) return ElMessage.error('请选择个人信用评分策略');
if (list2[1].tacticsSelectedStatus === 803 && !list2[1].tacticsId) return ElMessage.error('请选择企业信用评分策略');
const list3 = param.interestRatePricingModelList;
if (list3[0].tacticsSelectedStatus === 803 && !list3[0].tacticsId) return ElMessage.error('请选择个人利率模型');
if (list3[1].tacticsSelectedStatus === 803 && !list3[1].tacticsId) return ElMessage.error('请选择个人额度模型');
if (param.enterpriseQuotaModelSelectedStatus === 803 && !param.enterpriseQuotaModel.length) return ElMessage.error('请选择企业额度模型');
if (list3[2].tacticsSelectedStatus === 803 && !list3[2].tacticsId) return ElMessage.error('请选择企业利率模型');
if (!param.dueDiligenceMode.length) return ElMessage.error('请选择尽调方式');
if (!param.dueDiligenceContent.length) return ElMessage.error('请选择尽调内容');
if (!param.reviewContent.length) return ElMessage.error('请选择审查材料');
if (!param.reviewSignature) return ElMessage.error('请选择签字表单');
if (!param.reviewApproveContent.length) return ElMessage.error('请选择审批材料');
if (!param.approvalSignature) return ElMessage.error('请选择签字表单');
const list4 = param.postLoanSelectionStrategyList;
if (list4[0].tacticsSelectedStatus === 803 && !list4[0].tacticsId) return ElMessage.error('请选择五级分类策略');
if (list4[1].tacticsSelectedStatus === 803 && !list4[1].tacticsId) return ElMessage.error('请选择贷后检查策略');
if (list4[2].tacticsSelectedStatus === 803 && !list4[2].tacticsId) return ElMessage.error('请选择贷后评分卡');
if (list4[3].tacticsSelectedStatus === 803 && !list4[3].tacticsId) return ElMessage.error('请选择贷后预警策略');
if (list4[4].tacticsSelectedStatus === 803 && !list4[4].tacticsId) return ElMessage.error('请选择贷后催收策略');
param.borrowerMaterial = param.borrowerMaterialSelectedStatus === 797 ? param.borrowerMaterial.join() : '';
param.accountMaterials = param.provideMaterialSelectedStatus === 797 ? param.accountMaterials.join() : '';
param.sendingAccount = param.issueAccountSelectStatus === 801 ? param.sendingAccount.join() : '';
//
param.collateral = param.mortgagedPropertySelectedStatus === 797 ? param.collateral.join() : '';
param.enterpriseMaterial = param.enterpriseMaterialSelectedStatus === 797 ? param.enterpriseMaterial.join() : '';
param.corporateInterestRateModel = param.corporateInterestRateModel.join();
param.materialsForLoanApproval = param.materialsForLoanApproval.join();
//
param.businessMaterials = param.businessMaterialsSelectedStatus === 797 ? param.businessMaterials.join() : '';
param.mateMaterial = param.mateMaterialSelectedStatus === 797 ? param.mateMaterial.join() : '';
if (param.loanContractSelectedStatus !== 797) param.loanContract = '';
if (param.mortgageContractSelectedStatus !== 797) param.mortgageContract = '';
if (param.pledgeContractSelectedStatus !== 797) param.pledgeContract = '';
if (param.guaranteeContractSelectedStatus !== 797) param.guaranteeContract = '';
param.dueDiligenceMode = param.dueDiligenceMode.join();
param.dueDiligenceContent = param.dueDiligenceContent.join();
param.reviewContent = param.reviewContent.join();
param.reviewApproveContent = param.reviewApproveContent.join();
param.loanApplicationMethod = param.loanApplicationMethod.join();
param.runBatchObject = param.runBatchObjectSelectedStatus === 803 ? param.runBatchObject.join() : '';
//
list1.map((e) => {
if (e.tacticsSelectedStatus !== 803 && e.tacticsId) e.tacticsId = '';
});
list2.map((e) => {
if (e.tacticsSelectedStatus !== 803 && e.tacticsId) e.tacticsId = '';
});
list3.map((e) => {
if (e.tacticsSelectedStatus !== 803 && e.tacticsId) e.tacticsId = '';
});
list4.map((e) => {
if (e.tacticsSelectedStatus !== 803 && e.tacticsId) e.tacticsId = '';
});
param.enterpriseQuotaModel = param.enterpriseQuotaModelSelectedStatus === 803 ? param.enterpriseQuotaModel.join() : '';
param.supplementaryMaterials = param.supplementMaterialSelectedStatus === 797 ? param.supplementaryMaterials.join() : '';
if (param.contractSupplyMaterialsSelectedStatus !== 797) param.contractMaterials = '';
if (info.value.riskControlDetails) {
param.id = info.value.riskControlDetails.id;
await riskUpdate(param);
addRecord(param);
} else {
await riskSave(param);
addRecord(param);
}
router.push(`/product/bank/detail?type=${route.query.type || ''}&i=${route.query.i}&role=${route.query.role}&id=${id.value}`);
ElMessage.success('提交成功!');
emit('getList');
} finally {
}
} else {
console.log('error submit!', fields);
}
});
};
//
const preview = async (row: Record<string, any>, i: number) => {
const { tacticsId } = form.bankRiskControlAllocationTacticsList[i];

@ -136,8 +136,8 @@ const bankIds = ref<Record<string, any>[]>([]);
//
const getConfig = async () => {
const { process } = await getProcessInformationBasedOnRoles(772);
formProcess.value = process.slice(0, 3);
const list = process[3]?.recordChildren;
formProcess.value = process.slice(1, 4);
const list = process[4]?.recordChildren;
let cur = info.value.length ? info.value[0] : {};
const result = [
{
@ -276,7 +276,8 @@ const getItemId = (name: string): number | string => {
//
const addRecord = async (data: Record<string, any>) => {
let preIds = `1,${Cookies.get('sand-level')},42,68,756,772`; // 1id
const rule: Array<Record<string, any>> = [];
const rule = [handleId(140, 28, modelName.value, `${preIds},140`, 3)];
data.firstMode && rule.push(handleId(777, 236, getItemId(data.firstMode), preIds + ',774,777', 1));
data.secondMode && rule.push(handleId(777, 236, getItemId(data.secondMode), preIds + ',775,777', 1));
data.thirdMode && rule.push(handleId(777, 236, getItemId(data.thirdMode), preIds + ',776,777', 1));

@ -136,8 +136,8 @@ const bankIds = ref<Record<string, any>[]>([]);
//
const getConfig = async () => {
const { process } = await getProcessInformationBasedOnRoles(935);
formProcess.value = process.slice(1);
const list = process[0]?.recordChildren;
formProcess.value = process.slice(2);
const list = process[1]?.recordChildren;
const result = [];
list?.forEach((e, i) => {
let temp = {
@ -232,7 +232,7 @@ const getItemId = (name: string): number | string => {
//
const addRecord = async (data: Record<string, any>) => {
const preIds = `1,${Cookies.get('sand-level')},42,68,757,935`; // 1id
const rule: Array<Record<string, any>> = [];
const rule = [handleId(140, 28, modelName.value, `${preIds},140`, 3)];
const listIds = preIds + ',937';
form.value.individualInterestRateModels.forEach((e, i) => {

@ -144,8 +144,8 @@ const bankIds = ref<Record<string, any>[]>([]);
//
const getConfig = async () => {
const { process } = await getProcessInformationBasedOnRoles(936);
formProcess.value = process.slice(1);
const list = process[0]?.recordChildren;
formProcess.value = process.slice(2);
const list = process[1]?.recordChildren;
const result = [];
list?.forEach((e, i) => {
if (e.recordChildren) {
@ -280,7 +280,7 @@ const getItemId = (name: string): number | string => {
//
const addRecord = async (data: Record<string, any>) => {
const preIds = `1,${Cookies.get('sand-level')},42,68,757,936`; // 1id
const rule: Array<Record<string, any>> = [];
const rule = [handleId(140, 28, modelName.value, `${preIds},140`, 3)];
const listIds = preIds + ',938';
form.value.corporateInterestRateModelIndicators.forEach((e, i) => {

@ -75,12 +75,7 @@ onMounted(getList);
</script>
<style lang="scss" scoped>
.card-list {
.products {
@apply max-h-[calc(100vh-180px)];
}
.right {
@apply max-h-[calc(100vh-150px)];
}
.left {
@apply w-[200px];
}
</style>

@ -202,7 +202,7 @@ const bankIds = ref<Record<string, any>[]>([]);
const getConfig = async () => {
const { process } = await getProcessInformationBasedOnRoles(150);
const result = [];
process.map((e) => {
process.slice(1).map((e) => {
const cur = info.value.find((n) => n.stRecordId === e.id);
let num = cur?.ruleOne.match(/\d+/g);
let symbol = cur?.ruleOne.match(/[<>=]+/g);
@ -288,7 +288,7 @@ const span = ({ row, column, rowIndex, columnIndex }: SpanMethodProps) => {
//
const addRecord = async (data: Record<string, any>) => {
const preIds = `1,${Cookies.get('sand-level')},42,67,147,150`; // 1id
const rule = [];
const rule = [handleId(140, 28, strategyName.value, `${preIds},140`, 3)];
data.map((e, i) => {
if (isRule(e.stRecordId)) {
const len = e?.recordChildren?.length - 1;

@ -192,7 +192,7 @@ const syncVisible = ref<boolean>(false);
const getConfig = async () => {
const { process } = await getProcessInformationBasedOnRoles(151);
const result = [];
process.map((e) => {
process.slice(1).map((e) => {
const cur = info.value.find((n) => n.stRecordId === e.id);
let num = cur?.ruleOne?.match(/\d+/g);
let num1 = cur?.ruleTwo?.match(/\d+/g);
@ -241,7 +241,7 @@ const isRule = (rule: number): boolean => {
//
const addRecord = async (data: Record<string, any>) => {
const preIds = `1,${Cookies.get('sand-level')},42,67,147,151`; // 1id
const rule = [];
const rule = [handleId(140, 28, strategyName.value, `${preIds},140`, 3)];
data[1].ruleOne && rule.push(handleId(234, 81, data[1].ruleOne, preIds + ',204,234', 3));
data[27].ruleOne && rule.push(handleId(267, 114, data[27].ruleOne === '有' ? 306 : 305, preIds + ',230,267', 1));

@ -260,7 +260,7 @@ const syncVisible = ref<boolean>(false);
const getConfig = async () => {
const { process } = await getProcessInformationBasedOnRoles(152);
const result = [];
process.map((e, i) => {
process.slice(1).map((e, i) => {
const cur = info.value.find((n) => n.stRecordId === e.id);
let num = getNum(cur?.ruleOne);
let symbol = getSymbol(cur?.ruleOne);
@ -409,7 +409,8 @@ const span = ({ row, column, rowIndex, columnIndex }: SpanMethodProps) => {
//
const addRecord = async (data: Record<string, any>) => {
const preIds = `1,${Cookies.get('sand-level')},42,67,147,152`; // 1id
const rule = [];
const rule = [handleId(140, 28, strategyName.value, `${preIds},140`, 3)];
data[0].ruleOne && rule.push(handleId(324, 150, data[0].ruleOne, preIds + ',318,324', 5));
data[0].ruleTwo && rule.push(handleId(325, 151, data[0].ruleTwo, preIds + ',318,325', 5));
data[0].ruleThree && rule.push(handleId(326, 152, data[0].ruleThree, preIds + ',318,326', 5));

@ -194,7 +194,7 @@ const syncVisible = ref<boolean>(false);
const getConfig = async () => {
const { process } = await getProcessInformationBasedOnRoles(153);
const result = [];
process.map((e) => {
process.slice(1).map((e) => {
const cur = info.value.find((n) => n.stRecordId === e.id);
let temp = {
...getIds(),
@ -261,7 +261,7 @@ const span = ({ row, column, rowIndex, columnIndex }: SpanMethodProps) => {
//
const addRecord = async (data: Record<string, any>) => {
const preIds = `1,${Cookies.get('sand-level')},42,67,147,153`; // 1id
const rule: Array<Record<string, any>> = [];
const rule = [handleId(140, 28, strategyName.value, `${preIds},140`, 3)];
data.map((e) => {
e.enterBlacklist && rule.push(handleId(363, 140, e.enterBlacklist, preIds + ',' + e.stRecordId + ',363', 1));

@ -329,7 +329,7 @@ const syncVisible = ref<boolean>(false);
const getConfig = async () => {
const { process } = await getProcessInformationBasedOnRoles(154);
const result = [];
process.map((e, i) => {
process.slice(1).map((e, i) => {
const cur = info.value.find((n) => n.stRecordId === e.id);
let num = getNum(cur?.rule);
let symbol = getSymbol(cur?.rule);
@ -370,7 +370,8 @@ onMounted(getDetail);
//
const addRecord = async (data: Record<string, any>) => {
const preIds = `1,${Cookies.get('sand-level')},42,67,147,154`; // 1id
const rule: Array<Record<string, any>> = [];
const rule = [handleId(140, 28, strategyName.value, `${preIds},140`, 3)];
data[0].rule && rule.push(handleId(369, 168, data[0].rule, preIds + ',369', 5));
data[13].rule && rule.push(handleId(382, 179, data[13].rule, preIds + ',382', 5));
data[7].rule && rule.push(handleId(376, 174, data[7].rule, preIds + ',376', 5));

@ -178,7 +178,7 @@ const syncVisible = ref<boolean>(false);
const getConfig = async () => {
const { process } = await getProcessInformationBasedOnRoles(155);
const result = [];
process.forEach((e, i) => {
process.slice(1).forEach((e, i) => {
const cur = info.value.find((n) => n.stRecordId === e.id);
let num = getNum(cur?.ruleOne);
let symbol = getSymbol(cur?.ruleOne);
@ -334,7 +334,7 @@ const getName = (str: string): string | number => {
//
const addRecord = async (data: Record<string, any>) => {
const preIds = `1,${Cookies.get('sand-level')},42,67,147,155`; // 1id
const rule: Array<Record<string, any>> = [];
const rule = [handleId(140, 28, strategyName.value, `${preIds},140`, 3)];
data[0].ruleOne && rule.push(handleId(387, 181, data[0].ruleOne, preIds + ',384,387', 5));
data[0].ruleTwo && rule.push(handleId(388, 140, data[0].ruleTwo === '是' ? 345 : 346, preIds + ',384,388', 1));

@ -120,7 +120,7 @@ const getConfig = async () => {
const { process } = await getProcessInformationBasedOnRoles(156);
const result = [];
let index = 0;
process.map((e) => {
process.slice(1).map((e) => {
let temp = {
...getIds(),
name: e.name,
@ -190,7 +190,7 @@ const span = ({ row, column, rowIndex, columnIndex }: SpanMethodProps) => {
//
const addRecord = async () => {
const preIds = `1,${Cookies.get('sand-level')},42,67,147,156`; // 1id
const rule: Array<Record<string, any>> = [];
const rule = [handleId(140, 28, strategyName.value, `${preIds},140`, 3)];
form.value.map((e) => {
if (e.index) {

@ -86,12 +86,7 @@ onMounted(getList);
</script>
<style lang="scss" scoped>
.card-list {
.products {
@apply max-h-[calc(100vh-180px)];
}
.right {
@apply max-h-[calc(100vh-150px)];
}
.left {
@apply w-[200px];
}
</style>

Loading…
Cancel
Save