yujialong 9 months ago
parent e2c1376608
commit 5390916ca9
  1. 3
      .env
  2. 6
      src/api/judgment.ts
  3. 71
      src/components/Panel/index.vue
  4. 4
      src/utils/common.ts
  5. 30
      src/views/product/bank/Add.vue
  6. 2
      src/views/product/bank/CardList.vue
  7. 226
      src/views/product/bank/Config.vue
  8. 10
      src/views/product/interestRate/935.vue
  9. 6
      src/views/product/strategy/151.vue
  10. 2
      src/views/product/strategy/CardList.vue
  11. 5
      src/views/product/strategy/Credit.vue
  12. 1
      vite.config.ts

@ -2,7 +2,8 @@ VITE_APP_TITLE=金融产品设计及数字化营销沙盘
VITE_PORT=9520 VITE_PORT=9520
VITE_PROXY=http://192.168.31.125:8080 VITE_PROXY=http://192.168.31.125:8080
VITE_PUBLIC_PATH=./ VITE_PUBLIC_PATH=./
VITE_BASE_API=http://192.168.31.51:9000 # VITE_BASE_API=http://192.168.31.217:9000
# VITE_BASE_API=http://121.37.12.51 # VITE_BASE_API=http://121.37.12.51
VITE_BASE_API=https://www.occupationlab.com
VITE_I18N_LOCALE=zh-cn VITE_I18N_LOCALE=zh-cn
VITE_I18N_FALLBACK_LOCALE=zh-cn VITE_I18N_FALLBACK_LOCALE=zh-cn

@ -15,5 +15,9 @@ export const deleteCache = async (data: Record<string, any>): Promise<any> =>
).data; ).data;
export const getOperation = async (params?: Record<string, any>): Promise<any> => (await axios.get('/product/product/bank/operation/getOperation', { params })).data; export const getOperation = async (params?: Record<string, any>): Promise<any> => (await axios.get('/product/product/bank/operation/getOperation', { params })).data;
export const getSandTableLastCache = async (data: Record<string, any>): Promise<any> => export const getSandTableLastCache = async (data: Record<string, any>): Promise<any> =>
(await axios.post(`/product/product/bank/operation/getSandTableLastCache?cid=${data.cid}&projectId=${data.projectId}`)).data; (
await axios.post(
`/product/product/bank/operation/getSandTableLastCache?cid=${data.cid}&projectId=${data.projectId}&assessmentId=${data.assessmentId}&competitionId=${data.competitionId}`,
)
).data;
export const deleteOperationData = async (data: Record<string, any>): Promise<any> => (await axios.post('/product/product/bank/operation/deleteOperationData', data)).data; export const deleteOperationData = async (data: Record<string, any>): Promise<any> => (await axios.post('/product/product/bank/operation/deleteOperationData', data)).data;

