银行要素回显等

V0.1
yujialong 8 months ago
parent a898ec4a9b
commit 50a5452471
  1. 4
      .env
  2. 1
      src/api/bank.ts
  3. 8
      src/layout/components/AppHeader.vue
  4. 1
      src/store/useProduct.ts
  5. 9
      src/utils/common.ts
  6. 168
      src/views/product/bank/Add.vue
  7. 7
      src/views/product/bank/Approve.vue
  8. 288
      src/views/product/bank/Config.vue
  9. 9
      src/views/product/bank/Detail.vue
  10. 92
      src/views/product/bank/Info.vue
  11. 20
      src/views/product/fund/Add.vue
  12. 2
      src/views/product/strategy/CardList.vue
  13. 3
      src/views/product/strategy/Credit.vue

@ -2,8 +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.217: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_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

@ -11,6 +11,7 @@ export const personalRiskControlConfigurationField = async (): Promise<any> =>
(await axios.post('/product/riskControlConfigurationField/personalRiskControlConfigurationField')).data; (await axios.post('/product/riskControlConfigurationField/personalRiskControlConfigurationField')).data;
export const productElement = async (id: number): Promise<any> => (await axios.post(`/product/product/bank/products/productElement?id=${id}`)).data; export const productElement = async (id: number): Promise<any> => (await axios.post(`/product/product/bank/products/productElement?id=${id}`)).data;
export const findById = async (id: number): Promise<any> => (await axios.post(`/product/product/bank/products/findById?id=${id}`)).data; export const findById = async (id: number): Promise<any> => (await axios.post(`/product/product/bank/products/findById?id=${id}`)).data;
export const elementDetail = async (id: number): Promise<any> => (await axios.post(`/product/product/bank/products/elementDetail?id=${id}`)).data;
export const save = async (data: Record<string, any>): Promise<any> => (await axios.post(`/product/product/bank/products/save`, data)).data; export const save = async (data: Record<string, any>): Promise<any> => (await axios.post(`/product/product/bank/products/save`, data)).data;
export const riskSave = async (data: Record<string, any>): Promise<any> => (await axios.post(`/product/managerOfRiskControl/bankRiskControlAllocation/save`, data)).data; export const riskSave = async (data: Record<string, any>): Promise<any> => (await axios.post(`/product/managerOfRiskControl/bankRiskControlAllocation/save`, data)).data;
export const riskUpdate = async (data: Record<string, any>): Promise<any> => (await axios.post(`/product/managerOfRiskControl/bankRiskControlAllocation/update`, data)).data; export const riskUpdate = async (data: Record<string, any>): Promise<any> => (await axios.post(`/product/managerOfRiskControl/bankRiskControlAllocation/update`, data)).data;

@ -11,14 +11,6 @@
alt="" alt=""
@click="logout" /> @click="logout" />
</el-tooltip> </el-tooltip>
<el-tooltip effect="light"
content="返回关卡"
placement="bottom">
<img class="mr-3 cursor-pointer"
src="@/assets/images/2.png"
alt=""
@click="toLevel" />
</el-tooltip>
<el-tooltip effect="light" <el-tooltip effect="light"
content="返回选择角色" content="返回选择角色"
placement="bottom"> placement="bottom">

@ -1,5 +1,4 @@
import { reactive, readonly } from 'vue'; import { reactive, readonly } from 'vue';
import Cookies from 'js-cookie';
export interface Product { export interface Product {
status?: Record<string, any>; status?: Record<string, any>;

@ -1,5 +1,6 @@
import Cookies from 'js-cookie'; import Cookies from 'js-cookie';
import { getCurrentTime } from '@/api/system'; import { getCurrentTime } from '@/api/system';
import { getTheCurrentUserName } from '@/api/config';
const UJCMS_LOCALE = 'ujcms-locale'; const UJCMS_LOCALE = 'ujcms-locale';
const UJCMS_SITE_ID = 'ujcms-site-id'; const UJCMS_SITE_ID = 'ujcms-site-id';
@ -254,6 +255,14 @@ export const getNow = (): Promise<any> => {
}); });
}; };
/**
*
*/
export const getUsername = async (): string => {
const res = await getTheCurrentUserName();
return res.userName;
};
export const whethers = [ export const whethers = [
{ {
id: 795, id: 795,

@ -80,14 +80,14 @@
<div class="radio-wrap"> <div class="radio-wrap">
<span class="label">1年龄</span> <span class="label">1年龄</span>
<span class="whether">是否启用</span> <span class="whether">是否启用</span>
<el-radio-group v-model="form.age"> <el-radio-group v-model="form.ageSelectedState">
<el-radio v-for="(item, i) in whethers" <el-radio v-for="(item, i) in whethers"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.id">{{ item.name }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<div v-if="form.age === 795" <div v-if="form.ageSelectedState === 795"
class="num-inputs ml-7"> class="num-inputs ml-7">
<el-input placeholder="最小年龄" <el-input placeholder="最小年龄"
v-model.number="form.minimumAge"></el-input> v-model.number="form.minimumAge"></el-input>
@ -100,14 +100,14 @@
<div class="radio-wrap"> <div class="radio-wrap">
<span class="label">2学历要求</span> <span class="label">2学历要求</span>
<span class="whether">是否启用</span> <span class="whether">是否启用</span>
<el-radio-group v-model="form.edu"> <el-radio-group v-model="form.degreeSelectedStatus">
<el-radio v-for="(item, i) in whethers" <el-radio v-for="(item, i) in whethers"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.id">{{ item.name }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<el-checkbox-group v-if="form.edu === 795" <el-checkbox-group v-if="form.degreeSelectedStatus === 795"
class="mt-2 ml-5" class="mt-2 ml-5"
v-model="form.educationalRequirements"> v-model="form.educationalRequirements">
<el-checkbox v-for="(item, i) in config.find((e) => e.name === '个人产品-贷款对象')?.recordChildren[1]?.recordChildren[1]?.subject?.itemList" <el-checkbox v-for="(item, i) in config.find((e) => e.name === '个人产品-贷款对象')?.recordChildren[1]?.recordChildren[1]?.subject?.itemList"
@ -120,14 +120,14 @@
<div class="radio-wrap"> <div class="radio-wrap">
<span class="label">3工作年限</span> <span class="label">3工作年限</span>
<span class="whether">是否启用</span> <span class="whether">是否启用</span>
<el-radio-group v-model="form.curWL"> <el-radio-group v-model="form.workingLifeSelectedState">
<el-radio v-for="(item, i) in whethers" <el-radio v-for="(item, i) in whethers"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.id">{{ item.name }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<el-checkbox-group v-if="form.curWL === 795" <el-checkbox-group v-if="form.workingLifeSelectedState === 795"
class="mt-2 ml-5" class="mt-2 ml-5"
v-model="form.currentWorkingLife"> v-model="form.currentWorkingLife">
<el-checkbox v-for="(item, i) in config.find((e) => e.name === '个人产品-贷款对象')?.recordChildren[2]?.recordChildren[1]?.subject?.itemList" <el-checkbox v-for="(item, i) in config.find((e) => e.name === '个人产品-贷款对象')?.recordChildren[2]?.recordChildren[1]?.subject?.itemList"
@ -188,9 +188,9 @@
:rules="[ :rules="[
{ {
asyncValidator: async (rule, value, callback) => { asyncValidator: async (rule, value, callback) => {
if (form.bankGuarantee3 === 795 && !value.find(e => e > 22 && e < 33)) { if (form.mortgageSelectedStatus === 795 && !value.find(e => e > 22 && e < 33)) {
callback('请选择抵押物') callback('请选择抵押物')
} else if (form.bankGuarantee4 === 795 && !value.find(e => e > 32 && e < 38)) { } else if (form.hypothecatedSelectedStatus === 795 && !value.find(e => e > 32 && e < 38)) {
callback('请选择质押贷') callback('请选择质押贷')
} else { } else {
callback() callback()
@ -202,7 +202,7 @@
<p class="field-name">选择本产品的担保种类</p> <p class="field-name">选择本产品的担保种类</p>
<div class="radio-wrap"> <div class="radio-wrap">
<span class="label">信用贷</span> <span class="label">信用贷</span>
<el-radio-group v-model="form.bankGuarantee1"> <el-radio-group v-model="form.creditSelectedStatus">
<el-radio v-for="(item, i) in whethers" <el-radio v-for="(item, i) in whethers"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.id">{{ item.name }}</el-radio>
@ -211,7 +211,7 @@
<div class="radio-wrap my-1"> <div class="radio-wrap my-1">
<span class="label">保证贷</span> <span class="label">保证贷</span>
<el-radio-group v-model="form.bankGuarantee2"> <el-radio-group v-model="form.guaranteeLoanSelectedStatus">
<el-radio v-for="(item, i) in whethers" <el-radio v-for="(item, i) in whethers"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.id">{{ item.name }}</el-radio>
@ -220,13 +220,13 @@
<div class="radio-wrap"> <div class="radio-wrap">
<span class="label">抵押贷</span> <span class="label">抵押贷</span>
<el-radio-group v-model="form.bankGuarantee3"> <el-radio-group v-model="form.mortgageSelectedStatus">
<el-radio v-for="(item, i) in whethers" <el-radio v-for="(item, i) in whethers"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.id">{{ item.name }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<el-checkbox-group v-if="form.bankGuarantee3 === 795" <el-checkbox-group v-if="form.mortgageSelectedStatus === 795"
v-model="form.bankGuaranteeTypeIds"> v-model="form.bankGuaranteeTypeIds">
<el-checkbox v-for="(child, j) in config.find((e) => e.name === '担保方式')?.recordChildren[2]?.recordChildren[0]?.subject?.itemList" <el-checkbox v-for="(child, j) in config.find((e) => e.name === '担保方式')?.recordChildren[2]?.recordChildren[0]?.subject?.itemList"
:key="j" :key="j"
@ -235,13 +235,13 @@
<div class="radio-wrap mt-1"> <div class="radio-wrap mt-1">
<span class="label">质押贷</span> <span class="label">质押贷</span>
<el-radio-group v-model="form.bankGuarantee4"> <el-radio-group v-model="form.hypothecatedSelectedStatus">
<el-radio v-for="(item, i) in whethers" <el-radio v-for="(item, i) in whethers"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.id">{{ item.name }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<el-checkbox-group v-if="form.bankGuarantee4 === 795" <el-checkbox-group v-if="form.hypothecatedSelectedStatus === 795"
v-model="form.bankGuaranteeTypeIds"> v-model="form.bankGuaranteeTypeIds">
<el-checkbox v-for="(child, j) in config.find((e) => e.name === '担保方式')?.recordChildren[3]?.recordChildren[0]?.subject?.itemList" <el-checkbox v-for="(child, j) in config.find((e) => e.name === '担保方式')?.recordChildren[3]?.recordChildren[0]?.subject?.itemList"
:key="j" :key="j"
@ -327,7 +327,7 @@
<el-tab-pane v-if="id" <el-tab-pane v-if="id"
label="产品风控" label="产品风控"
name="tab2"> name="tab2">
<info /> <info v-model:tab="curTab" />
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
@ -337,11 +337,10 @@
import { ref, reactive, computed, watch, onMounted, defineEmits } from 'vue'; import { ref, reactive, computed, watch, onMounted, defineEmits } from 'vue';
import { ElMessage } from 'element-plus'; import { ElMessage } from 'element-plus';
import type { TabsPaneContext, FormInstance, FormRules } from 'element-plus'; import type { TabsPaneContext, FormInstance, FormRules } from 'element-plus';
import { findById, save, update } from '@/api/bank'; import { findById, save, update, elementDetail } from '@/api/bank';
import { getProcessInformationBasedOnRoles, addOperation } from '@/api/judgment'; import { getProcessInformationBasedOnRoles, addOperation } from '@/api/judgment';
import { getTheCurrentUserName } from '@/api/config';
import { useRouter, useRoute } from 'vue-router'; import { useRouter, useRoute } from 'vue-router';
import { handleId, isIllegalNum, getIds, whethers } from '@/utils/common'; import { handleId, isIllegalNum, getIds, whethers, getUsername } from '@/utils/common';
import { getStatus } from '@/store/useProduct'; import { getStatus } from '@/store/useProduct';
import Info from './Info.vue'; import Info from './Info.vue';
import Cookies from 'js-cookie'; import Cookies from 'js-cookie';
@ -352,30 +351,30 @@ interface RuleForm {
productName: string; productName: string;
productCurrency: number; productCurrency: number;
bankGuaranteeTypeIds: number[]; bankGuaranteeTypeIds: number[];
currentWorkingLife?: any; currentWorkingLife?: number[];
edu: number | string; degreeSelectedStatus?: number;
educationalRequirements?: any; educationalRequirements?: number[];
loanCeiling: any; loanCeiling?: string;
loanPurpose?: number; loanPurpose?: number;
maximumAge: any; maximumAge?: number;
maximumAnnualInterestRate: any; maximumAnnualInterestRate?: string;
maximumTermOfLoan: any; maximumTermOfLoan?: string;
age: number | string; ageSelectedState?: number;
curWL: number | string; workingLifeSelectedState?: number;
minimumAge: any; minimumAge?: number;
minimumAprOnLoan: any; minimumAprOnLoan?: string;
minimumLoan: any; minimumLoan?: string;
minimumTermOfLoan: any; minimumTermOfLoan?: string;
modeRepayment?: any; modeRepayment?: number[];
otherPurposesOfLoan: string; otherPurposesOfLoan: string;
productObject: any; productObject?: number;
productType: number; productType: number;
providentFundAndSocialSecurity: number | string; providentFundAndSocialSecurity: number | string;
whetherToSupportEarlyRepayment?: any; whetherToSupportEarlyRepayment: boolean;
bankGuarantee1?: number; creditSelectedStatus?: number;
bankGuarantee2?: number; guaranteeLoanSelectedStatus?: number;
bankGuarantee3?: number; mortgageSelectedStatus?: number;
bankGuarantee4?: number; hypothecatedSelectedStatus?: number;
} }
const router = useRouter(); const router = useRouter();
@ -387,22 +386,22 @@ const info = ref<Record<string, any>>(null);
const formRef = ref<FormInstance>(); const formRef = ref<FormInstance>();
const userName = ref<string>(); const userName = ref<string>();
const form = reactive<RuleForm>({ let form = reactive<RuleForm>({
...getIds(), ...getIds(),
productDefinition: '', productDefinition: '',
productName: '', productName: '',
productCurrency: 1, productCurrency: 1,
bankGuaranteeTypeIds: [], bankGuaranteeTypeIds: [],
currentWorkingLife: [], currentWorkingLife: [],
edu: '', degreeSelectedStatus: '',
educationalRequirements: [], educationalRequirements: [],
loanCeiling: '', loanCeiling: '',
loanPurpose: '', loanPurpose: '',
maximumAge: '', maximumAge: '',
maximumAnnualInterestRate: '', maximumAnnualInterestRate: '',
maximumTermOfLoan: '', maximumTermOfLoan: '',
age: '', ageSelectedState: '',
curWL: '', workingLifeSelectedState: '',
minimumAge: '', minimumAge: '',
minimumAprOnLoan: '', minimumAprOnLoan: '',
minimumLoan: '', minimumLoan: '',
@ -413,10 +412,10 @@ const form = reactive<RuleForm>({
productType: computed(() => +route.query.type), productType: computed(() => +route.query.type),
providentFundAndSocialSecurity: '', providentFundAndSocialSecurity: '',
whetherToSupportEarlyRepayment: false, whetherToSupportEarlyRepayment: false,
bankGuarantee1: '', creditSelectedStatus: '',
bankGuarantee2: '', guaranteeLoanSelectedStatus: '',
bankGuarantee3: '', mortgageSelectedStatus: '',
bankGuarantee4: '', hypothecatedSelectedStatus: '',
}); });
const rules = reactive<FormRules<RuleForm>>({ const rules = reactive<FormRules<RuleForm>>({
productDefinition: [{ required: true, message: '请输入产品定义', trigger: 'blur' }], productDefinition: [{ required: true, message: '请输入产品定义', trigger: 'blur' }],
@ -436,25 +435,39 @@ const getConfig = async () => {
}; };
// //
const getDetail = async () => { const getDetail = async () => {
userName.value = await getUsername();
info.value = null; info.value = null;
if (id.value) { if (id.value) {
try { try {
// name
const { data } = await findById(id.value); const { data } = await findById(id.value);
info.value = data; info.value = data;
// id
const res = await elementDetail(id.value);
if (res) {
const e = res.data.bankProducts;
e.currentWorkingLife = e.currentWorkingLife.split(',').map((n) => +n);
e.educationalRequirements = e.educationalRequirements.split(',').map((n) => +n);
e.modeRepayment = e.modeRepayment.split(',').map((n) => +n);
e.whetherToSupportEarlyRepayment = !!e.whetherToSupportEarlyRepayment;
e.bankGuaranteeTypeIds = [];
if (e.bankGuaranteeAllocationList) {
e.bankGuaranteeAllocationList.map((n) => {
n.guaranteeTypeId && e.bankGuaranteeTypeIds.push(n.guaranteeTypeId);
});
}
form = Object.assign(form, e);
}
} finally { } finally {
} }
} }
}; };
//
const getName = async () => {
const res = await getTheCurrentUserName();
userName.value = res.userName;
};
watch( watch(
() => route.query, () => route.query,
() => { () => {
getDetail(); getDetail();
getName();
}, },
{ {
immediate: true, immediate: true,
@ -472,7 +485,7 @@ const submit = async (formEl: FormInstance | undefined) => {
if (param.productType) { if (param.productType) {
if (!param.productObject) return ElMessage.error('请选择企业类型'); if (!param.productObject) return ElMessage.error('请选择企业类型');
} }
if ((!param.productType && param.age === 795) || param.productType) { if ((!param.productType && param.ageSelectedState === 795) || param.productType) {
if (!param.minimumAge) return ElMessage.error('请输入最小年龄'); if (!param.minimumAge) return ElMessage.error('请输入最小年龄');
if (!param.maximumAge) return ElMessage.error('请输入最大年龄'); if (!param.maximumAge) return ElMessage.error('请输入最大年龄');
if (isIllegalNum(param.minimumAge) || isIllegalNum(param.maximumAge)) return ElMessage.error('请输入合理的年龄'); if (isIllegalNum(param.minimumAge) || isIllegalNum(param.maximumAge)) return ElMessage.error('请输入合理的年龄');
@ -481,8 +494,8 @@ const submit = async (formEl: FormInstance | undefined) => {
// //
if (!param.productType) { if (!param.productType) {
if (param.edu === 795 && !param.educationalRequirements.length) return ElMessage.error('请选择学历要求'); if (param.degreeSelectedStatus === 795 && !param.educationalRequirements.length) return ElMessage.error('请选择学历要求');
if (param.curWL === 795 && !param.currentWorkingLife.length) return ElMessage.error('请选择工作年限'); if (param.workingLifeSelectedState === 795 && !param.currentWorkingLife.length) return ElMessage.error('请选择工作年限');
} }
if (isIllegalNum(param.minimumLoan) || isIllegalNum(param.loanCeiling) || +param.minimumLoan > +param.loanCeiling) return ElMessage.error('请输入合理的贷款额度'); if (isIllegalNum(param.minimumLoan) || isIllegalNum(param.loanCeiling) || +param.minimumLoan > +param.loanCeiling) return ElMessage.error('请输入合理的贷款额度');
if (isIllegalNum(param.minimumAprOnLoan) || isIllegalNum(param.maximumAnnualInterestRate) || +param.minimumAprOnLoan > +param.maximumAnnualInterestRate) if (isIllegalNum(param.minimumAprOnLoan) || isIllegalNum(param.maximumAnnualInterestRate) || +param.minimumAprOnLoan > +param.maximumAnnualInterestRate)
@ -492,43 +505,30 @@ const submit = async (formEl: FormInstance | undefined) => {
param.currentWorkingLife = param.currentWorkingLife.join(); param.currentWorkingLife = param.currentWorkingLife.join();
param.educationalRequirements = param.educationalRequirements.join(); param.educationalRequirements = param.educationalRequirements.join();
param.modeRepayment = param.modeRepayment.join(); param.modeRepayment = param.modeRepayment.join();
// param.providentFundAndSocialSecurity = param.providentFundAndSocialSecurity === 795 ? 1 : '';
param.whetherToSupportEarlyRepayment = param.whetherToSupportEarlyRepayment ? 58 : ''; param.whetherToSupportEarlyRepayment = param.whetherToSupportEarlyRepayment ? 58 : '';
// //
const graIds = []; const graIds = [];
// //
param.bankGuarantee1 === 795 && param.creditSelectedStatus === 795 &&
graIds.push({ graIds.push({
bankGuaranteeTypeId: '', bankGuaranteeTypeId: '',
pid: 108, pid: 108,
}); });
// //
param.bankGuarantee2 === 795 && param.guaranteeLoanSelectedStatus === 795 &&
graIds.push({ graIds.push({
bankGuaranteeTypeId: '', bankGuaranteeTypeId: '',
pid: 109, pid: 109,
}); });
//
param.bankGuarantee3 === 795 &&
graIds.push({
bankGuaranteeTypeId: 110,
pid: '',
});
//
param.bankGuarantee4 === 795 &&
graIds.push({
bankGuaranteeTypeId: 111,
pid: '',
});
param.bankGuaranteeTypeIds.forEach((e: number) => { param.bankGuaranteeTypeIds.forEach((e: number) => {
// //
if (param.bankGuarantee3 === 795 && e > 22 && e < 33) { if (param.mortgageSelectedStatus === 795 && e > 22 && e < 33) {
graIds.push({ graIds.push({
bankGuaranteeTypeId: e, bankGuaranteeTypeId: e,
pid: 110, pid: 110,
}); });
} else if (param.bankGuarantee4 === 795 && e > 32 && e < 38) { } else if (param.hypothecatedSelectedStatus === 795 && e > 32 && e < 38) {
// //
graIds.push({ graIds.push({
bankGuaranteeTypeId: e, bankGuaranteeTypeId: e,
@ -578,14 +578,14 @@ const addRecord = async (data: Record<string, any>) => {
); );
} else { } else {
// //
data.age && lcRule.push(handleId(1235, 324, data.age, preIds + ',51,1234,1235', 1)); data.ageSelectedState && lcRule.push(handleId(1235, 324, data.ageSelectedState, preIds + ',51,1234,1235', 1));
data.age === 795 && lcRule.push(handleId(1236, 41, data.minimumAge + '~' + data.maximumAge, preIds + ',51,1234,1236', 5)); data.ageSelectedState === 795 && lcRule.push(handleId(1236, 41, data.minimumAge + '~' + data.maximumAge, preIds + ',51,1234,1236', 5));
data.edu && lcRule.push(handleId(1238, 324, data.edu, preIds + ',51,1237,1238', 1)); data.degreeSelectedStatus && lcRule.push(handleId(1238, 324, data.degreeSelectedStatus, preIds + ',51,1237,1238', 1));
data.edu === 795 && lcRule.push(handleId(1239, 42, data.educationalRequirements, preIds + ',51,1237,1239', 1)); data.degreeSelectedStatus === 795 && lcRule.push(handleId(1239, 42, data.educationalRequirements, preIds + ',51,1237,1239', 1));
data.curWL && lcRule.push(handleId(1241, 324, data.curWL, preIds + ',51,1240,1241', 1)); data.workingLifeSelectedState && lcRule.push(handleId(1241, 324, data.workingLifeSelectedState, preIds + ',51,1240,1241', 1));
data.curWL === 795 && lcRule.push(handleId(1242, 43, data.currentWorkingLife, preIds + ',51,1240,1242', 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)); // 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(handleId(1316, 328, data.loanPurpose, preIds + ',52,1316', 1));
@ -593,12 +593,12 @@ const addRecord = async (data: Record<string, any>) => {
} }
// //
data.bankGuarantee1 && lcRule.push(handleId(108, 324, data.bankGuarantee1, preIds + ',53,108', 1)); data.creditSelectedStatus && lcRule.push(handleId(108, 324, data.creditSelectedStatus, preIds + ',53,108', 1));
data.bankGuarantee2 && lcRule.push(handleId(109, 324, data.bankGuarantee2, preIds + ',53,109', 1)); data.guaranteeLoanSelectedStatus && lcRule.push(handleId(109, 324, data.guaranteeLoanSelectedStatus, preIds + ',53,109', 1));
data.bankGuarantee3 && lcRule.push(handleId(1277, 324, data.bankGuarantee3, preIds + ',53,110,1277', 1)); data.mortgageSelectedStatus && lcRule.push(handleId(1277, 324, data.mortgageSelectedStatus, preIds + ',53,110,1277', 1));
data.bankGuarantee4 && lcRule.push(handleId(1277, 324, data.bankGuarantee4, preIds + ',53,111,1277', 1)); data.hypothecatedSelectedStatus && lcRule.push(handleId(1277, 324, data.hypothecatedSelectedStatus, preIds + ',53,111,1277', 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.mortgageSelectedStatus === 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(1276, 14, data.bankGuaranteeTypeIds.filter((e: number) => e > 32 && e < 38).join(), preIds + ',53,111,1276', 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( lcRule.push(
handleId(54, 15, data.minimumLoan + '~' + data.loanCeiling, preIds + ',54', 5), handleId(54, 15, data.minimumLoan + '~' + data.loanCeiling, preIds + ',54', 5),

@ -58,9 +58,9 @@ import { ElMessage } from 'element-plus';
import type { TabsPaneContext, FormInstance, FormRules } from 'element-plus'; import type { TabsPaneContext, FormInstance, FormRules } from 'element-plus';
import { useRouter, useRoute } from 'vue-router'; import { useRouter, useRoute } from 'vue-router';
import Info from './Info.vue'; import Info from './Info.vue';
import { handleId, getIds, getNow } from '@/utils/common'; import { handleId, getIds, getNow, getUsername } from '@/utils/common';
import { examineAndApprove } from '@/api/bank'; import { examineAndApprove } from '@/api/bank';
import { getTheCurrentUserName, getOperationTime } from '@/api/config'; import { getOperationTime } from '@/api/config';
import { getProcessInformationBasedOnRoles, addOperation } from '@/api/judgment'; import { getProcessInformationBasedOnRoles, addOperation } from '@/api/judgment';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import Cookies from 'js-cookie'; import Cookies from 'js-cookie';
@ -107,8 +107,7 @@ const getDate = async () => {
}; };
// //
const sign = async () => { const sign = async () => {
const res = await getTheCurrentUserName(); signed.value = await getUsername();
signed.value = res.userName;
}; };
// //
const addRecord = async (data: Record<string, any>) => { const addRecord = async (data: Record<string, any>) => {

@ -4,6 +4,20 @@
@tab-click="tabChange"> @tab-click="tabChange">
<el-tab-pane label="配置风控" <el-tab-pane label="配置风控"
name="tab1"> name="tab1">
<div v-if="info.approvalTime"
class="audit">
<div class="line">
<span class="field">审批意见</span>
<span class="status">审批打回</span>
</div>
<div class="line">
<span class="field">意见描述</span>
{{ info.opinionDescription }}
</div>
<p class="mb-2 text-sm text-[#333] text-right">审查日期{{ info.approvalTime }}</p>
<p class="mb-2 text-sm text-[#333] text-right">审查员{{ userName }}</p>
</div>
<el-form ref="formRef" <el-form ref="formRef"
:model="form" :model="form"
label-width="120px" label-width="120px"
@ -46,10 +60,6 @@
</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]?.recordChildren[0]?.subject?.itemList"
:key="i"
v-model="form.sendingAccount"
:label="item.itemId">{{ item.options }}</el-radio> -->
<el-checkbox-group v-model="form.sendingAccount"> <el-checkbox-group v-model="form.sendingAccount">
<el-checkbox v-for="(item, i) in config[0]?.recordChildren[1]?.recordChildren[0]?.subject?.itemList" <el-checkbox v-for="(item, i) in config[0]?.recordChildren[1]?.recordChildren[0]?.subject?.itemList"
@ -103,14 +113,14 @@
<p class="field-name mt-5">企业材料</p> <p class="field-name mt-5">企业材料</p>
<div> <div>
<div class="radio-wrap flex-col items-start mb-2"> <div class="radio-wrap flex-col items-start mb-2">
<el-radio-group v-model="form.enterpriseMaterialCheck"> <el-radio-group v-model="form.enterpriseMaterialSelectedStatus">
<el-radio v-for="(item, i) in whethers" <el-radio v-for="(item, i) in whethers"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.id">{{ item.name }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<template v-if="form.enterpriseMaterialCheck === 797"> <template v-if="form.enterpriseMaterialSelectedStatus === 797">
<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.enterpriseMaterial"> v-model="form.enterpriseMaterial">
@ -123,13 +133,13 @@
<p class="field-name mt-5">抵押物</p> <p class="field-name mt-5">抵押物</p>
<div> <div>
<div class="radio-wrap flex-col items-start mb-2"> <div class="radio-wrap flex-col items-start mb-2">
<el-radio-group v-model="form.collateralCheck"> <el-radio-group v-model="form.mortgagedPropertySelectedStatus">
<el-radio v-for="(item, i) in whethers" <el-radio v-for="(item, i) in whethers"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.id">{{ item.name }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<template v-if="form.collateralCheck === 797"> <template v-if="form.mortgagedPropertySelectedStatus === 797">
<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.collateral"> v-model="form.collateral">
@ -188,14 +198,14 @@
<p class="field-name mt-5">补充材料</p> <p class="field-name mt-5">补充材料</p>
<div> <div>
<div class="radio-wrap flex-col items-start mb-1"> <div class="radio-wrap flex-col items-start mb-1">
<el-radio-group v-model="form.supplementaryMaterialsCheck"> <el-radio-group v-model="form.supplementMaterialSelectedStatus">
<el-radio v-for="(item, i) in whethers" <el-radio v-for="(item, i) in whethers"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.id">{{ item.name }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<template v-if="form.supplementaryMaterialsCheck === 797"> <template v-if="form.supplementMaterialSelectedStatus === 797">
<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.supplementaryMaterials" v-model="form.supplementaryMaterials"
@ -216,13 +226,13 @@
<div> <div>
<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.runBatchObjectSelectedStatus">
<el-radio v-for="(item, i) in config[2]?.recordChildren[0]?.recordChildren[1]?.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 === 803"> <template v-if="form.runBatchObjectSelectedStatus === 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">
@ -238,13 +248,13 @@
<div> <div>
<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.accessPolicySelectedStatus">
<el-radio v-for="(item, i) in config[2]?.recordChildren[1]?.recordChildren[1]?.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 === 803"> <template v-if="form.accessPolicySelectedStatus === 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">
@ -257,19 +267,19 @@
</el-form-item> </el-form-item>
<el-form-item label="信用评分策略" <el-form-item label="信用评分策略"
label-width="130px" label-width="130px"
prop="personalCreditScoringStrategiesCheck"> prop="personalCreditScoringStrategySelectedStatus">
<div class="flex-1"> <div class="flex-1">
<div class="flex items-center mb-3"> <div class="flex items-center mb-3">
<div class="radio-wrap"> <div class="radio-wrap">
<span class="label">个人信用评分策略</span> <span class="label">个人信用评分策略</span>
<el-radio-group v-model="form.personalCreditScoringStrategiesCheck"> <el-radio-group v-model="form.personalCreditScoringStrategySelectedStatus">
<el-radio v-for="(item, i) in whethers" <el-radio v-for="(item, i) in whethers"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.id">{{ item.name }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<el-select v-if="form.personalCreditScoringStrategiesCheck === 797" <el-select v-if="form.personalCreditScoringStrategySelectedStatus === 797"
class="ml-5" class="ml-5"
v-model="form.personalCreditScoringStrategies" v-model="form.personalCreditScoringStrategies"
placeholder="请选择"> placeholder="请选择">
@ -281,14 +291,14 @@
<div class="flex items-center"> <div class="flex items-center">
<div class="radio-wrap"> <div class="radio-wrap">
<span class="label">企业信用评分策略</span> <span class="label">企业信用评分策略</span>
<el-radio-group v-model="form.corporateCreditScoringStrategiesCheck"> <el-radio-group v-model="form.enterpriseCreditScoringStrategySelectedStatus">
<el-radio v-for="(item, i) in whethers" <el-radio v-for="(item, i) in whethers"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.id">{{ item.name }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<el-select v-if="form.corporateCreditScoringStrategiesCheck === 797" <el-select v-if="form.enterpriseCreditScoringStrategySelectedStatus === 797"
class="ml-5" class="ml-5"
v-model="form.corporateCreditScoringStrategies" v-model="form.corporateCreditScoringStrategies"
placeholder="请选择"> placeholder="请选择">
@ -304,13 +314,13 @@
<div class="flex items-center h-[34px]"> <div class="flex items-center h-[34px]">
<el-radio-group v-if="config.length" <el-radio-group v-if="config.length"
class="mr-10" class="mr-10"
v-model="form.riskDegreeStrategyCheck"> v-model="form.riskDegreePolicySelectedStatus">
<el-radio v-for="(item, i) in config[2]?.recordChildren[3]?.recordChildren[1]?.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>
<el-checkbox-group v-if="form.riskDegreeStrategyCheck === 803 && config.length" <el-checkbox-group v-if="form.riskDegreePolicySelectedStatus === 803 && config.length"
style="font-size: 14px" style="font-size: 14px"
v-model="form.riskDegreeStrategy"> v-model="form.riskDegreeStrategy">
<el-checkbox v-for="(item, i) in config[2]?.recordChildren[3]?.subject?.itemList" <el-checkbox v-for="(item, i) in config[2]?.recordChildren[3]?.subject?.itemList"
@ -322,19 +332,19 @@
</el-form-item> </el-form-item>
<el-form-item label="利率定价模型" <el-form-item label="利率定价模型"
label-width="130px" label-width="130px"
prop="interestRatePricingModelCheck"> prop="individualCreditModelSelectedStatus">
<div class="flex-1"> <div class="flex-1">
<div class="flex items-center mb-3"> <div class="flex items-center mb-3">
<div class="radio-wrap"> <div class="radio-wrap">
<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.individualCreditModelSelectedStatus">
<el-radio v-for="(item, i) in config[2]?.recordChildren[3]?.recordChildren[1]?.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>
</div> </div>
<el-select v-if="form.interestRatePricingModelCheck === 803 && config.length" <el-select v-if="form.individualCreditModelSelectedStatus === 803 && config.length"
class="ml-5" class="ml-5"
v-model="form.interestRatePricingModel" v-model="form.interestRatePricingModel"
placeholder="请选择"> placeholder="请选择">
@ -436,13 +446,13 @@
prop="contractMaterials"> prop="contractMaterials">
<div class="flex items-center"> <div class="flex items-center">
<div class="radio-wrap mr-5"> <div class="radio-wrap mr-5">
<el-radio-group v-model="form.contractMaterialsCheck"> <el-radio-group v-model="form.contractSupplyMaterialsSelectedStatus">
<el-radio v-for="(item, i) in whethers" <el-radio v-for="(item, i) in whethers"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.id">{{ item.name }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<el-radio v-if="form.contractMaterialsCheck === 797" <el-radio v-if="form.contractSupplyMaterialsSelectedStatus === 797"
v-model="form.contractMaterials" v-model="form.contractMaterials"
:label="info.productType ? 265 : 118">抵押物所有权证明</el-radio> :label="info.productType ? 265 : 118">抵押物所有权证明</el-radio>
</div> </div>
@ -452,14 +462,14 @@
<div class="flex items-center mb-3"> <div class="flex items-center mb-3">
<div class="radio-wrap"> <div class="radio-wrap">
<span class="label">借贷合同</span> <span class="label">借贷合同</span>
<el-radio-group v-model="form.loanContractCheck"> <el-radio-group v-model="form.loanContractSelectedStatus">
<el-radio v-for="(item, i) in whethers" <el-radio v-for="(item, i) in whethers"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.id">{{ item.name }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<el-select v-if="form.loanContractCheck === 797 && config.length" <el-select v-if="form.loanContractSelectedStatus === 797 && config.length"
class="ml-5" class="ml-5"
v-model="form.loanContract" v-model="form.loanContract"
placeholder="请选择"> placeholder="请选择">
@ -472,14 +482,14 @@
<div class="flex items-center mb-3"> <div class="flex items-center mb-3">
<div class="radio-wrap"> <div class="radio-wrap">
<span class="label">抵押合同</span> <span class="label">抵押合同</span>
<el-radio-group v-model="form.mortgageContractCheck"> <el-radio-group v-model="form.mortgageContractSelectedStatus">
<el-radio v-for="(item, i) in whethers" <el-radio v-for="(item, i) in whethers"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.id">{{ item.name }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<el-select v-if="form.mortgageContractCheck === 797 && config.length" <el-select v-if="form.mortgageContractSelectedStatus === 797 && config.length"
class="ml-5" class="ml-5"
v-model="form.mortgageContract" v-model="form.mortgageContract"
placeholder="请选择"> placeholder="请选择">
@ -492,13 +502,13 @@
<div class="flex items-center mb-3"> <div class="flex items-center mb-3">
<div class="radio-wrap"> <div class="radio-wrap">
<span class="label">质押合同</span> <span class="label">质押合同</span>
<el-radio-group v-model="form.pledgeContractCheck"> <el-radio-group v-model="form.pledgeContractSelectedStatus">
<el-radio v-for="(item, i) in whethers" <el-radio v-for="(item, i) in whethers"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.id">{{ item.name }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<el-select v-if="form.pledgeContractCheck === 797 && config.length" <el-select v-if="form.pledgeContractSelectedStatus === 797 && config.length"
class="ml-5" class="ml-5"
v-model="form.pledgeContract" v-model="form.pledgeContract"
placeholder="请选择"> placeholder="请选择">
@ -511,13 +521,13 @@
<div class="flex items-center"> <div class="flex items-center">
<div class="radio-wrap"> <div class="radio-wrap">
<span class="label">担保合同</span> <span class="label">担保合同</span>
<el-radio-group v-model="form.guaranteeContractCheck"> <el-radio-group v-model="form.guaranteeContractSelectedStatus">
<el-radio v-for="(item, i) in whethers" <el-radio v-for="(item, i) in whethers"
:key="i" :key="i"
:label="item.id">{{ item.name }}</el-radio> :label="item.id">{{ item.name }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<el-select v-if="form.guaranteeContractCheck === 797 && config.length" <el-select v-if="form.guaranteeContractSelectedStatus === 797 && config.length"
class="ml-5" class="ml-5"
v-model="form.guaranteeContract" v-model="form.guaranteeContract"
placeholder="请选择"> placeholder="请选择">
@ -537,13 +547,13 @@
<div> <div>
<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.postLoanManagementSelectPolicySelectStatus">
<el-radio v-for="(item, i) in config[2]?.recordChildren[0]?.recordChildren[1]?.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.postLoanManagementSelectPolicySelectStatus === 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]?.recordChildren)" <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">
@ -579,13 +589,14 @@ import { findById, riskSave, riskUpdate } from '@/api/bank';
import { getProcessInformationBasedOnRoles, addOperation } from '@/api/judgment'; import { getProcessInformationBasedOnRoles, addOperation } from '@/api/judgment';
import { listCredit } from '@/api/model'; import { listCredit } from '@/api/model';
import { useRouter, useRoute } from 'vue-router'; import { useRouter, useRoute } from 'vue-router';
import { handleId, getIds } from '@/utils/common'; import { handleId, getIds, getUsername } from '@/utils/common';
import Info from './Info.vue'; import Info from './Info.vue';
import Cookies from 'js-cookie'; import Cookies from 'js-cookie';
import { getStatus } from '@/store/useProduct';
const emit = defineEmits(['getList']); const emit = defineEmits(['getList']);
interface RuleForm { interface RuleForm {
accessStrategyCheck?: number; accessPolicySelectedStatus?: number;
accessStrategy: any; accessStrategy: any;
accountMaterialsCheck?: number; accountMaterialsCheck?: number;
accountMaterials: any; accountMaterials: any;
@ -595,55 +606,52 @@ interface RuleForm {
borrowerMaterial: any; borrowerMaterial: any;
businessMaterialsCheck?: number; businessMaterialsCheck?: number;
businessMaterials: any; businessMaterials: any;
collateralCheck?: number; mortgagedPropertySelectedStatus?: number;
collateral: any; collateral: any;
contractMaterialsCheck?: number; contractSupplyMaterialsSelectedStatus?: number;
contractMaterials: any; contractMaterials: any;
corporateCreditScoringStrategiesCheck?: number; enterpriseCreditScoringStrategySelectedStatus?: number;
corporateCreditScoringStrategies: any; corporateCreditScoringStrategies: any;
corporateInterestRateModel: any; corporateInterestRateModel: any;
dueDiligenceContent: any; dueDiligenceContent: any;
dueDiligenceMode: number[]; dueDiligenceMode: number[];
enterpriseMaterialCheck?: number; enterpriseMaterialSelectedStatus?: number;
enterpriseMaterial: any; enterpriseMaterial: any;
enterpriseQuotaModel: any; enterpriseQuotaModel: any;
guaranteeContractCheck?: number; guaranteeContractSelectedStatus?: number;
guaranteeContract: any; guaranteeContract: any;
individualInterestRateModel?: number; individualInterestRateModel?: number;
interestRatePricingModelCheck?: number; individualCreditModelSelectedStatus?: number;
interestRatePricingModel: any; interestRatePricingModel: any;
loanApplicationMethod: any; loanApplicationMethod: any;
loanContractCheck?: number; loanContractSelectedStatus?: number;
loanContract: any; loanContract: any;
mateMaterialCheck?: number; mateMaterialCheck?: number;
mateMaterial: any; mateMaterial: any;
materialsForLoanApproval: any; materialsForLoanApproval: any;
mortgageContractCheck?: number; mortgageContractSelectedStatus?: number;
mortgageContract: any; mortgageContract: any;
personalCreditScoringStrategiesCheck?: number; personalCreditScoringStrategySelectedStatus?: number;
personalCreditScoringStrategies: any; personalCreditScoringStrategies: any;
pledgeContractCheck?: number; pledgeContractSelectedStatus?: number;
pledgeContract: any; pledgeContract: any;
reviewApproveContent: number[]; reviewApproveContent: number[];
reviewContent: number[]; reviewContent: number[];
reviewSignature: any; reviewSignature: any;
riskDegreeStrategyCheck?: number; riskDegreePolicySelectedStatus?: number;
riskDegreeStrategy: any; riskDegreeStrategy: any;
runBatchObjectCheck?: number; runBatchObjectSelectedStatus?: number;
runBatchObject: any; runBatchObject: any;
selectionStrategyCheck?: number; postLoanManagementSelectPolicySelectStatus?: number;
selectionStrategy: any; selectionStrategy: any;
sendingAccountCheck?: number; sendingAccountCheck?: number;
sendingAccount: number[]; sendingAccount: number[];
supplementaryMaterialsCheck?: number; supplementMaterialSelectedStatus?: number;
supplementaryMaterials: any; supplementaryMaterials: any;
} }
const router = useRouter(); const router = useRouter();
const route = useRoute(); const route = useRoute();
const id = computed(() => +route.query.id); const id = computed(() => +route.query.id);
const projectId = +Cookies.get('sand-projectId');
const levelId = +Cookies.get('sand-level');
const curTab = ref<string>('tab1'); const curTab = ref<string>('tab1');
const config = ref<any[]>([]); const config = ref<any[]>([]);
const credits = ref<Record<string, any>[]>([]); const credits = ref<Record<string, any>[]>([]);
@ -659,9 +667,10 @@ const whethers = ref<Record<string, any>>([
}, },
]); ]);
const formRef = ref<FormInstance>(); const formRef = ref<FormInstance>();
const userName = ref<string>();
const form = reactive<RuleForm>({ const form = reactive<RuleForm>({
...getIds(), ...getIds(),
accessStrategyCheck: '', accessPolicySelectedStatus: '',
accessStrategy: [], accessStrategy: [],
accountMaterialsCheck: '', accountMaterialsCheck: '',
accountMaterials: [], accountMaterials: [],
@ -671,47 +680,47 @@ const form = reactive<RuleForm>({
borrowerMaterial: [], borrowerMaterial: [],
businessMaterialsCheck: '', businessMaterialsCheck: '',
businessMaterials: [], businessMaterials: [],
collateralCheck: '', mortgagedPropertySelectedStatus: '',
collateral: [], collateral: [],
contractMaterialsCheck: '', contractSupplyMaterialsSelectedStatus: '',
contractMaterials: '', contractMaterials: '',
corporateCreditScoringStrategiesCheck: '', enterpriseCreditScoringStrategySelectedStatus: '',
corporateCreditScoringStrategies: '', corporateCreditScoringStrategies: '',
corporateInterestRateModel: [], corporateInterestRateModel: [],
dueDiligenceContent: [], dueDiligenceContent: [],
dueDiligenceMode: [], dueDiligenceMode: [],
enterpriseMaterialCheck: '', enterpriseMaterialSelectedStatus: '',
enterpriseMaterial: [], enterpriseMaterial: [],
enterpriseQuotaModel: '', enterpriseQuotaModel: '',
guaranteeContractCheck: '', guaranteeContractSelectedStatus: '',
guaranteeContract: '', guaranteeContract: '',
individualInterestRateModel: '', individualInterestRateModel: '',
interestRatePricingModelCheck: '', individualCreditModelSelectedStatus: '',
interestRatePricingModel: '', interestRatePricingModel: '',
loanApplicationMethod: [], loanApplicationMethod: [],
loanContractCheck: '', loanContractSelectedStatus: '',
loanContract: '', loanContract: '',
mateMaterialCheck: '', mateMaterialCheck: '',
mateMaterial: [], mateMaterial: [],
materialsForLoanApproval: [], materialsForLoanApproval: [],
mortgageContractCheck: '', mortgageContractSelectedStatus: '',
mortgageContract: '', mortgageContract: '',
personalCreditScoringStrategiesCheck: '', personalCreditScoringStrategySelectedStatus: '',
personalCreditScoringStrategies: '', personalCreditScoringStrategies: '',
pledgeContractCheck: '', pledgeContractSelectedStatus: '',
pledgeContract: '', pledgeContract: '',
reviewApproveContent: [], reviewApproveContent: [],
reviewContent: [], reviewContent: [],
reviewSignature: '', reviewSignature: '',
riskDegreeStrategyCheck: '', riskDegreePolicySelectedStatus: '',
riskDegreeStrategy: [], riskDegreeStrategy: [],
runBatchObjectCheck: '', runBatchObjectSelectedStatus: '',
runBatchObject: [], runBatchObject: [],
selectionStrategyCheck: '', postLoanManagementSelectPolicySelectStatus: '',
selectionStrategy: [], selectionStrategy: [],
sendingAccountCheck: '', sendingAccountCheck: '',
sendingAccount: [], sendingAccount: [],
supplementaryMaterialsCheck: '', supplementMaterialSelectedStatus: '',
supplementaryMaterials: [], supplementaryMaterials: [],
}); });
@ -725,15 +734,41 @@ const getConfig = async () => {
config.value = process; config.value = process;
const { data } = await listCredit({ const { data } = await listCredit({
checkpointId: levelId, ...getIds(),
projectId,
pageNum: 1, pageNum: 1,
pageSize: 1000, pageSize: 1000,
}); });
credits.value = data; credits.value = [
{
scoringObject: 0,
scoreCardName: '个人信用评分策略',
},
{
scoringObject: 0,
scoreCardName: '个人评分-评级贷',
},
{
scoringObject: 0,
scoreCardName: '个人标准评分卡',
},
{
scoringObject: 1,
scoreCardName: '企业标准评分卡',
},
{
scoringObject: 1,
scoreCardName: '大型企业评分卡',
},
{
scoringObject: 1,
scoreCardName: '小型企业评分卡',
},
...data,
];
}; };
// //
const getDetail = async () => { const getDetail = async () => {
userName.value = await getUsername();
if (id.value) { if (id.value) {
try { try {
const { data } = await findById(id.value); const { data } = await findById(id.value);
@ -772,56 +807,56 @@ const submit = async (formEl: FormInstance | undefined) => {
if (isEnterprise) { if (isEnterprise) {
// //
if (param.enterpriseMaterialCheck === 797 && !param.enterpriseMaterial.length) return ElMessage.error('请选择需要提供的企业材料'); if (param.enterpriseMaterialSelectedStatus === 797 && !param.enterpriseMaterial.length) return ElMessage.error('请选择需要提供的企业材料');
if (param.collateralCheck === 797 && !param.collateral.length) return ElMessage.error('请选择需要提供的抵押物材料'); if (param.mortgagedPropertySelectedStatus === 797 && !param.collateral.length) return ElMessage.error('请选择需要提供的抵押物材料');
} else { } else {
// //
if (param.mateMaterialCheck === 797 && !param.mateMaterial.length) return ElMessage.error('请选择需要提供的配偶材料'); if (param.mateMaterialCheck === 797 && !param.mateMaterial.length) return ElMessage.error('请选择需要提供的配偶材料');
if (param.businessMaterialsCheck === 797 && !param.businessMaterials.length) return ElMessage.error('请选择需要提供的经营类材料'); if (param.businessMaterialsCheck === 797 && !param.businessMaterials.length) return ElMessage.error('请选择需要提供的经营类材料');
} }
if (param.supplementaryMaterialsCheck === 797 && !param.supplementaryMaterials.length) return ElMessage.error('请选择需要提供的补充材料'); if (param.supplementMaterialSelectedStatus === 797 && !param.supplementaryMaterials.length) return ElMessage.error('请选择需要提供的补充材料');
if (param.runBatchObjectCheck === 803 && !param.runBatchObject.length) return ElMessage.error('请选择需要跑批的对象'); if (param.runBatchObjectSelectedStatus === 803 && !param.runBatchObject.length) return ElMessage.error('请选择需要跑批的对象');
if (param.accessStrategyCheck === 803 && !param.accessStrategy.length) return ElMessage.error('请选择需要跑批的准入策略'); if (param.accessPolicySelectedStatus === 803 && !param.accessStrategy.length) return ElMessage.error('请选择需要跑批的准入策略');
if (!param.dueDiligenceMode.length) return ElMessage.error('请选择尽调方式'); if (!param.dueDiligenceMode.length) return ElMessage.error('请选择尽调方式');
if (!param.dueDiligenceContent.length) return ElMessage.error('请选择尽调内容'); if (!param.dueDiligenceContent.length) return ElMessage.error('请选择尽调内容');
if (!param.reviewContent.length) return ElMessage.error('请选择审查材料'); if (!param.reviewContent.length) return ElMessage.error('请选择审查材料');
if (!param.reviewSignature) return ElMessage.error('请选择签字表单'); if (!param.reviewSignature) return ElMessage.error('请选择签字表单');
if (!param.reviewApproveContent.length) return ElMessage.error('请选择审批材料'); if (!param.reviewApproveContent.length) return ElMessage.error('请选择审批材料');
if (!param.approvalSignature) return ElMessage.error('请选择签字表单'); if (!param.approvalSignature) return ElMessage.error('请选择签字表单');
if (param.selectionStrategyCheck === 803 && !param.selectionStrategy.length) return ElMessage.error('请选择策略'); if (param.postLoanManagementSelectPolicySelectStatus === 803 && !param.selectionStrategy.length) return ElMessage.error('请选择策略');
param.accessStrategy = param.accessStrategyCheck === 803 ? param.accessStrategy.join() : ''; param.accessStrategy = param.accessPolicySelectedStatus === 803 ? param.accessStrategy.join() : '';
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() : '';
param.sendingAccount = param.sendingAccountCheck === 801 ? param.sendingAccount.join() : ''; param.sendingAccount = param.sendingAccountCheck === 801 ? param.sendingAccount.join() : '';
// //
param.collateral = param.collateralCheck === 797 ? param.collateral.join() : ''; param.collateral = param.mortgagedPropertySelectedStatus === 797 ? param.collateral.join() : '';
param.enterpriseMaterial = param.enterpriseMaterialCheck === 797 ? param.enterpriseMaterial.join() : ''; param.enterpriseMaterial = param.enterpriseMaterialSelectedStatus === 797 ? param.enterpriseMaterial.join() : '';
param.corporateInterestRateModel = param.corporateInterestRateModel.join(); param.corporateInterestRateModel = param.corporateInterestRateModel.join();
param.materialsForLoanApproval = param.materialsForLoanApproval.join(); param.materialsForLoanApproval = param.materialsForLoanApproval.join();
// //
param.businessMaterials = param.businessMaterialsCheck === 797 ? param.businessMaterials.join() : ''; param.businessMaterials = param.businessMaterialsCheck === 797 ? param.businessMaterials.join() : '';
param.mateMaterial = param.mateMaterialCheck === 797 ? param.mateMaterial.join() : ''; param.mateMaterial = param.mateMaterialCheck === 797 ? param.mateMaterial.join() : '';
if (param.personalCreditScoringStrategiesCheck !== 797) param.personalCreditScoringStrategies = ''; if (param.personalCreditScoringStrategySelectedStatus !== 797) param.personalCreditScoringStrategies = '';
if (param.corporateCreditScoringStrategiesCheck !== 797) param.corporateCreditScoringStrategies = ''; if (param.enterpriseCreditScoringStrategySelectedStatus !== 797) param.corporateCreditScoringStrategies = '';
if (param.interestRatePricingModelCheck !== 803) param.interestRatePricingModel = ''; if (param.individualCreditModelSelectedStatus !== 803) param.interestRatePricingModel = '';
if (param.loanContractCheck !== 797) param.loanContract = ''; if (param.loanContractSelectedStatus !== 797) param.loanContract = '';
if (param.mortgageContractCheck !== 797) param.mortgageContract = ''; if (param.mortgageContractSelectedStatus !== 797) param.mortgageContract = '';
if (param.pledgeContractCheck !== 797) param.pledgeContract = ''; if (param.pledgeContractSelectedStatus !== 797) param.pledgeContract = '';
if (param.guaranteeContractCheck !== 797) param.guaranteeContract = ''; if (param.guaranteeContractSelectedStatus !== 797) param.guaranteeContract = '';
param.dueDiligenceMode = param.dueDiligenceMode.join(); param.dueDiligenceMode = param.dueDiligenceMode.join();
param.dueDiligenceContent = param.dueDiligenceContent.join(); param.dueDiligenceContent = param.dueDiligenceContent.join();
param.reviewContent = param.reviewContent.join(); param.reviewContent = param.reviewContent.join();
param.reviewApproveContent = param.reviewApproveContent.join(); param.reviewApproveContent = param.reviewApproveContent.join();
param.loanApplicationMethod = param.loanApplicationMethod.join(); param.loanApplicationMethod = param.loanApplicationMethod.join();
param.riskDegreeStrategy = param.riskDegreeStrategyCheck === 803 ? param.riskDegreeStrategy.join() : ''; param.riskDegreeStrategy = param.riskDegreePolicySelectedStatus === 803 ? param.riskDegreeStrategy.join() : '';
param.runBatchObject = param.runBatchObjectCheck === 803 ? param.runBatchObject.join() : ''; param.runBatchObject = param.runBatchObjectSelectedStatus === 803 ? param.runBatchObject.join() : '';
param.selectionStrategy = param.selectionStrategyCheck === 803 ? param.selectionStrategy.join() : ''; param.selectionStrategy = param.postLoanManagementSelectPolicySelectStatus === 803 ? param.selectionStrategy.join() : '';
param.supplementaryMaterials = param.supplementaryMaterialsCheck === 797 ? param.supplementaryMaterials.join() : ''; param.supplementaryMaterials = param.supplementMaterialSelectedStatus === 797 ? param.supplementaryMaterials.join() : '';
if (param.contractMaterialsCheck !== 797) param.contractMaterials = ''; if (param.contractSupplyMaterialsSelectedStatus !== 797) param.contractMaterials = '';
if (info.value.riskControlDetails) { if (info.value.riskControlDetails) {
param.id = info.value.riskControlDetails.id; param.id = info.value.riskControlDetails.id;
await riskUpdate(param); await riskUpdate(param);
@ -854,7 +889,7 @@ const addRecord = async (data: Record<string, any>) => {
data.sendingAccount && lcRule.push(handleId(1255, 45, data.sendingAccount, preIds + ',112,121,1255', 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(1294, 325, data.enterpriseMaterialCheck, preIds + ',113,124,1294', 1)); data.enterpriseMaterialSelectedStatus && lcRule.push(handleId(1294, 325, data.enterpriseMaterialSelectedStatus, preIds + ',113,124,1294', 1));
data.enterpriseMaterial && lcRule.push(handleId(1258, 48, data.enterpriseMaterial, preIds + ',113,124,1258', 1)); data.enterpriseMaterial && lcRule.push(handleId(1258, 48, data.enterpriseMaterial, preIds + ',113,124,1258', 1));
form.borrowerMaterialCheck && lcRule.push(handleId(1294, 325, form.borrowerMaterialCheck, preIds + ',113,123,1294', 1)); form.borrowerMaterialCheck && lcRule.push(handleId(1294, 325, form.borrowerMaterialCheck, preIds + ',113,123,1294', 1));
@ -864,27 +899,27 @@ const addRecord = async (data: Record<string, any>) => {
}); });
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.collateralCheck && lcRule.push(handleId(1294, 325, data.collateralCheck, preIds + ',113,125,1294', 1)); data.mortgagedPropertySelectedStatus && lcRule.push(handleId(1294, 325, data.mortgagedPropertySelectedStatus, preIds + ',113,125,1294', 1));
data.collateral && lcRule.push(handleId(1259, 49, data.collateral, preIds + ',113,125,1259', 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.supplementMaterialSelectedStatus && lcRule.push(handleId(1294, 325, data.supplementMaterialSelectedStatus, preIds + ',113,126,1294', 1));
data.supplementaryMaterials && lcRule.push(handleId(1260, 50, data.supplementaryMaterials, preIds + ',113,126,1260', 1)); data.supplementaryMaterials && lcRule.push(handleId(1260, 50, data.supplementaryMaterials, preIds + ',113,126,1260', 1));
data.runBatchObjectCheck && lcRule.push(handleId(1302, 327, data.runBatchObjectCheck, preIds + ',114,127,1302', 1)); data.runBatchObjectSelectedStatus && lcRule.push(handleId(1302, 327, data.runBatchObjectSelectedStatus, preIds + ',114,127,1302', 1));
data.runBatchObject && lcRule.push(handleId(1261, 51, data.runBatchObject, preIds + ',114,127,1261', 1)); data.runBatchObject && lcRule.push(handleId(1261, 51, data.runBatchObject, preIds + ',114,127,1261', 1));
data.accessStrategyCheck && lcRule.push(handleId(1302, 327, data.accessStrategyCheck, preIds + ',114,128,1302', 1)); data.accessPolicySelectedStatus && lcRule.push(handleId(1302, 327, data.accessPolicySelectedStatus, preIds + ',114,128,1302', 1));
data.accessStrategy && lcRule.push(handleId(1262, 52, data.accessStrategy, preIds + ',114,128,1262', 1)); data.accessStrategy && lcRule.push(handleId(1262, 52, data.accessStrategy, preIds + ',114,128,1262', 1));
data.personalCreditScoringStrategiesCheck && lcRule.push(handleId(1306, 325, data.personalCreditScoringStrategiesCheck, preIds + ',114,129,1046,1306', 1)); data.personalCreditScoringStrategySelectedStatus && lcRule.push(handleId(1306, 325, data.personalCreditScoringStrategySelectedStatus, preIds + ',114,129,1046,1306', 1));
data.personalCreditScoringStrategies && lcRule.push(handleId(1307, 329, data.personalCreditScoringStrategies, preIds + ',114,129,1046,1307', 3)); data.personalCreditScoringStrategies && lcRule.push(handleId(1307, 329, data.personalCreditScoringStrategies, preIds + ',114,129,1046,1307', 3));
data.corporateCreditScoringStrategiesCheck && lcRule.push(handleId(1306, 325, data.corporateCreditScoringStrategiesCheck, preIds + ',114,129,1047,1306', 1)); data.enterpriseCreditScoringStrategySelectedStatus && lcRule.push(handleId(1306, 325, data.enterpriseCreditScoringStrategySelectedStatus, preIds + ',114,129,1047,1306', 1));
data.corporateCreditScoringStrategies && lcRule.push(handleId(1307, 329, data.corporateCreditScoringStrategies, preIds + ',114,129,1047,1307', 3)); data.corporateCreditScoringStrategies && lcRule.push(handleId(1307, 329, data.corporateCreditScoringStrategies, preIds + ',114,129,1047,1307', 3));
data.riskDegreeStrategyCheck && lcRule.push(handleId(1302, 327, data.riskDegreeStrategyCheck, preIds + ',114,130,1302', 1)); data.riskDegreePolicySelectedStatus && lcRule.push(handleId(1302, 327, data.riskDegreePolicySelectedStatus, preIds + ',114,130,1302', 1));
data.riskDegreeStrategy && lcRule.push(handleId(1301, 54, data.riskDegreeStrategy, preIds + ',114,130,1301', 1)); data.riskDegreeStrategy && lcRule.push(handleId(1301, 54, data.riskDegreeStrategy, preIds + ',114,130,1301', 1));
data.interestRatePricingModelCheck && lcRule.push(handleId(1302, 327, data.interestRatePricingModelCheck, preIds + ',114,131,305,1302', 1)); data.individualCreditModelSelectedStatus && lcRule.push(handleId(1302, 327, data.individualCreditModelSelectedStatus, preIds + ',114,131,305,1302', 1));
data.interestRatePricingModel && lcRule.push(handleId(1314, 55, data.interestRatePricingModel, preIds + ',114,131,305,1314', 1)); data.interestRatePricingModel && lcRule.push(handleId(1314, 55, data.interestRatePricingModel, preIds + ',114,131,305,1314', 1));
data.individualInterestRateModel && lcRule.push(handleId(304, 327, data.individualInterestRateModel, preIds + ',114,131,304', 1)); data.individualInterestRateModel && lcRule.push(handleId(304, 327, data.individualInterestRateModel, preIds + ',114,131,304', 1));
@ -895,22 +930,22 @@ 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(1264, 325, data.contractMaterialsCheck, preIds + ',118,138,1264', 1)); data.contractSupplyMaterialsSelectedStatus && lcRule.push(handleId(1264, 325, data.contractSupplyMaterialsSelectedStatus, preIds + ',118,138,1264', 1));
data.contractMaterials && lcRule.push(handleId(1263, 62, data.contractMaterials, preIds + ',118,138,1263', 1)); data.contractMaterials && lcRule.push(handleId(1263, 62, data.contractMaterials, preIds + ',118,138,1263', 1));
data.loanContractCheck && lcRule.push(handleId(1273, 325, data.loanContractCheck, preIds + ',118,139,306,1273', 1)); data.loanContractSelectedStatus && lcRule.push(handleId(1273, 325, data.loanContractSelectedStatus, preIds + ',118,139,306,1273', 1));
data.loanContract && lcRule.push(handleId(1269, 63, data.loanContract, preIds + ',118,139,306,1269', 1)); data.loanContract && lcRule.push(handleId(1269, 63, data.loanContract, preIds + ',118,139,306,1269', 1));
data.mortgageContractCheck && lcRule.push(handleId(1273, 325, data.mortgageContractCheck, preIds + ',118,139,307,1273', 1)); data.mortgageContractSelectedStatus && lcRule.push(handleId(1273, 325, data.mortgageContractSelectedStatus, preIds + ',118,139,307,1273', 1));
data.mortgageContract && lcRule.push(handleId(1270, 142, data.mortgageContract, preIds + ',118,139,307,1270', 1)); data.mortgageContract && lcRule.push(handleId(1270, 142, data.mortgageContract, preIds + ',118,139,307,1270', 1));
data.pledgeContractCheck && lcRule.push(handleId(1273, 325, data.pledgeContractCheck, preIds + ',118,139,308,1273', 1)); data.pledgeContractSelectedStatus && lcRule.push(handleId(1273, 325, data.pledgeContractSelectedStatus, preIds + ',118,139,308,1273', 1));
data.pledgeContract && lcRule.push(handleId(1271, 143, data.pledgeContract, preIds + ',118,139,308,1271', 1)); data.pledgeContract && lcRule.push(handleId(1271, 143, data.pledgeContract, preIds + ',118,139,308,1271', 1));
data.guaranteeContractCheck && lcRule.push(handleId(1273, 325, data.guaranteeContractCheck, preIds + ',118,139,309,1273', 1)); data.guaranteeContractSelectedStatus && lcRule.push(handleId(1273, 325, data.guaranteeContractSelectedStatus, preIds + ',118,139,309,1273', 1));
data.guaranteeContract && lcRule.push(handleId(1272, 144, data.guaranteeContract, preIds + ',118,139,309,1272', 1)); data.guaranteeContract && lcRule.push(handleId(1272, 144, data.guaranteeContract, preIds + ',118,139,309,1272', 1));
data.selectionStrategyCheck && lcRule.push(handleId(1302, 327, data.selectionStrategyCheck, preIds + ',119,140,1302', 1)); data.postLoanManagementSelectPolicySelectStatus && lcRule.push(handleId(1302, 327, data.postLoanManagementSelectPolicySelectStatus, preIds + ',119,140,1302', 1));
data.selectionStrategy && lcRule.push(handleId(1315, 64, data.selectionStrategy, preIds + ',119,140,1315', 1)); data.selectionStrategy && lcRule.push(handleId(1315, 64, data.selectionStrategy, preIds + ',119,140,1315', 1));
} else { } else {
data.accountMaterialsCheck && lcRule.push(handleId(1294, 325, data.accountMaterialsCheck, preIds + ',72,75,1294', 1)); data.accountMaterialsCheck && lcRule.push(handleId(1294, 325, data.accountMaterialsCheck, preIds + ',72,75,1294', 1));
@ -933,24 +968,24 @@ const addRecord = async (data: Record<string, any>) => {
data.businessMaterialsCheck && lcRule.push(handleId(1294, 325, data.businessMaterialsCheck, preIds + ',73,80,1294', 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.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.supplementMaterialSelectedStatus && lcRule.push(handleId(1294, 325, data.supplementMaterialSelectedStatus, preIds + ',73,81,1294', 1));
data.supplementaryMaterials && lcRule.push(handleId(1293, 26, data.supplementaryMaterials, preIds + ',73,81,1293', 1)); data.supplementaryMaterials && lcRule.push(handleId(1293, 26, data.supplementaryMaterials, preIds + ',73,81,1293', 1));
data.runBatchObjectCheck && lcRule.push(handleId(1302, 327, data.runBatchObjectCheck, preIds + ',74,82,1302', 1)); data.runBatchObjectSelectedStatus && lcRule.push(handleId(1302, 327, data.runBatchObjectSelectedStatus, preIds + ',74,82,1302', 1));
data.runBatchObject && lcRule.push(handleId(1297, 27, data.runBatchObject, preIds + ',74,82,1297', 1)); data.runBatchObject && lcRule.push(handleId(1297, 27, data.runBatchObject, preIds + ',74,82,1297', 1));
data.accessStrategyCheck && lcRule.push(handleId(1302, 327, data.accessStrategyCheck, preIds + ',74,83,1302', 1)); data.accessPolicySelectedStatus && lcRule.push(handleId(1302, 327, data.accessPolicySelectedStatus, preIds + ',74,83,1302', 1));
data.accessStrategy && lcRule.push(handleId(1298, 28, data.accessStrategy, preIds + ',74,83,1298', 1)); data.accessStrategy && lcRule.push(handleId(1298, 28, data.accessStrategy, preIds + ',74,83,1298', 1));
data.personalCreditScoringStrategiesCheck && lcRule.push(handleId(1306, 325, data.personalCreditScoringStrategiesCheck, preIds + ',74,84,1304,1306', 1)); data.personalCreditScoringStrategySelectedStatus && lcRule.push(handleId(1306, 325, data.personalCreditScoringStrategySelectedStatus, preIds + ',74,84,1304,1306', 1));
data.personalCreditScoringStrategies && lcRule.push(handleId(1307, 329, data.personalCreditScoringStrategies, preIds + ',74,84,1304,1307', 3)); data.personalCreditScoringStrategies && lcRule.push(handleId(1307, 329, data.personalCreditScoringStrategies, preIds + ',74,84,1304,1307', 3));
data.corporateCreditScoringStrategiesCheck && lcRule.push(handleId(1306, 325, data.corporateCreditScoringStrategiesCheck, preIds + ',74,84,1305,1306', 1)); data.enterpriseCreditScoringStrategySelectedStatus && lcRule.push(handleId(1306, 325, data.enterpriseCreditScoringStrategySelectedStatus, preIds + ',74,84,1305,1306', 1));
data.corporateCreditScoringStrategies && lcRule.push(handleId(1307, 329, data.corporateCreditScoringStrategies, preIds + ',74,84,1305,1307', 3)); data.corporateCreditScoringStrategies && lcRule.push(handleId(1307, 329, data.corporateCreditScoringStrategies, preIds + ',74,84,1305,1307', 3));
data.riskDegreeStrategyCheck && lcRule.push(handleId(1302, 327, data.riskDegreeStrategyCheck, preIds + ',74,85,1302', 1)); data.riskDegreePolicySelectedStatus && lcRule.push(handleId(1302, 327, data.riskDegreePolicySelectedStatus, preIds + ',74,85,1302', 1));
data.riskDegreeStrategy && lcRule.push(handleId(1300, 30, data.riskDegreeStrategy, preIds + ',74,85,1300', 1)); data.riskDegreeStrategy && lcRule.push(handleId(1300, 30, data.riskDegreeStrategy, preIds + ',74,85,1300', 1));
data.interestRatePricingModelCheck && lcRule.push(handleId(1302, 327, data.interestRatePricingModelCheck, preIds + ',74,86,1309,1302', 1)); data.individualCreditModelSelectedStatus && lcRule.push(handleId(1302, 327, data.individualCreditModelSelectedStatus, preIds + ',74,86,1309,1302', 1));
data.interestRatePricingModel && lcRule.push(handleId(1311, 141, data.interestRatePricingModel, preIds + ',74,86,1309,1311', 1)); data.interestRatePricingModel && lcRule.push(handleId(1311, 141, data.interestRatePricingModel, preIds + ',74,86,1309,1311', 1));
data.individualInterestRateModel && lcRule.push(handleId(1308, 327, data.individualInterestRateModel, preIds + ',74,86,1308', 1)); data.individualInterestRateModel && lcRule.push(handleId(1308, 327, data.individualInterestRateModel, preIds + ',74,86,1308', 1));
@ -961,22 +996,22 @@ 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(1248, 325, data.contractMaterialsCheck, preIds + ',96,97,1248', 1)); data.contractSupplyMaterialsSelectedStatus && lcRule.push(handleId(1248, 325, data.contractSupplyMaterialsSelectedStatus, preIds + ',96,97,1248', 1));
data.contractMaterials && lcRule.push(handleId(1247, 38, data.contractMaterials, preIds + ',96,97,1247', 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.loanContractSelectedStatus && lcRule.push(handleId(1253, 325, data.loanContractSelectedStatus, preIds + ',96,98,310,1253', 1));
data.loanContract && lcRule.push(handleId(1249, 39, data.loanContract, preIds + ',96,98,310,1249', 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.mortgageContractSelectedStatus && lcRule.push(handleId(1253, 325, data.mortgageContractSelectedStatus, preIds + ',96,98,311,1253', 1));
data.mortgageContract && lcRule.push(handleId(1250, 145, data.mortgageContract, preIds + ',96,98,311,1250', 1)); data.mortgageContract && lcRule.push(handleId(1250, 145, data.mortgageContract, preIds + ',96,98,311,1250', 1));
data.pledgeContractCheck && lcRule.push(handleId(1253, 325, data.pledgeContractCheck, preIds + ',96,98,312,1253', 1)); data.pledgeContractSelectedStatus && lcRule.push(handleId(1253, 325, data.pledgeContractSelectedStatus, preIds + ',96,98,312,1253', 1));
data.pledgeContract && lcRule.push(handleId(1251, 146, data.pledgeContract, preIds + ',96,98,312,1251', 1)); data.pledgeContract && lcRule.push(handleId(1251, 146, data.pledgeContract, preIds + ',96,98,312,1251', 1));
data.guaranteeContractCheck && lcRule.push(handleId(1253, 325, data.guaranteeContractCheck, preIds + ',96,98,313,1253', 1)); data.guaranteeContractSelectedStatus && lcRule.push(handleId(1253, 325, data.guaranteeContractSelectedStatus, preIds + ',96,98,313,1253', 1));
data.guaranteeContract && lcRule.push(handleId(1252, 147, data.guaranteeContract, preIds + ',96,98,313,1252', 1)); data.guaranteeContract && lcRule.push(handleId(1252, 147, data.guaranteeContract, preIds + ',96,98,313,1252', 1));
data.selectionStrategyCheck && lcRule.push(handleId(283, 327, data.selectionStrategyCheck, preIds + ',99,283', 1)); data.postLoanManagementSelectPolicySelectStatus && lcRule.push(handleId(283, 327, data.postLoanManagementSelectPolicySelectStatus, preIds + ',99,283', 1));
data.selectionStrategy && lcRule.push(handleId(281, 40, data.selectionStrategy, preIds + ',99,281', 1)); data.selectionStrategy && lcRule.push(handleId(281, 40, data.selectionStrategy, preIds + ',99,281', 1));
} }
@ -990,4 +1025,13 @@ const addRecord = async (data: Record<string, any>) => {
<style lang="scss" scoped> <style lang="scss" scoped>
@import url(../../../styles/form.scss); @import url(../../../styles/form.scss);
.audit {
@apply py-5 px-4 mb-[30px] bg-[#f9fafc] rounded-[10px];
.line {
@apply mb-[18px] text-sm leading-[1.6];
}
.field {
@apply text-sm font-semibold;
}
}
</style> </style>

@ -1,9 +1,9 @@
<template> <template>
<div> <div>
<el-tabs v-model="curTab"> <el-tabs v-model="curTab">
<el-tab-pane label="产品要素" <el-tab-pane :label="status"
name="tab1"> name="tab1">
<info /> <info @updateStatus="updateStatus" />
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
@ -14,6 +14,11 @@ import { ref } from 'vue';
import Info from './Info.vue'; import Info from './Info.vue';
const curTab = ref<string>('tab1'); const curTab = ref<string>('tab1');
const status = ref<string>('产品要素');
const updateStatus = (val: string) => {
status.value = val;
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>

@ -1,5 +1,5 @@
<template> <template>
<div v-if="info.approvalTime" <div v-if="showAudit"
class="audit"> class="audit">
<div class="line"> <div class="line">
<span class="field">审批意见</span> <span class="field">审批意见</span>
@ -10,17 +10,18 @@
{{ info.opinionDescription }} {{ info.opinionDescription }}
</div> </div>
<p class="mb-2 text-sm text-[#333] text-right">审查日期{{ info.approvalTime }}</p> <p class="mb-2 text-sm text-[#333] text-right">审查日期{{ info.approvalTime }}</p>
<p class="mb-2 text-sm text-[#333] text-right">审查员{{ userName }}</p> <p class="mb-2 text-sm text-[#333] text-right">审查员{{ info.approvalTime && userName }}</p>
</div> </div>
<div class="info my-2"> <div class="info my-2">
<h6 class="step-name">产品定义</h6> <template v-if="route.params.action !== 'add'">
<p class="text">{{ info.productDefinition }}</p> <h6 class="step-name">{{ route.params.action !== 'config' ? '一、' : '' }}产品定义</h6>
<h6 class="step-name mt-5">产品要素</h6> <p class="text">{{ info.productDefinition }}</p>
<p class="text">产品名称{{ info.productName }}</p> <h6 class="step-name mt-5">{{ route.params.action !== 'config' ? '二、' : '' }}产品要素</h6>
<p class="text">贷款币种人民币</p> <p class="text">产品名称{{ info.productName }}</p>
<p v-if="info.loanPurpose" <p class="text">贷款币种人民币</p>
class="text"> <p v-if="info.loanPurpose"
贷款用途{{ class="text">
贷款用途{{
info.loanPurpose === '购房' info.loanPurpose === '购房'
? '可用于住房按揭贷款、二手房住房按揭贷款。' ? '可用于住房按揭贷款、二手房住房按揭贷款。'
: info.loanPurpose === '消费' : info.loanPurpose === '消费'
@ -33,23 +34,30 @@
? '用于短期生产经营周转的可循环的人民币信用贷款业务。' ? '用于短期生产经营周转的可循环的人民币信用贷款业务。'
: info.otherPurposesOfLoan : info.otherPurposesOfLoan
}} }}
</p> </p>
<p class="text">担保方式{{ info.guarantyStyle }}</p> <div class="flex my-2">
<p class="text">贷款期限{{ info.minimumTermOfLoan }} - {{ info.maximumTermOfLoan }}</p> <p class="text whitespace-nowrap">担保方式</p>
<p class="text">贷款限额{{ info.minimumLoan }}万元 - {{ info.loanCeiling }}万元</p> <p v-html="info.guarantyStyle"
<p class="text">贷款利率{{ info.minimumAprOnLoan }}% - {{ info.maximumAnnualInterestRate }}%</p> class="text"></p>
<p class="text">还款方式{{ info.modeRepayment }}</p> </div>
<div class="text">
贷款对象 <p class="text">贷款期限{{ info.minimumTermOfLoan }} - {{ info.maximumTermOfLoan }}</p>
<p v-if="info.minimumAge">年龄{{ info.minimumAge }} - {{ info.maximumAge }}周岁</p> <p class="text">贷款限额{{ info.minimumLoan }}万元 - {{ info.loanCeiling }}万元</p>
<p v-if="info.educationalRequirements">取得{{ info.educationalRequirements }}以上学历</p> <p class="text">贷款利率{{ info.minimumAprOnLoan }}% - {{ info.maximumAnnualInterestRate }}%</p>
<p v-if="info.currentWorkingLife">{{ info.currentWorkingLife }}</p> <p class="text">还款方式{{ info.modeRepayment }}</p>
<p v-if="info.providentFundAndSocialSecurity">连续缴纳本市社保或者公积金6个月</p>
<p>持有中国银行I类账户且已关联至手机银行且在我行及其他金融同业无不良信用记录</p> <div v-if="info.prospectiveBorrowerText"
</div> class="flex my-2">
<template v-if="riskInfo"> <p class="text whitespace-nowrap">贷款对象</p>
<h6 class="step-name mt-5">材料要求</h6> <div class="text"
<p class="text">办理账户-提供材料{{ riskInfo?.accountMaterials }}</p> v-html="info.prospectiveBorrowerText"></div>
</div>
</template>
<template v-if="riskInfo && route.params.action !== 'config'">
<h6 class="step-name mt-5">{{ route.params.action !== 'add' ? '三、' : '' }}材料要求</h6>
<p v-if="riskInfo?.accountMaterials"
class="text">办理账户-提供材料{{ riskInfo?.accountMaterials }}</p>
<p v-if="riskInfo?.sendingAccount" <p v-if="riskInfo?.sendingAccount"
class="text">办理账户-发放账户借记卡或放款专户</p> class="text">办理账户-发放账户借记卡或放款专户</p>
<p v-if="riskInfo?.loanApplicationMethod" <p v-if="riskInfo?.loanApplicationMethod"
@ -80,7 +88,7 @@
class="text">系统跑批准入风控策略-风险度策略{{ riskInfo?.riskDegreeStrategy }}</p> class="text">系统跑批准入风控策略-风险度策略{{ riskInfo?.riskDegreeStrategy }}</p>
<p v-if="riskInfo?.interestRatePricingModel" <p v-if="riskInfo?.interestRatePricingModel"
class="text">系统跑批准入风控策略-利率定价模型-个人额度模型{{ riskInfo?.interestRatePricingModel }}</p> class="text">系统跑批准入风控策略-利率定价模型-个人额度模型{{ riskInfo?.interestRatePricingModel }}</p>
<p v-if="riskInfo?.individualInterestRateModel" <p v-if="riskInfo?.individualInterestRateModel === '需要跑批'"
class="text">系统跑批准入风控策略-利率定价模型-个人利率模型</p> class="text">系统跑批准入风控策略-利率定价模型-个人利率模型</p>
<p v-if="riskInfo?.dueDiligenceMode" <p v-if="riskInfo?.dueDiligenceMode"
class="text">尽职调查-尽调方式{{ riskInfo?.dueDiligenceMode }}</p> class="text">尽职调查-尽调方式{{ riskInfo?.dueDiligenceMode }}</p>
@ -107,15 +115,18 @@
<p v-if="riskInfo?.selectionStrategy" <p v-if="riskInfo?.selectionStrategy"
class="text">贷后管理-选择策略{{ riskInfo?.selectionStrategy }}</p> class="text">贷后管理-选择策略{{ riskInfo?.selectionStrategy }}</p>
<h6 class="step-name mt-5">业务流程</h6> <h6 class="step-name mt-5">{{ route.params.action !== 'add' ? '四、' : '' }}业务流程</h6>
<p class="text">1贷款人APP向智信银行公司业务部门提交借款申请同时提交贷款用途证明文件以及有关资料</p> <p class="text">1贷款人APP向智信银行公司业务部门提交借款申请同时提交贷款用途证明文件以及有关资料</p>
<p class="text">2智信银行对贷款人的贷款申请进行审查同时根据实际情况要求借款人提供补充资料</p> <p class="text">2智信银行对贷款人的贷款申请进行审查同时根据实际情况要求借款人提供补充资料</p>
<p class="text">3智信银行内部审批通过后与贷款人签订借款合同</p> <p class="text">3智信银行内部审批通过后与贷款人签订借款合同</p>
<p class="text">4贷款人落实有关提款前提条件根据贷款合同提款</p> <p class="text">4贷款人落实有关提款前提条件根据贷款合同提款</p>
<h6 class="step-name mt-5">注意要点</h6>
<p class="text"> <template v-if="route.params.action !== 'add'">
贷款人在使用款额度时必须明确说明贷款用途贷款人必须在获得循环贷款额度后方可在额度与用途范围内申请贷款受理机构仅限在原经办行同时逐笔上报中心核批单笔贷款金额不得超过贷款人单笔消费或投资总金额的80% <h6 class="step-name mt-5">注意要点</h6>
</p> <p class="text">
贷款人在使用款额度时必须明确说明贷款用途贷款人必须在获得循环贷款额度后方可在额度与用途范围内申请贷款受理机构仅限在原经办行同时逐笔上报中心核批单笔贷款金额不得超过贷款人单笔消费或投资总金额的80%
</p>
</template>
</template> </template>
</div> </div>
</template> </template>
@ -127,6 +138,10 @@ import { getTheCurrentUserName } from '@/api/config';
import { useRouter, useRoute } from 'vue-router'; import { useRouter, useRoute } from 'vue-router';
import { getStatus } from '@/store/useProduct'; import { getStatus } from '@/store/useProduct';
// const props = defineProps({
// tab: String,
// });
const emit = defineEmits(['updateStatus']);
const router = useRouter(); const router = useRouter();
const route = useRoute(); const route = useRoute();
const id = computed(() => +route.query.id); const id = computed(() => +route.query.id);
@ -134,12 +149,23 @@ const info = ref<Record<string, any>>({});
const riskInfo = ref<Record<string, any>>(null); const riskInfo = ref<Record<string, any>>(null);
const userName = ref<string>(); const userName = ref<string>();
//
const showAudit = computed(() => {
return (
riskInfo.value &&
(route.params.action === 'detail' ||
(route.params.action !== 'approve' && info.value.status !== '295' && info.value.status !== '299') ||
(route.params.action === 'approve' && info.value.status !== '296'))
);
});
// //
const getDetail = async () => { const getDetail = async () => {
if (id.value) { if (id.value) {
try { try {
const { data } = await findById(id.value); const { data } = await findById(id.value);
info.value = data; info.value = data;
emit('updateStatus', data.riskControlDetails ? '审批结果' : '产品要素');
if (info.value.riskControlDetails) riskInfo.value = data.riskControlDetails; if (info.value.riskControlDetails) riskInfo.value = data.riskControlDetails;
} finally { } finally {
} }

@ -476,7 +476,7 @@ const addRecord = async (data: Record<string, any>) => {
const stockId = 1167; const stockId = 1167;
data.shareholdingAllocationsList.forEach((e, i) => { data.shareholdingAllocationsList.forEach((e, i) => {
rule.push(handleId(1177, 312, e.stockName, `${preIds},1166,${stockId + i},1177`, 3)); rule.push(handleId(1177, 312, e.stockName, `${preIds},1166,${stockId + i},1177`, 3));
rule.push(handleId(1178, 313, e.proportion + '%', `${preIds},1166,${stockId + i},1178`, 3)); rule.push(handleId(1178, 313, e.proportion, `${preIds},1166,${stockId + i},1178`, 3));
}); });
rule.push( rule.push(
handleId(1181, 314, data.buyingDuration, preIds + ',1179,1180,1181', 3), handleId(1181, 314, data.buyingDuration, preIds + ',1179,1180,1181', 3),
@ -488,21 +488,21 @@ const addRecord = async (data: Record<string, any>) => {
// //
const buyId = 1187; const buyId = 1187;
data.buySellRatioList0.forEach((e, i) => { data.buySellRatioList0.forEach((e, i) => {
e.amountOrDuration && rule.push(handleId(1192, 316, e.amountOrDuration, `${preIds},1179,1186,${buyId + i},1192`, 3)); e.amountOrDuration && rule.push(handleId(1192, 330, e.amountOrDuration, `${preIds},1179,1186,${buyId + i},1192`, 5));
e.rate && rule.push(handleId(1193, 318, e.rate + e.rateUnit, `${preIds},1179,1186,${buyId + i},1193`, 3)); e.rate && rule.push(handleId(1193, 318, e.rate + e.rateUnit, `${preIds},1179,1186,${buyId + i},1193`, 5));
}); });
// //
const sellId = 1200; const sellId = 1200;
data.buySellRatioList1.forEach((e, i) => { data.buySellRatioList1.forEach((e, i) => {
e.amountOrDuration && rule.push(handleId(1205, 314, e.amountOrDuration, `${preIds},1179,1199,${sellId + i},1205`, 3)); e.amountOrDuration && rule.push(handleId(1205, 330, e.amountOrDuration, `${preIds},1179,1199,${sellId + i},1205`, 5));
e.rate && rule.push(handleId(1206, 318, e.rate + e.rateUnit, `${preIds},1179,1199,${sellId + i},1206`, 3)); e.rate && rule.push(handleId(1206, 318, e.rate + e.rateUnit, `${preIds},1179,1199,${sellId + i},1206`, 5));
}); });
rule.push( rule.push(
handleId(1196, 319, data.operationManagementRate + '%', preIds + ',1179,1195,1196', 3), handleId(1196, 319, data.operationManagementRate, preIds + ',1179,1195,1196', 3),
handleId(1197, 320, data.operatingEscrowRate + '%', preIds + ',1179,1195,1197', 3), handleId(1197, 320, data.operatingEscrowRate, preIds + ',1179,1195,1197', 3),
handleId(1198, 321, data.operatingSalesServiceRates + '%', preIds + ',1179,1195,1198', 3), handleId(1198, 321, data.operatingSalesServiceRates, preIds + ',1179,1195,1198', 3),
); );
await addOperation({ await addOperation({
@ -545,11 +545,11 @@ const submit = async () => {
// //
param.buySellRatioList0.forEach((e, i) => { param.buySellRatioList0.forEach((e, i) => {
e.amountOrDuration = (i ? param.buySellRatioList0[i - 1].input2 : e.input1) + `${i !== param.buySellRatioList0.length - 1 ? '-' + e.input2 : ''}`; e.amountOrDuration = (i ? param.buySellRatioList0[i - 1].input2 : e.input1) + `${i !== param.buySellRatioList0.length - 1 ? '~' + e.input2 : ''}`;
}); });
param.buySellRatioList1.forEach((e, i) => { param.buySellRatioList1.forEach((e, i) => {
e.amountOrDuration = i ? param.buySellRatioList1[i - 1].input2 + param.buySellRatioList1[i - 1].soldUnit2 : e.input1; e.amountOrDuration = i ? param.buySellRatioList1[i - 1].input2 + param.buySellRatioList1[i - 1].soldUnit2 : e.input1;
if (i !== param.buySellRatioList1.length - 1) e.amountOrDuration += `-${e.input2}${e.soldUnit2}`; if (i !== param.buySellRatioList1.length - 1) e.amountOrDuration += `~${e.input2}${e.soldUnit2}`;
}); });
param.buySellRatioList = [...param.buySellRatioList0, ...param.buySellRatioList1]; param.buySellRatioList = [...param.buySellRatioList0, ...param.buySellRatioList1];

@ -113,12 +113,10 @@
<script setup lang="ts"> <script setup lang="ts">
import { computed, watch, onMounted, ref } from 'vue'; import { computed, watch, onMounted, ref } from 'vue';
import type { TabsPaneContext } from 'element-plus';
import { getProcessInformationBasedOnRoles } from '@/api/judgment'; import { getProcessInformationBasedOnRoles } from '@/api/judgment';
import { delCredit, listCredit } from '@/api/model'; import { delCredit, listCredit } from '@/api/model';
import { useRouter, useRoute } from 'vue-router'; import { useRouter, useRoute } from 'vue-router';
import { ElMessage } from 'element-plus'; import { ElMessage } from 'element-plus';
import Cookies from 'js-cookie';
import { getIds } from '@/utils/common'; import { getIds } from '@/utils/common';
import Com1 from './150.vue'; import Com1 from './150.vue';
import Com2 from './151.vue'; import Com2 from './151.vue';

@ -629,7 +629,8 @@ const getDetail = async (load?: number) => {
form.scoringObject = info.scoringObject; form.scoringObject = info.scoringObject;
} }
getConfig(); getConfig();
} finally { } catch(e) {
if (loading) loading.close();
} }
} else { } else {
getConfig(); getConfig();

Loading…
Cancel
Save