@ -47,7 +47,7 @@
@click="toReport" @click="toReport"
v-if="isSubmit">查看实验报告</el-button> v-if="isSubmit">查看实验报告</el-button>
<el-button class="reload h-[40px]" <el-button class="reload h-[40px]"
@click="reload" @click="reload(1)"
v-show="per == 0">重新开始</el-button> v-show="per == 0">重新开始</el-button>
<el-button type="primary" <el-button type="primary"
class="submit btn h-[40px]" class="submit btn h-[40px]"
@ -224,8 +224,8 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, reactive, onMounted, inject, computed, watch } from 'vue'; import { ref, reactive, onMounted, inject, computed, watch } from 'vue';
import { submitOpe } from '@/api/bank'; import { submitOpe } from '@/api/bank';
import { deleteCache, getSandTableLastCache, deleteOperationData } from '@/api/judgment'; import { getSandTableLastCache, deleteOperationData } from '@/api/judgment';
import { pageStuAssessment, getProjectBySystemId, getProjectDetail, getDetailById, getCompetition, getStartTime } from '@/api/system'; import { getProjectBySystemId, getProjectDetail, getDetailById, getCompetition, getStartTime } from '@/api/system';
import Settings from '@/settings'; import Settings from '@/settings';
import { useRouter, useRoute } from 'vue-router'; import { useRouter, useRoute } from 'vue-router';
import type { Action } from 'element-plus'; import type { Action } from 'element-plus';
@ -342,15 +342,22 @@ watch(
); );
// //
const getSumTime = (): Promise<any> => { const getSumTime = (reset?: number): Promise<any> => {
return new Promise(async (resolve, reject) => { return new Promise(async (resolve, reject) => {
const res = await getStartTime({ const res = await getStartTime({
permissions: per.value, permissions: per.value,
projectId: param.projectId, projectId: param.projectId,
reset,
}); });
resolve(res.startTime ? new Date(res.startTime) : ''); resolve(res.startTime ? new Date(res.startTime) : '');
}); });
}; };
//
const getEntryTime = async (resetTime?: number) => {
let now = await getSumTime(resetTime); //
if (!now) now = await getNow();
entryTime.value = now;
};
// //
const timeFormat = (num: number): string | number => { const timeFormat = (num: number): string | number => {
return num < 10 ? `0${num}` : num; return num < 10 ? `0${num}` : num;
@ -438,6 +445,15 @@ const getCompetitionStatus = async () => {
} }
} }
}; };
//
const delCache = async () => {
await deleteOperationData({
cid: param.cid,
projectId: param.projectId,
assessmentId: param.assessmentId,
competitionId: param.competitionId,
});
};
// //
const setNewProject = (reloadPage?: number) => { const setNewProject = (reloadPage?: number) => {
Cookies.set('sand-projectId', param.projectId); Cookies.set('sand-projectId', param.projectId);
@ -447,6 +463,7 @@ const setNewProject = (reloadPage?: number) => {
grade.value = '00'; grade.value = '00';
pannelTab.value = 'first'; pannelTab.value = 'first';
reload(); reload();
getEntryTime();
if (reloadPage) { if (reloadPage) {
// //
@ -463,8 +480,8 @@ const getCache = async (reloadPage?: number) => {
const res = await getSandTableLastCache({ const res = await getSandTableLastCache({
cid: param.cid, cid: param.cid,
projectId: param.projectId, projectId: param.projectId,
assessmentId: param.assessmentId, assessmentId: param.assessmentId || '',
competitionId: param.competitionId, competitionId: param.competitionId || '',
}); });
// //
if (res.getLastCache) { if (res.getLastCache) {
@ -472,18 +489,20 @@ const getCache = async (reloadPage?: number) => {
confirmButtonText: '是', confirmButtonText: '是',
cancelButtonText: '否', cancelButtonText: '否',
type: 'success', type: 'success',
closeOnClickModal: false,
}) })
.then(async () => { .then(async () => {
// id
if (res.checkpointId) {
Cookies.set('sand-level', res.checkpointId);
}
setNewProject(reloadPage); setNewProject(reloadPage);
}) })
.catch(async () => { .catch(async () => {
Cookies.remove('sand-level');
setNewProject(); setNewProject();
await deleteOperationData({ delCache();
cid: param.cid,
projectId: param.projectId,
assessmentId: param.assessmentId,
competitionId: param.competitionId,
});
// //
if (reloadPage) { if (reloadPage) {
if (route.path === '/') { if (route.path === '/') {
@ -494,6 +513,7 @@ const getCache = async (reloadPage?: number) => {
} }
}); });
} else { } else {
Cookies.remove('sand-level');
setNewProject(); setNewProject();
} }
}; };
@ -502,8 +522,12 @@ const toReport = () => {
router.push('/report'); router.push('/report');
}; };
// //
const reload = async () => { const reload = async (fromReload?: number) => {
// await deleteCache(getIds()); if (fromReload) {
getEntryTime(1);
await delCache(); //
Cookies.remove('sand-level');
}
reloadCount(); reloadCount();
grade.value = '00'; grade.value = '00';
setSubmit(false); setSubmit(false);
@ -513,10 +537,13 @@ const reload = async () => {
// //
const submit = async () => { const submit = async () => {
if (isSubmit.value) return false; if (isSubmit.value) return false;
const checkpointId = Cookies.get('sand-level') ?? '';
if (!checkpointId) return ElMessage.error('请选择关卡');
ElMessageBox.confirm('此操作将视为结束考试,是否继续?', '提示', { ElMessageBox.confirm('此操作将视为结束考试,是否继续?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning', type: 'warning',
closeOnClickModal: false,
}) })
.then(async () => { .then(async () => {
submiting.value = true; submiting.value = true;
@ -532,7 +559,7 @@ const submit = async () => {
endTime: per.value ? param.stopTime : submitTime, // endTime: per.value ? param.stopTime : submitTime, //
submitTime, // 3 submitTime, // 3
timeSum, timeSum,
checkpointId: Cookies.get('sand-level') ?? '', checkpointId,
projectId: param.projectId, projectId: param.projectId,
projectName: projectList.value.find((e) => e.projectId == param.projectId)?.projectName, projectName: projectList.value.find((e) => e.projectId == param.projectId)?.projectName,
lcId: curReq.value, lcId: curReq.value,
@ -564,7 +591,7 @@ const submit = async () => {
reportId.value = retMap.reportId; reportId.value = retMap.reportId;
Cookies.set('sand-reportId', retMap.reportId); Cookies.set('sand-reportId', retMap.reportId);
localStorage.setItem('sand-taskList', JSON.stringify(taskList.value)); localStorage.setItem('sand-taskList', JSON.stringify(taskList.value));
// await deleteCache(getIds()); delCache();
submiting.value = false; submiting.value = false;
// //
@ -632,12 +659,6 @@ const getList = async () => {
if (!per.value && !param.projectId) param.projectId = projects[0]?.projectId ?? 0; // if (!per.value && !param.projectId) param.projectId = projects[0]?.projectId ?? 0; //
getProDetail(); getProDetail();
}; };
//
const getEntryTime = async () => {
let now = await getSumTime(); //
if (!now) now = await getNow();
entryTime.value = now;
};
// websocket // websocket
// socket // socket
@ -678,15 +699,17 @@ const initSocket = () => {
socket.onmessage = getMessage; socket.onmessage = getMessage;
}; };
const handleCache = () => { const handleCache = () => {
//
if (!isSubmit.value) {
param.cid && getEntryTime();
visible.value && !Cookies.get('sand-loaded') && getCache(0); // visible.value && !Cookies.get('sand-loaded') && getCache(0); //
}
}; };
// //
const init = async () => { const init = async () => {
getLevel.value = inject('getLevel'); // getLevel.value = inject('getLevel'); //
per.value = param.assessmentId ? 1 : param.competitionId ? 2 : 0; per.value = param.assessmentId ? 1 : param.competitionId ? 2 : 0;
param.cid && getEntryTime();
if (param.assessmentId) { if (param.assessmentId) {
// //
await getAssList(); await getAssList();

@ -257,10 +257,10 @@ export const getNow = (): Promise<any> => {
export const whethers = [ export const whethers = [
{ {
id: 795, id: 795,
name: '', name: '启用',
}, },
{ {
id: 796, id: 796,
name: '', name: '不启用',
}, },
]; ];

@ -171,12 +171,12 @@
:label="item.itemId">{{ item.options }}</el-radio> :label="item.itemId">{{ item.options }}</el-radio>
</template> </template>
<template v-else> <template v-else>
<el-radio v-for="(item, i) in config.find(e => e.name === '个人产品-贷款用途')?.recordChildren" <el-radio v-for="(item, i) in config.find(e => e.name === '个人产品-贷款用途')?.recordChildren[0]?.subject?.itemList"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.itemId">{{ item.options }}</el-radio>
</template> </template>
</el-radio-group> </el-radio-group>
<el-input v-if="form?.loanPurpose === 107" <el-input v-if="form?.loanPurpose === 822"
class="w-[300px] ml-5" class="w-[300px] ml-5"
placeholder="请描述其他贷款用途可用于哪些方面。" placeholder="请描述其他贷款用途可用于哪些方面。"
maxlength="10" maxlength="10"
@ -228,7 +228,7 @@
</div> </div>
<el-checkbox-group v-if="form.bankGuarantee3 === 795" <el-checkbox-group v-if="form.bankGuarantee3 === 795"
v-model="form.bankGuaranteeTypeIds"> v-model="form.bankGuaranteeTypeIds">
<el-checkbox v-for="(child, j) in config.find((e) => e.name === '担保方式')?.recordChildren[2]?.subject?.itemList" <el-checkbox v-for="(child, j) in config.find((e) => e.name === '担保方式')?.recordChildren[2]?.recordChildren[0]?.subject?.itemList"
:key="j" :key="j"
:label="child.itemId">{{ child.options }}</el-checkbox> :label="child.itemId">{{ child.options }}</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
@ -243,7 +243,7 @@
</div> </div>
<el-checkbox-group v-if="form.bankGuarantee4 === 795" <el-checkbox-group v-if="form.bankGuarantee4 === 795"
v-model="form.bankGuaranteeTypeIds"> v-model="form.bankGuaranteeTypeIds">
<el-checkbox v-for="(child, j) in config.find((e) => e.name === '担保方式')?.recordChildren[3]?.subject?.itemList" <el-checkbox v-for="(child, j) in config.find((e) => e.name === '担保方式')?.recordChildren[3]?.recordChildren[0]?.subject?.itemList"
:key="j" :key="j"
:label="child.itemId">{{ child.options }}</el-checkbox> :label="child.itemId">{{ child.options }}</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
@ -356,7 +356,7 @@ interface RuleForm {
edu: number | string; edu: number | string;
educationalRequirements?: any; educationalRequirements?: any;
loanCeiling: any; loanCeiling: any;
loanPurpose: any; loanPurpose?: number;
maximumAge: any; maximumAge: any;
maximumAnnualInterestRate: any; maximumAnnualInterestRate: any;
maximumTermOfLoan: any; maximumTermOfLoan: any;
@ -588,19 +588,17 @@ const addRecord = async (data: Record<string, any>) => {
data.curWL === 795 && lcRule.push(handleId(1242, 43, data.currentWorkingLife, preIds + ',51,1240,1242', 1)); data.curWL === 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)); // 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));
lcRule.push( data.loanPurpose === 822 && lcRule.push(handleId(1317, 11, data.otherPurposesOfLoan, preIds + ',52,1317', 3));
data.loanPurpose === 107 ? handleId(107, 11, data.otherPurposesOfLoan, preIds + ',52,107', 3) : handleId(data.loanPurpose, '', '', preIds + ',52,' + data.loanPurpose, ''),
);
} }
// //
data.bankGuarantee1 && lcRule.push(handleId(100, 324, data.bankGuarantee1, preIds + ',53,108,100', 1)); data.bankGuarantee1 && lcRule.push(handleId(108, 324, data.bankGuarantee1, preIds + ',53,108', 1));
data.bankGuarantee2 && lcRule.push(handleId(101, 324, data.bankGuarantee2, preIds + ',53,109,101', 1)); data.bankGuarantee2 && lcRule.push(handleId(109, 324, data.bankGuarantee2, preIds + ',53,109', 1));
data.bankGuarantee3 && lcRule.push(handleId(102, 324, data.bankGuarantee3, preIds + ',53,110,102', 1)); data.bankGuarantee3 && lcRule.push(handleId(1277, 324, data.bankGuarantee3, preIds + ',53,110,1277', 1));
data.bankGuarantee4 && lcRule.push(handleId(103, 324, data.bankGuarantee4, preIds + ',53,111,103', 1)); data.bankGuarantee4 && lcRule.push(handleId(1277, 324, data.bankGuarantee4, preIds + ',53,111,1277', 1));
data.bankGuarantee3 === 795 && lcRule.push(handleId(110, 13, data.bankGuaranteeTypeIds.filter((e: number) => e > 22 && e < 33).join(), preIds + ',53,110', 1)); data.bankGuarantee3 === 795 && lcRule.push(handleId(1275, 13, data.bankGuaranteeTypeIds.filter((e: number) => e > 22 && e < 33).join(), preIds + ',53,110,1275', 1));
data.bankGuarantee4 === 795 && lcRule.push(handleId(111, 14, data.bankGuaranteeTypeIds.filter((e: number) => e > 32 && e < 38).join(), preIds + ',53,111', 1)); data.bankGuarantee4 === 795 && lcRule.push(handleId(1276, 14, data.bankGuaranteeTypeIds.filter((e: number) => e > 32 && e < 38).join(), preIds + ',53,111,1276', 1));
lcRule.push( lcRule.push(
handleId(54, 15, data.minimumLoan + '~' + data.loanCeiling, preIds + ',54', 5), handleId(54, 15, data.minimumLoan + '~' + data.loanCeiling, preIds + ',54', 5),

@ -33,7 +33,7 @@
</el-popconfirm> </el-popconfirm>
<h6>{{ item.productName }}</h6> <h6>{{ item.productName }}</h6>
<p class="type">{{ item.productNumber + ' ' + item.guarantyStyle }}</p> <p class="type">{{ item.productNumber + ' ' + (item.guarantyStyle || '') }}</p>
<p class="status">{{ getStatus(item.status) }}</p> <p class="status">{{ getStatus(item.status) }}</p>
<p class="meta">创建日期{{ item.operationTime }}</p> <p class="meta">创建日期{{ item.operationTime }}</p>
</li> </li>

@ -26,7 +26,7 @@
<p class="tips">选择需要提供的申请人材料至少选一样</p> <p class="tips">选择需要提供的申请人材料至少选一样</p>
<el-checkbox-group v-if="config.length" <el-checkbox-group v-if="config.length"
v-model="form.accountMaterials"> v-model="form.accountMaterials">
<el-checkbox v-for="(item, i) in config[0]?.recordChildren[0]?.subject?.itemList" <el-checkbox v-for="(item, i) in config[0]?.recordChildren[0]?.recordChildren[1]?.subject?.itemList"
:key="i" :key="i"
:label="item.itemId">{{ item.options }}</el-checkbox> :label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
@ -39,14 +39,14 @@
<div class="radio-wrap flex-col items-start"> <div class="radio-wrap flex-col items-start">
<el-radio-group v-if="config.length" <el-radio-group v-if="config.length"
v-model="form.sendingAccountCheck"> v-model="form.sendingAccountCheck">
<el-radio v-for="(item, i) in config[0]?.recordChildren[1]?.recordChildren[0]?.subject?.itemList" <el-radio v-for="(item, i) in config[0]?.recordChildren[1]?.recordChildren[1]?.subject?.itemList"
:key="i" :key="i"
:label="item.itemId">{{ item.options }}</el-radio> :label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<template v-if="form.sendingAccountCheck === 801 && config.length"> <template v-if="form.sendingAccountCheck === 801 && config.length">
<p class="tips">选择需要发放的账户至少选一样</p> <p class="tips">选择需要发放的账户至少选一样</p>
<el-radio v-for="(item, i) in config[0]?.recordChildren[1]?.subject?.itemList" <el-radio v-for="(item, i) in config[0]?.recordChildren[1]?.recordChildren[0]?.subject?.itemList"
:key="i" :key="i"
v-model="form.sendingAccount" v-model="form.sendingAccount"
:label="item.itemId">{{ item.options }}</el-radio> :label="item.itemId">{{ item.options }}</el-radio>
@ -80,16 +80,7 @@
</div> </div>
</div> </div>
<div v-if="form.borrowerMaterialCheck === 797"> <div v-if="form.borrowerMaterialCheck === 797">
<p class="text-xs text-[#666]">选择需要提供的借款人材料至少选一样</p> <p class="my-2 text-xs text-[#666]">选择需要提供的借款人材料至少选一样</p>
<el-select v-if="config.length"
class="my-2"
v-model="form.borrowerMaterialSelect"
placeholder="请选择">
<el-option v-for="item in config[1]?.recordChildren[1]?.recordChildren[1]?.subject?.itemList"
:key="item.itemId"
:label="item.options"
:value="item.itemId" />
</el-select>
<el-checkbox-group v-if="config.length" <el-checkbox-group v-if="config.length"
v-model="form.borrowerMaterial" v-model="form.borrowerMaterial"
@change="denyAll('borrowerMaterial', 770)"> @change="denyAll('borrowerMaterial', 770)">
@ -218,16 +209,16 @@
<div class="radio-wrap flex-col items-start mb-2"> <div class="radio-wrap flex-col items-start mb-2">
<el-radio-group v-if="config.length" <el-radio-group v-if="config.length"
v-model="form.runBatchObjectCheck"> v-model="form.runBatchObjectCheck">
<el-radio v-for="(item, i) in config[2]?.recordChildren[0]?.recordChildren[0]?.subject?.itemList" <el-radio v-for="(item, i) in config[2]?.recordChildren[0]?.recordChildren[1]?.subject?.itemList"
:key="i" :key="i"
:label="item.itemId">{{ item.options }}</el-radio> :label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<template v-if="form.runBatchObjectCheck === 797"> <template v-if="form.runBatchObjectCheck === 803">
<p class="tips">选择需要跑批的对象至少选一样</p> <p class="tips">选择需要跑批的对象至少选一样</p>
<el-checkbox-group v-if="config.length" <el-checkbox-group v-if="config.length"
v-model="form.runBatchObject"> v-model="form.runBatchObject">
<el-checkbox v-for="(item, i) in config[2]?.recordChildren[0]?.subject?.itemList" <el-checkbox v-for="(item, i) in config[2]?.recordChildren[0]?.recordChildren[0]?.subject?.itemList"
:key="i" :key="i"
:label="item.itemId">{{ item.options }}</el-checkbox> :label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
@ -240,16 +231,16 @@
<div class="radio-wrap flex-col items-start mb-2"> <div class="radio-wrap flex-col items-start mb-2">
<el-radio-group v-if="config.length" <el-radio-group v-if="config.length"
v-model="form.accessStrategyCheck"> v-model="form.accessStrategyCheck">
<el-radio v-for="(item, i) in config[2]?.recordChildren[1]?.recordChildren[0]?.subject?.itemList" <el-radio v-for="(item, i) in config[2]?.recordChildren[1]?.recordChildren[1]?.subject?.itemList"
:key="i" :key="i"
:label="item.itemId">{{ item.options }}</el-radio> :label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<template v-if="form.accessStrategyCheck === 797"> <template v-if="form.accessStrategyCheck === 803">
<p class="tips">选择需要跑批的准入策略至少选一样</p> <p class="tips">选择需要跑批的准入策略至少选一样</p>
<el-checkbox-group v-if="config.length" <el-checkbox-group v-if="config.length"
v-model="form.accessStrategy"> v-model="form.accessStrategy">
<el-checkbox v-for="(item, i) in config[2]?.recordChildren[1]?.subject?.itemList" <el-checkbox v-for="(item, i) in config[2]?.recordChildren[1]?.recordChildren[0]?.subject?.itemList"
:key="i" :key="i"
:label="item.itemId">{{ item.options }}</el-checkbox> :label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
@ -306,7 +297,7 @@
<div class="radio-wrap"> <div class="radio-wrap">
<el-radio-group v-if="config.length" <el-radio-group v-if="config.length"
v-model="form.riskDegreeStrategyCheck"> v-model="form.riskDegreeStrategyCheck">
<el-radio v-for="(item, i) in config[2]?.recordChildren[3]?.recordChildren[0]?.subject?.itemList" <el-radio v-for="(item, i) in config[2]?.recordChildren[3]?.recordChildren[1]?.subject?.itemList"
:key="i" :key="i"
:label="item.itemId">{{ item.options }}</el-radio> :label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group> </el-radio-group>
@ -330,7 +321,7 @@
<span class="label">{{ (info.productType ? '企业' : '个人') + '额度模型' }}</span> <span class="label">{{ (info.productType ? '企业' : '个人') + '额度模型' }}</span>
<el-radio-group v-if="config.length" <el-radio-group v-if="config.length"
v-model="form.interestRatePricingModelCheck"> v-model="form.interestRatePricingModelCheck">
<el-radio v-for="(item, i) in config[2]?.recordChildren[3]?.recordChildren[0]?.subject?.itemList" <el-radio v-for="(item, i) in config[2]?.recordChildren[3]?.recordChildren[1]?.subject?.itemList"
:key="i" :key="i"
:label="item.itemId">{{ item.options }}</el-radio> :label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group> </el-radio-group>
@ -339,7 +330,7 @@
class="ml-5" class="ml-5"
v-model="form.interestRatePricingModel" v-model="form.interestRatePricingModel"
placeholder="请选择"> placeholder="请选择">
<el-option v-for="item in config[2]?.recordChildren[4]?.recordChildren[1]?.subject?.itemList" <el-option v-for="item in config[2]?.recordChildren[4]?.recordChildren[1]?.recordChildren[1]?.subject?.itemList"
:key="item.itemId" :key="item.itemId"
:label="item.options" :label="item.options"
:value="item.itemId" /> :value="item.itemId" />
@ -350,7 +341,7 @@
<span class="label">{{ (info.productType ? '企业' : '个人') + '利率模型' }}</span> <span class="label">{{ (info.productType ? '企业' : '个人') + '利率模型' }}</span>
<el-radio-group v-if="config.length" <el-radio-group v-if="config.length"
v-model="form.individualInterestRateModel"> v-model="form.individualInterestRateModel">
<el-radio v-for="(item, i) in config[2]?.recordChildren[4]?.recordChildren[0]?.recordChildren[0]?.subject?.itemList" <el-radio v-for="(item, i) in config[2]?.recordChildren[4]?.recordChildren[0]?.subject?.itemList"
:key="i" :key="i"
:label="item.itemId">{{ item.options }}</el-radio> :label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group> </el-radio-group>
@ -391,8 +382,15 @@
prop="reviewContent"> prop="reviewContent">
<div> <div>
<p class="tips leading-[32px]">选择审查材料至少选一样</p> <p class="tips leading-[32px]">选择审查材料至少选一样</p>
<el-radio v-model="form.reviewContent" <el-radio-group v-if="config.length"
:label="info.productType ? 261 : 114">{{ info.productType ? '所有基本信息' : '所有基本材料' }}</el-radio> v-model="form.reviewContent">
<el-radio v-for="(item, i) in config[4]?.recordChildren[0]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group>
<!-- <el-radio v-model="form.reviewContent"
:label="info.productType ? 261 : 114">{{ info.productType ? '所有基本信息' : '所有基本材料' }}</el-radio> -->
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="审查签字" <el-form-item label="审查签字"
@ -410,8 +408,15 @@
prop="reviewApproveContent"> prop="reviewApproveContent">
<div> <div>
<p class="tips leading-[32px]">选择审批材料至少选一样</p> <p class="tips leading-[32px]">选择审批材料至少选一样</p>
<el-radio v-model="form.reviewApproveContent" <el-radio-group v-if="config.length"
:label="info.productType ? 263 : 116">以上所有材料</el-radio> v-model="form.reviewApproveContent">
<el-radio v-for="(item, i) in config[5]?.recordChildren[0]?.subject?.itemList"
:key="i"
:label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group>
<!-- <el-radio v-model="form.reviewApproveContent"
:label="info.productType ? 263 : 116">以上所有材料</el-radio> -->
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="审批签字" <el-form-item label="审批签字"
@ -456,7 +461,7 @@
class="ml-5" class="ml-5"
v-model="form.loanContract" v-model="form.loanContract"
placeholder="请选择"> placeholder="请选择">
<el-option v-for="item in config[6]?.recordChildren[1]?.recordChildren[0]?.subject?.itemList" <el-option v-for="item in config[6]?.recordChildren[1]?.recordChildren[0]?.recordChildren[0]?.subject?.itemList"
:key="item.itemId" :key="item.itemId"
:label="item.options" :label="item.options"
:value="item.itemId" /> :value="item.itemId" />
@ -476,7 +481,7 @@
class="ml-5" class="ml-5"
v-model="form.mortgageContract" v-model="form.mortgageContract"
placeholder="请选择"> placeholder="请选择">
<el-option v-for="item in config[6]?.recordChildren[1]?.recordChildren[1]?.subject?.itemList" <el-option v-for="item in config[6]?.recordChildren[1]?.recordChildren[1]?.recordChildren[0]?.subject?.itemList"
:key="item.itemId" :key="item.itemId"
:label="item.options" :label="item.options"
:value="item.itemId" /> :value="item.itemId" />
@ -495,7 +500,7 @@
class="ml-5" class="ml-5"
v-model="form.pledgeContract" v-model="form.pledgeContract"
placeholder="请选择"> placeholder="请选择">
<el-option v-for="item in config[6]?.recordChildren[1]?.recordChildren[2]?.subject?.itemList" <el-option v-for="item in config[6]?.recordChildren[1]?.recordChildren[2]?.recordChildren[0]?.subject?.itemList"
:key="item.itemId" :key="item.itemId"
:label="item.options" :label="item.options"
:value="item.itemId" /> :value="item.itemId" />
@ -514,7 +519,7 @@
class="ml-5" class="ml-5"
v-model="form.guaranteeContract" v-model="form.guaranteeContract"
placeholder="请选择"> placeholder="请选择">
<el-option v-for="item in config[6]?.recordChildren[1]?.recordChildren[3]?.subject?.itemList" <el-option v-for="item in config[6]?.recordChildren[1]?.recordChildren[3]?.recordChildren[0]?.subject?.itemList"
:key="item.itemId" :key="item.itemId"
:label="item.options" :label="item.options"
:value="item.itemId" /> :value="item.itemId" />
@ -531,16 +536,16 @@
<div class="radio-wrap flex-col items-start mb-1"> <div class="radio-wrap flex-col items-start mb-1">
<el-radio-group v-if="config.length" <el-radio-group v-if="config.length"
v-model="form.selectionStrategyCheck"> v-model="form.selectionStrategyCheck">
<el-radio v-for="(item, i) in config[2]?.recordChildren[0]?.recordChildren[0]?.subject?.itemList" <el-radio v-for="(item, i) in config[2]?.recordChildren[0]?.recordChildren[1]?.subject?.itemList"
:key="i" :key="i"
:label="item.itemId">{{ item.options }}</el-radio> :label="item.itemId">{{ item.options }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<template v-if="form.selectionStrategyCheck === 803"> <template v-if="form.selectionStrategyCheck === 803">
<p class="tips">选择策略至少选一样</p> <p class="tips">选择策略至少选一样</p>
<el-checkbox-group v-if="(info.productType && config.length && config[7]?.recordChildren) || (!info.productType && config.length && config[7]?.subject)" <el-checkbox-group v-if="(info.productType && config.length && config[7]?.recordChildren) || (!info.productType && config.length && config[7]?.recordChildren)"
v-model="form.selectionStrategy"> v-model="form.selectionStrategy">
<el-checkbox v-for="(item, i) in info.productType ? config[7]?.recordChildren[0]?.subject?.itemList : config[7]?.subject?.itemList" <el-checkbox v-for="(item, i) in info.productType ? config[7]?.recordChildren[0]?.recordChildren[1]?.subject?.itemList : config[7]?.recordChildren[0]?.subject?.itemList"
:key="i" :key="i"
:label="item.itemId">{{ item.options }}</el-checkbox> :label="item.itemId">{{ item.options }}</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
@ -586,7 +591,6 @@ interface RuleForm {
bankProductsId: any; bankProductsId: any;
borrowerMaterialCheck?: number; borrowerMaterialCheck?: number;
borrowerMaterial: any; borrowerMaterial: any;
borrowerMaterialSelect: any;
businessMaterialsCheck?: number; businessMaterialsCheck?: number;
businessMaterials: any; businessMaterials: any;
collateralCheck?: number; collateralCheck?: number;
@ -663,7 +667,6 @@ const form = reactive<RuleForm>({
bankProductsId: computed(() => +route.query.id), bankProductsId: computed(() => +route.query.id),
borrowerMaterialCheck: '', borrowerMaterialCheck: '',
borrowerMaterial: [], borrowerMaterial: [],
borrowerMaterialSelect: '',
businessMaterialsCheck: '', businessMaterialsCheck: '',
businessMaterials: [], businessMaterials: [],
collateralCheck: '', collateralCheck: '',
@ -763,7 +766,7 @@ const submit = async (formEl: FormInstance | undefined) => {
if (param.accountMaterialsCheck === 797 && !param.accountMaterials.length) return ElMessage.error('请选择需要提供的申请人材料'); if (param.accountMaterialsCheck === 797 && !param.accountMaterials.length) return ElMessage.error('请选择需要提供的申请人材料');
if (param.sendingAccountCheck === 801 && !param.sendingAccount) return ElMessage.error('请选择需要发放的账户'); if (param.sendingAccountCheck === 801 && !param.sendingAccount) return ElMessage.error('请选择需要发放的账户');
if (!param.loanApplicationMethod.length) return ElMessage.error('请选择申请方式'); if (!param.loanApplicationMethod.length) return ElMessage.error('请选择申请方式');
if (param.borrowerMaterialCheck === 797 && !param.borrowerMaterialSelect && !param.borrowerMaterial.length) return ElMessage.error('请选择需要提供的借款人材料'); if (param.borrowerMaterialCheck === 797 && !param.borrowerMaterial.length) return ElMessage.error('请选择借款人材料');
if (isEnterprise) { if (isEnterprise) {
// //
@ -787,7 +790,6 @@ const submit = async (formEl: FormInstance | undefined) => {
if (param.selectionStrategyCheck === 803 && !param.selectionStrategy.length) return ElMessage.error('请选择策略'); if (param.selectionStrategyCheck === 803 && !param.selectionStrategy.length) return ElMessage.error('请选择策略');
param.accessStrategy = param.accessStrategyCheck === 797 ? param.accessStrategy.join() : ''; param.accessStrategy = param.accessStrategyCheck === 797 ? param.accessStrategy.join() : '';
if (param.borrowerMaterialCheck === 797) param.borrowerMaterial.unshift(param.borrowerMaterialSelect);
param.borrowerMaterial = param.borrowerMaterial.join(); param.borrowerMaterial = param.borrowerMaterial.join();
param.accountMaterials = param.accountMaterialsCheck === 797 ? param.accountMaterials.join() : ''; param.accountMaterials = param.accountMaterialsCheck === 797 ? param.accountMaterials.join() : '';
if (param.sendingAccountCheck === 802) param.sendingAccount = ''; if (param.sendingAccountCheck === 802) param.sendingAccount = '';
@ -842,43 +844,45 @@ const addRecord = async (data: Record<string, any>) => {
// //
if (isEnterprise) { if (isEnterprise) {
data.accountMaterialsCheck && lcRule.push(handleId(1268, 325, data.accountMaterialsCheck, preIds + ',112,120,1268', 1)); data.accountMaterialsCheck && lcRule.push(handleId(1246, 325, data.accountMaterialsCheck, preIds + ',112,120,1246', 1));
data.accountMaterials && lcRule.push(handleId(120, 44, data.accountMaterials, preIds + ',112,120', 1)); data.accountMaterials && lcRule.push(handleId(1254, 44, data.accountMaterials, preIds + ',112,120,1254', 1));
data.sendingAccountCheck && lcRule.push(handleId(1269, 326, data.sendingAccountCheck, preIds + ',112,121,1269', 1)); data.sendingAccountCheck && lcRule.push(handleId(1257, 326, data.sendingAccountCheck, preIds + ',112,121,1257', 1));
data.sendingAccount && lcRule.push(handleId(121, 45, data.sendingAccount, preIds + ',112,121', 1)); data.sendingAccount && lcRule.push(handleId(1255, 45, data.sendingAccount, preIds + ',112,121,1255', 1));
data.loanApplicationMethod && lcRule.push(handleId(122, 46, data.loanApplicationMethod, preIds + ',113,122', 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.enterpriseMaterialCheck && lcRule.push(handleId(1294, 325, data.enterpriseMaterialCheck, preIds + ',113,124,1294', 1));
data.enterpriseMaterial && lcRule.push(handleId(124, 48, data.enterpriseMaterial, preIds + ',113,124', 1)); data.enterpriseMaterial && lcRule.push(handleId(1258, 48, data.enterpriseMaterial, preIds + ',113,124,1258', 1));
form.borrowerMaterialCheck && lcRule.push(handleId(1270, 325, form.borrowerMaterialCheck, preIds + ',113,123,316,1270', 1)); form.borrowerMaterialCheck && lcRule.push(handleId(1294, 325, form.borrowerMaterialCheck, preIds + ',113,123,1294', 1));
const borrowerMaterial = []; const borrowerMaterial = [];
form.borrowerMaterial.forEach((e) => { form.borrowerMaterial.forEach((e) => {
borrowerMaterial.push(e); borrowerMaterial.push(e);
}); });
borrowerMaterial.length && lcRule.push(handleId(316, 47, borrowerMaterial.join(), preIds + ',113,123,316', 1)); 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.collateralCheck && lcRule.push(handleId(1294, 325, data.collateralCheck, preIds + ',113,125,1294', 1));
data.collateral && lcRule.push(handleId(125, 49, data.collateral, preIds + ',113,125', 1)); data.collateral && lcRule.push(handleId(1259, 49, data.collateral, preIds + ',113,125,1259', 1));
data.supplementaryMaterialsCheck && lcRule.push(handleId(1294, 325, data.supplementaryMaterialsCheck, preIds + ',113,126,1294', 1));
data.supplementaryMaterials && lcRule.push(handleId(1260, 50, data.supplementaryMaterials, preIds + ',113,126,1260', 1));
data.supplementaryMaterialsCheck && lcRule.push(handleId(1274, 325, data.supplementaryMaterialsCheck, preIds + ',113,126,1274', 1)); data.runBatchObjectCheck && lcRule.push(handleId(1302, 327, data.runBatchObjectCheck, preIds + ',114,127,1302', 1));
data.supplementaryMaterials && lcRule.push(handleId(126, 50, data.supplementaryMaterials, preIds + ',113,126', 1)); data.runBatchObject && lcRule.push(handleId(1261, 51, data.runBatchObject, preIds + ',114,127,1261', 1));
data.runBatchObjectCheck && lcRule.push(handleId(1275, 327, data.runBatchObjectCheck, preIds + ',114,127,1275', 1)); data.accessStrategyCheck && lcRule.push(handleId(1302, 327, data.accessStrategyCheck, preIds + ',114,128,1302', 1));
data.runBatchObject && lcRule.push(handleId(127, 51, data.runBatchObject, preIds + ',114,127', 1)); data.accessStrategy && lcRule.push(handleId(1262, 52, data.accessStrategy, preIds + ',114,128,1262', 1));
data.accessStrategyCheck && lcRule.push(handleId(1276, 327, data.accessStrategyCheck, preIds + ',114,128,1276', 1)); data.personalCreditScoringStrategiesCheck && lcRule.push(handleId(1306, 325, data.personalCreditScoringStrategiesCheck, preIds + ',114,129,1046,1306', 1));
data.accessStrategy && lcRule.push(handleId(128, 52, data.accessStrategy, preIds + ',114,128', 1)); data.personalCreditScoringStrategies && lcRule.push(handleId(1307, 329, data.personalCreditScoringStrategiesCheck, preIds + ',114,129,1046,1307', 3));
data.corporateCreditScoringStrategiesCheck && lcRule.push(handleId(1306, 325, data.corporateCreditScoringStrategiesCheck, preIds + ',114,129,1047,1306', 1));
data.corporateCreditScoringStrategies && lcRule.push(handleId(1307, 329, data.corporateCreditScoringStrategies, preIds + ',114,129,1047,1307', 3));
data.personalCreditScoringStrategiesCheck && lcRule.push(handleId(1256, 327, data.personalCreditScoringStrategiesCheck, preIds + ',114,129,1046,1256', 1)); data.riskDegreeStrategyCheck && lcRule.push(handleId(1302, 327, data.riskDegreeStrategyCheck, preIds + ',114,130,1302', 1));
data.corporateCreditScoringStrategiesCheck && lcRule.push(handleId(1257, 327, data.corporateCreditScoringStrategiesCheck, preIds + ',114,129,1047,1257', 1)); data.riskDegreeStrategy && lcRule.push(handleId(1301, 54, data.riskDegreeStrategy, preIds + ',114,130,1301', 1));
data.riskDegreeStrategyCheck && lcRule.push(handleId(1277, 327, data.riskDegreeStrategyCheck, preIds + ',114,130,1277', 1)); data.interestRatePricingModelCheck && lcRule.push(handleId(1302, 327, data.interestRatePricingModelCheck, preIds + ',114,131,305,1302', 1));
data.riskDegreeStrategy && lcRule.push(handleId(130, 54, data.riskDegreeStrategy, preIds + ',114,130', 1)); data.interestRatePricingModel && lcRule.push(handleId(1314, 55, data.interestRatePricingModel, preIds + ',114,131,305,1314', 1));
data.interestRatePricingModelCheck && lcRule.push(handleId(1279, 327, data.interestRatePricingModelCheck, preIds + ',114,131,305,1279', 1)); data.individualInterestRateModel && lcRule.push(handleId(304, 327, data.individualInterestRateModel, preIds + ',114,131,304', 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.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)); data.dueDiligenceContent && lcRule.push(handleId(133, 57, data.dueDiligenceContent, preIds + ',115,133', 1));
@ -887,60 +891,62 @@ const addRecord = async (data: Record<string, any>) => {
data.reviewApproveContent && lcRule.push(handleId(136, 60, data.reviewApproveContent, preIds + ',117,136', 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.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.contractMaterialsCheck && lcRule.push(handleId(1264, 325, data.contractMaterialsCheck, preIds + ',118,138,1264', 1));
data.contractMaterials && lcRule.push(handleId(138, 62, data.contractMaterials, preIds + ',118,138', 1)); data.contractMaterials && lcRule.push(handleId(1263, 62, data.contractMaterials, preIds + ',118,138,1263', 1));
data.loanContractCheck && lcRule.push(handleId(1281, 325, data.loanContractCheck, preIds + ',118,139,306,1281', 1)); data.loanContractCheck && lcRule.push(handleId(1273, 325, data.loanContractCheck, preIds + ',118,139,306,1273', 1));
data.loanContract && lcRule.push(handleId(306, 63, data.loanContract, preIds + ',118,139,306', 1)); data.loanContract && lcRule.push(handleId(1269, 63, data.loanContract, preIds + ',118,139,306,1269', 1));
data.mortgageContractCheck && lcRule.push(handleId(1282, 325, data.mortgageContractCheck, preIds + ',118,139,307,1282', 1)); data.mortgageContractCheck && lcRule.push(handleId(1273, 325, data.mortgageContractCheck, preIds + ',118,139,307,1273', 1));
data.mortgageContract && lcRule.push(handleId(307, 142, data.mortgageContract, preIds + ',118,139,307', 1)); data.mortgageContract && lcRule.push(handleId(1270, 142, data.mortgageContract, preIds + ',118,139,307,1270', 1));
data.pledgeContractCheck && lcRule.push(handleId(1283, 325, data.pledgeContractCheck, preIds + ',118,139,308,1283', 1)); data.pledgeContractCheck && lcRule.push(handleId(1273, 325, data.pledgeContractCheck, preIds + ',118,139,308,1273', 1));
data.pledgeContract && lcRule.push(handleId(308, 143, data.pledgeContract, preIds + ',118,139,308', 1)); data.pledgeContract && lcRule.push(handleId(1271, 143, data.pledgeContract, preIds + ',118,139,308,1271', 1));
data.guaranteeContractCheck && lcRule.push(handleId(1284, 325, data.guaranteeContractCheck, preIds + ',118,139,309,1284', 1)); data.guaranteeContractCheck && lcRule.push(handleId(1273, 325, data.guaranteeContractCheck, preIds + ',118,139,309,1273', 1));
data.guaranteeContract && lcRule.push(handleId(309, 144, data.guaranteeContract, preIds + ',118,139,309', 1)); data.guaranteeContract && lcRule.push(handleId(1272, 144, data.guaranteeContract, preIds + ',118,139,309,1272', 1));
data.selectionStrategyCheck && lcRule.push(handleId(1285, 327, data.selectionStrategyCheck, preIds + ',119,140,1285', 1)); data.selectionStrategyCheck && lcRule.push(handleId(1302, 327, data.selectionStrategyCheck, preIds + ',119,140,1302', 1));
data.selectionStrategy && lcRule.push(handleId(140, 64, data.selectionStrategy, preIds + ',119,140', 1)); data.selectionStrategy && lcRule.push(handleId(1315, 64, data.selectionStrategy, preIds + ',119,140,1315', 1));
} else { } else {
data.accountMaterialsCheck && lcRule.push(handleId(1246, 325, data.accountMaterialsCheck, preIds + ',72,75,1246', 1)); data.accountMaterialsCheck && lcRule.push(handleId(1294, 325, data.accountMaterialsCheck, preIds + ',72,75,1294', 1));
data.accountMaterials && lcRule.push(handleId(75, 20, data.accountMaterials, preIds + ',72,75', 1)); data.accountMaterials && lcRule.push(handleId(1296, 20, data.accountMaterials, preIds + ',72,75,1295', 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)); data.sendingAccountCheck && lcRule.push(handleId(1312, 326, data.sendingAccountCheck, preIds + ',72,76,1312', 1));
data.sendingAccount && lcRule.push(handleId(1296, 21, data.sendingAccount, preIds + ',72,76,1296', 1));
data.loanApplicationMethod && lcRule.push(handleId(1289, 22, data.loanApplicationMethod, preIds + ',73,77,1289', 1));
form.borrowerMaterialCheck && lcRule.push(handleId(1294, 325, form.borrowerMaterialCheck, preIds + ',73,78,1294', 1));
const borrowerMaterial = []; const borrowerMaterial = [];
form.borrowerMaterial.forEach((e) => { form.borrowerMaterial.forEach((e) => {
borrowerMaterial.push(e); borrowerMaterial.push(e);
}); });
borrowerMaterial.length && lcRule.push(handleId(314, 23, borrowerMaterial.join(), preIds + ',73,78,314', 1)); 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.mateMaterialCheck && lcRule.push(handleId(1294, 325, data.mateMaterialCheck, preIds + ',73,79,1294', 1));
data.supplementaryMaterials && lcRule.push(handleId(81, 26, data.supplementaryMaterials, preIds + ',73,81', 1)); data.mateMaterial && lcRule.push(handleId(1291, 24, data.mateMaterial, preIds + ',73,79,1291', 1));
data.businessMaterialsCheck && lcRule.push(handleId(1294, 325, data.businessMaterialsCheck, preIds + ',73,80,1294', 1));
data.businessMaterials && lcRule.push(handleId(1292, 25, data.businessMaterials, preIds + ',73,80,1292', 1));
data.supplementaryMaterialsCheck && lcRule.push(handleId(1294, 325, data.supplementaryMaterialsCheck, preIds + ',73,81,1294', 1));
data.supplementaryMaterials && lcRule.push(handleId(1293, 26, data.supplementaryMaterials, preIds + ',73,81,1293', 1));
data.runBatchObjectCheck && lcRule.push(handleId(1254, 325, data.runBatchObjectCheck, preIds + ',74,82,1254', 1)); data.runBatchObjectCheck && lcRule.push(handleId(1302, 325, data.runBatchObjectCheck, preIds + ',74,82,1302', 1));
data.runBatchObject && lcRule.push(handleId(82, 27, data.runBatchObject, preIds + ',74,82', 1)); data.runBatchObject && lcRule.push(handleId(1297, 27, data.runBatchObject, preIds + ',74,82,1297', 1));
data.accessStrategyCheck && lcRule.push(handleId(1255, 325, data.accessStrategyCheck, preIds + ',74,83,1255', 1)); data.accessStrategyCheck && lcRule.push(handleId(1302, 325, data.accessStrategyCheck, preIds + ',74,83,1302', 1));
data.accessStrategy && lcRule.push(handleId(83, 28, data.accessStrategy, preIds + ',74,83', 1)); data.accessStrategy && lcRule.push(handleId(1298, 28, data.accessStrategy, preIds + ',74,83,1298', 1));
data.personalCreditScoringStrategiesCheck && lcRule.push(handleId(1256, 325, data.personalCreditScoringStrategiesCheck, preIds + ',74,84,1046,1256', 1)); data.personalCreditScoringStrategiesCheck && lcRule.push(handleId(1306, 325, data.personalCreditScoringStrategiesCheck, preIds + ',74,84,1304,1306', 1));
data.corporateCreditScoringStrategiesCheck && lcRule.push(handleId(1257, 325, data.corporateCreditScoringStrategiesCheck, preIds + ',74,84,1047,1257', 1)); data.corporateCreditScoringStrategiesCheck && lcRule.push(handleId(1306, 325, data.corporateCreditScoringStrategiesCheck, preIds + ',74,84,1305,1306', 1));
data.riskDegreeStrategyCheck && lcRule.push(handleId(1258, 327, data.riskDegreeStrategyCheck, preIds + ',74,85,1258', 1)); data.riskDegreeStrategyCheck && lcRule.push(handleId(1302, 327, data.riskDegreeStrategyCheck, preIds + ',74,85,1302', 1));
data.riskDegreeStrategy && lcRule.push(handleId(85, 30, data.riskDegreeStrategy, preIds + ',74,85', 1)); data.riskDegreeStrategy && lcRule.push(handleId(1300, 30, data.riskDegreeStrategy, preIds + ',74,85,1300', 1));
data.interestRatePricingModelCheck && lcRule.push(handleId(1260, 327, data.interestRatePricingModelCheck, preIds + ',74,86,303,1260', 1)); data.interestRatePricingModelCheck && lcRule.push(handleId(1302, 327, data.interestRatePricingModelCheck, preIds + ',74,86,1309,1302', 1));
data.interestRatePricingModel && lcRule.push(handleId(303, 141, data.interestRatePricingModel, preIds + ',74,86,303', 1)); data.interestRatePricingModel && lcRule.push(handleId(1311, 141, data.interestRatePricingModel, preIds + ',74,86,1309,1311', 1));
data.individualInterestRateModel && lcRule.push(handleId(1259, 327, data.individualInterestRateModel, preIds + ',74,86,302,1259', 1)); data.individualInterestRateModel && lcRule.push(handleId(1310, 327, data.individualInterestRateModel, preIds + ',74,86,1308,1310', 1));
data.dueDiligenceMode && lcRule.push(handleId(88, 32, data.dueDiligenceMode, preIds + ',87,88', 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)); data.dueDiligenceContent && lcRule.push(handleId(89, 33, data.dueDiligenceContent, preIds + ',87,89', 1));
@ -949,21 +955,23 @@ const addRecord = async (data: Record<string, any>) => {
data.reviewApproveContent && lcRule.push(handleId(94, 36, data.reviewApproveContent, preIds + ',93,94', 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.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.contractMaterialsCheck && lcRule.push(handleId(1248, 325, data.contractMaterialsCheck, preIds + ',96,97,1248', 1));
data.contractMaterials && lcRule.push(handleId(97, 38, data.contractMaterials, preIds + ',96,97', 1)); data.contractMaterials && lcRule.push(handleId(1247, 38, data.contractMaterials, preIds + ',96,97,1247', 1));
data.loanContractCheck && lcRule.push(handleId(1253, 325, data.loanContractCheck, preIds + ',96,98,310,1253', 1));
data.loanContract && lcRule.push(handleId(1249, 39, data.loanContract, preIds + ',96,98,310,1249', 1));
data.mortgageContractCheck && lcRule.push(handleId(1253, 325, data.mortgageContractCheck, preIds + ',96,98,311,1253', 1));
data.mortgageContract && lcRule.push(handleId(1250, 145, data.mortgageContract, preIds + ',96,98,311,1250', 1));
data.loanContractCheck && lcRule.push(handleId(1263, 325, data.loanContractCheck, preIds + ',96,98,310,1263', 1)); data.pledgeContractCheck && lcRule.push(handleId(1253, 325, data.pledgeContractCheck, preIds + ',96,98,312,1253', 1));
data.loanContract && lcRule.push(handleId(310, 39, data.loanContract, preIds + ',96,98,310', 1)); data.pledgeContract && lcRule.push(handleId(1251, 146, data.pledgeContract, preIds + ',96,98,312,1251', 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.guaranteeContractCheck && lcRule.push(handleId(1253, 325, data.guaranteeContractCheck, preIds + ',96,98,313,1253', 1));
data.pledgeContract && lcRule.push(handleId(312, 146, data.pledgeContract, preIds + ',96,98,312', 1)); data.guaranteeContract && lcRule.push(handleId(1252, 147, data.guaranteeContract, preIds + ',96,98,313,1252', 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.selectionStrategyCheck && lcRule.push(handleId(283, 327, data.selectionStrategyCheck, preIds + ',99,283', 1));
data.selectionStrategy && lcRule.push(handleId(99, 40, data.selectionStrategy, preIds + ',99', 1)); data.selectionStrategy && lcRule.push(handleId(281, 40, data.selectionStrategy, preIds + ',99,281', 1));
} }
await addOperation({ await addOperation({

@ -14,13 +14,13 @@
min-width="100" min-width="100"
align="center"> align="center">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<span :class="{'text-[#006bff]': !$index}">{{ row?.indexName }}</span> <span>{{ row?.indexName }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="描述" <el-table-column label="描述"
min-width="150"> min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<span :class="{'text-[#006bff]': !$index}">{{ $index === 12 ? '=起始浮动比例+增减分值 且 不超过最高浮动比例' : row?.description }}</span> <span>{{ $index === 12 ? '=起始浮动比例+增减分值 且 不超过最高浮动比例' : row?.description }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="分值" <el-table-column label="分值"
@ -179,17 +179,17 @@ interface SpanMethodProps {
// //
const span = ({ row, column, rowIndex, columnIndex }: SpanMethodProps) => { const span = ({ row, column, rowIndex, columnIndex }: SpanMethodProps) => {
if (columnIndex === 0) { if (columnIndex === 0) {
if (rowIndex === 1) { if (!rowIndex) {
return { return {
rowspan: 5, rowspan: 5,
colspan: 1, colspan: 1,
}; };
} else if (rowIndex === 6 || rowIndex === 9) { } else if (rowIndex === 5 || rowIndex === 8) {
return { return {
rowspan: 3, rowspan: 3,
colspan: 1, colspan: 1,
}; };
} else if (!rowIndex || rowIndex === 12 || rowIndex === 13 || rowIndex === 14) { } else if (rowIndex === 11 || rowIndex === 12 || rowIndex === 13) {
return { return {
rowspan: 1, rowspan: 1,
colspan: 1, colspan: 1,

@ -236,11 +236,13 @@ const addRecord = async (data: Record<string, any>) => {
if (e.stRecordId != 204 && e.stRecordId != 230 && e.stRecordId != 231) { if (e.stRecordId != 204 && e.stRecordId != 230 && e.stRecordId != 231) {
const len = e?.recordChildren?.length - 1; const len = e?.recordChildren?.length - 1;
e?.recordChildren.map((n, j) => { e?.recordChildren.map((n, j) => {
j !== len && rule.push(handleId(n.id, n.subjectId, j ? e.ruleTwo : e.ruleOne, preIds + ',' + e.stRecordId + ',' + n.id, 5)); const val = j ? e.ruleTwo : e.ruleOne;
j !== len && val && rule.push(handleId(n.id, n.subjectId, val, preIds + ',' + e.stRecordId + ',' + n.id, 5));
}); });
} }
// //
e.mateRejectedStandardIdentity && rule.push(handleId(274, e.subjectId, e.mateRejectedStandardIdentity, preIds + ',' + e.stRecordId + ',274', 1)); e.hitTheBlacklist && rule.push(handleId(1245, 324, e.hitTheBlacklist, preIds + ',' + e.stRecordId + ',1245', 1));
e.mateRejectedStandardIdentity && rule.push(handleId(274, 324, e.mateRejectedStandardIdentity, preIds + ',' + e.stRecordId + ',274', 1));
}); });
await addOperation({ await addOperation({

@ -134,8 +134,6 @@ import Risk3 from './Risk3.vue';
const router = useRouter(); const router = useRouter();
const route = useRoute(); const route = useRoute();
const projectId = +Cookies.get('sand-projectId');
const levelId = +Cookies.get('sand-level');
const curTab = ref<string>('tab1'); const curTab = ref<string>('tab1');
const list = ref<Array<Record<string, any>>>([]); const list = ref<Array<Record<string, any>>>([]);
const list1 = ref<Array<Record<string, any>>>([]); const list1 = ref<Array<Record<string, any>>>([]);

@ -848,14 +848,15 @@ const submit = async () => {
}); });
} }
// debugger; // debugger;
await saveCredit({ const res = await saveCredit({
...form, ...form,
dimensionOfTheRatingTableList: param, dimensionOfTheRatingTableList: param,
}); });
addRecord(); addRecord();
ElMessage.success('提交成功!'); ElMessage.success('提交成功!');
emit('getList', 1); res.id && router.push(`/product/strategy?i=${route.query.i}&role=${route.query.role}&creditId=${res.id}`);
emit('getList');
id.value && getDetail(); id.value && getDetail();
}; };
// //

@ -31,6 +31,7 @@ export default defineConfig(({ mode }) => {
}, },
build: { build: {
chunkSizeWarningLimit: 1500, chunkSizeWarningLimit: 1500,
productionSourceMap: false,
}, },
plugins: [ plugins: [
vue(), vue(),

Loading…
Cancel
Save