模型添加loading

master
yujialong 7 months ago
parent 1369206c2e
commit 73ee648b97
  1. 2
      .env
  2. 65
      src/api/model.ts
  3. 1
      src/components/StrategyConfirm.vue
  4. 10
      src/views/product/afterLoan/1029/Detail.vue
  5. 1
      src/views/product/afterLoan/1029/Index.vue
  6. 10
      src/views/product/afterLoan/1030/Detail.vue
  7. 1
      src/views/product/afterLoan/1030/Index.vue
  8. 10
      src/views/product/afterLoan/1031/Detail.vue
  9. 1
      src/views/product/afterLoan/1031/Index.vue
  10. 10
      src/views/product/afterLoan/1032/Detail.vue
  11. 267
      src/views/product/bank/Config.vue
  12. 7
      src/views/product/interestRate/772/Detail.vue
  13. 3
      src/views/product/interestRate/772/Index.vue
  14. 12
      src/views/product/interestRate/935/Detail.vue
  15. 2
      src/views/product/interestRate/935/Index.vue
  16. 38
      src/views/product/interestRate/936/Detail.vue
  17. 2
      src/views/product/interestRate/936/Index.vue
  18. 10
      src/views/product/strategy/150/Detail.vue
  19. 2
      src/views/product/strategy/150/Index.vue
  20. 10
      src/views/product/strategy/151/Detail.vue
  21. 5
      src/views/product/strategy/151/Index.vue
  22. 10
      src/views/product/strategy/152/Detail.vue
  23. 3
      src/views/product/strategy/152/Index.vue
  24. 16
      src/views/product/strategy/153/Detail.vue
  25. 3
      src/views/product/strategy/153/Index.vue
  26. 10
      src/views/product/strategy/154/Detail.vue
  27. 3
      src/views/product/strategy/154/Index.vue
  28. 10
      src/views/product/strategy/155/Detail.vue
  29. 3
      src/views/product/strategy/155/Index.vue
  30. 10
      src/views/product/strategy/156/Detail.vue
  31. 3
      src/views/product/strategy/156/Index.vue
  32. 11
      src/views/product/strategy/512/Detail.vue
  33. 3
      src/views/product/strategy/512/Index.vue
  34. 11
      src/views/product/strategy/513/Detail.vue
  35. 3
      src/views/product/strategy/513/Index.vue
  36. 17
      src/views/product/strategy/Risk1.vue
  37. 20
      src/views/product/strategy/Risk2.vue
  38. 17
      src/views/product/strategy/Risk3.vue

@ -2,7 +2,7 @@ VITE_APP_TITLE=金融产品设计及数字化营销沙盘
VITE_PORT=9520
# VITE_PROXY=http://192.168.31.125:8080
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=https://www.occupationlab.com
VITE_I18N_LOCALE=zh-cn

@ -95,31 +95,31 @@ export const accessStrategyNegativeIndustryStrategy = async (data: Record<string
})
).data;
export const accessStrategyNegativeIndustryStrategyFind = async (params: Record<string, any>): Promise<any> =>
(await axios.post(`/product/accessStrategyNegativeIndustryStrategy/details`, {}, { params })).data;
(await axios.post(`${host}/product/accessStrategyNegativeIndustryStrategy/details`, {}, { params })).data;
export const accessStrategyNegativeIndustryStrategySave = async (data: Record<string, any>): Promise<any> =>
(await axios.post(`/product/accessStrategyNegativeIndustryStrategy/saveOrUpdate`, data)).data;
(await axios.post(`${host}/product/accessStrategyNegativeIndustryStrategy/saveOrUpdate`, data)).data;
export const accessStrategyNegativeIndustryStrategyDel = async (data: Record<string, any>): Promise<any> =>
(await axios.post(`${host}/product/accessStrategyNegativeIndustryStrategy/delete`, data)).data;
export const delCredit = async (data: Record<string, any>): Promise<any> => (await axios.post(`/product/creditScoringStrategy/delete`, data)).data;
export const findCredit = async (id: number): Promise<any> => (await axios.post(`/product/creditScoringStrategy/details?strategyId=${id}`)).data;
export const delCredit = async (data: Record<string, any>): Promise<any> => (await axios.post(`${host}/product/creditScoringStrategy/delete`, data)).data;
export const findCredit = async (id: number): Promise<any> => (await axios.post(`${host}/product/creditScoringStrategy/details?strategyId=${id}`)).data;
export const listCredit = async (data: Record<string, any>): Promise<any> =>
(
await axios.post(`/product/creditScoringStrategy/list`, {
await axios.post(`${host}/product/creditScoringStrategy/list`, {
...data,
...getIds(),
})
).data;
export const saveCredit = async (data: Record<string, any>): Promise<any> => (await axios.post(`/product/creditScoringStrategy/saveOrUpdate`, data)).data;
export const saveCredit = async (data: Record<string, any>): Promise<any> => (await axios.post(`${host}/product/creditScoringStrategy/saveOrUpdate`, data)).data;
export const detailRick = async (type: number): Promise<any> =>
(
await axios.post(`/product/riskDegreeStrategy/details`, {
await axios.post(`${host}/product/riskDegreeStrategy/details`, {
...getIds(),
type,
})
).data;
export const saveRick = async (data: Record<string, any>): Promise<any> => (await axios.post(`/product/riskDegreeStrategy/saveOrUpdate`, data)).data;
export const saveRick = async (data: Record<string, any>): Promise<any> => (await axios.post(`${host}/product/riskDegreeStrategy/saveOrUpdate`, data)).data;
export const interestRateModelList = async (data: Record<string, any>): Promise<any> =>
(
@ -129,13 +129,13 @@ export const interestRateModelList = async (data: Record<string, any>): Promise<
})
).data;
export const businessInterestRateDetails = async (params: Record<string, any>): Promise<any> =>
(await axios.post(`/product/interestRateModel/businessInterestRateDetails`, {}, { params })).data;
(await axios.post(`${host}/product/interestRateModel/businessInterestRateDetails`, {}, { params })).data;
export const businessInterestRateSaveOrUpdate = async (data: Record<string, any>): Promise<any> =>
(await axios.post(`/product/interestRateModel/businessInterestRateSaveOrUpdate`, data)).data;
(await axios.post(`${host}/product/interestRateModel/businessInterestRateSaveOrUpdate`, data)).data;
export const personalInterestRateDetails = async (params: Record<string, any>): Promise<any> =>
(await axios.post(`/product/interestRateModel/personalInterestRateDetails`, {}, { params })).data;
(await axios.post(`${host}/product/interestRateModel/personalInterestRateDetails`, {}, { params })).data;
export const personalInterestRateSaveOrUpdate = async (data: Record<string, any>): Promise<any> =>
(await axios.post(`/product/interestRateModel/personalInterestRateSaveOrUpdate`, data)).data;
(await axios.post(`${host}/product/interestRateModel/personalInterestRateSaveOrUpdate`, data)).data;
export const deleteBusinessInterestRate = async (data: Record<string, any>): Promise<any> =>
(await axios.post(`${host}/product/interestRateModel/deleteBusinessInterestRate`, data)).data;
export const deletePersonalInterestRate = async (data: Record<string, any>): Promise<any> =>
@ -143,72 +143,73 @@ export const deletePersonalInterestRate = async (data: Record<string, any>): Pro
export const quotaModelList = async (data: Record<string, any>): Promise<any> =>
(
await axios.post(`/product/quotaModel/list`, {
await axios.post(`${host}/product/quotaModel/list`, {
...getIds(),
...data,
})
).data;
export const quotaModelDel = async (data: Record<string, any>): Promise<any> => (await axios.post(`${host}/product/quotaModel/delete`, data)).data;
export const businessQuotaModelDetails = async (): Promise<any> => (await axios.post(`/product/quotaModel/businessQuotaModelDetails`, getIds())).data;
export const businessQuotaModelDetails = async (): Promise<any> => (await axios.post(`${host}/product/quotaModel/businessQuotaModelDetails`, getIds())).data;
export const businessQuotaModelSaveOrUpdate = async (data: Record<string, any>): Promise<any> =>
(await axios.post(`/product/quotaModel/businessQuotaModelSaveOrUpdate`, data)).data;
(await axios.post(`${host}/product/quotaModel/businessQuotaModelSaveOrUpdate`, data)).data;
export const personalCreditModelDetails = async (params: Record<string, any>): Promise<any> =>
(await axios.post(`/product/quotaModel/personalCreditModelDetails`, {}, { params })).data;
(await axios.post(`${host}/product/quotaModel/personalCreditModelDetails`, {}, { params })).data;
export const personalCreditModelSaveOrUpdate = async (data: Record<string, any>): Promise<any> =>
(await axios.post(`/product/quotaModel/personalCreditModelSaveOrUpdate`, data)).data;
(await axios.post(`${host}/product/quotaModel/personalCreditModelSaveOrUpdate`, data)).data;
export const fiveLevelClassification = async (data: Record<string, any>): Promise<any> =>
(
await axios.post(`/product/fiveLevelClassification/list`, {
await axios.post(`${host}/product/fiveLevelClassification/list`, {
...getIds(),
...data,
})
).data;
export const fiveLevelClassificationDetails = async (params: Record<string, any>): Promise<any> =>
(await axios.post(`/product/fiveLevelClassification/details`, {}, { params })).data;
export const fiveLevelClassificationSave = async (data: Record<string, any>): Promise<any> => (await axios.post(`/product/fiveLevelClassification/saveOrUpdate`, data)).data;
(await axios.post(`${host}/product/fiveLevelClassification/details`, {}, { params })).data;
export const fiveLevelClassificationSave = async (data: Record<string, any>): Promise<any> => (await axios.post(`${host}/product/fiveLevelClassification/saveOrUpdate`, data)).data;
export const fiveLevelClassificationDel = async (data: Record<string, any>): Promise<any> => (await axios.post(`${host}/product/fiveLevelClassification/delete`, data)).data;
export const postLoanInspection = async (data: Record<string, any>): Promise<any> =>
(
await axios.post(`/product/postLoanInspection/list`, {
await axios.post(`${host}/product/postLoanInspection/list`, {
...getIds(),
...data,
})
).data;
export const postLoanInspectionDetails = async (params: Record<string, any>): Promise<any> => (await axios.post(`/product/postLoanInspection/details`, {}, { params })).data;
export const postLoanInspectionSave = async (data: Record<string, any>): Promise<any> => (await axios.post(`/product/postLoanInspection/saveOrUpdate`, data)).data;
export const postLoanInspectionDetails = async (params: Record<string, any>): Promise<any> => (await axios.post(`${host}/product/postLoanInspection/details`, {}, { params })).data;
export const postLoanInspectionSave = async (data: Record<string, any>): Promise<any> => (await axios.post(`${host}/product/postLoanInspection/saveOrUpdate`, data)).data;
export const postLoanInspectionDel = async (data: Record<string, any>): Promise<any> => (await axios.post(`${host}/product/postLoanInspection/delete`, data)).data;
export const postCreditScore = async (data: Record<string, any>): Promise<any> =>
(
await axios.post(`/product/postCreditScore/list`, {
await axios.post(`${host}/product/postCreditScore/list`, {
...getIds(),
...data,
})
).data;
export const postCreditScoreDetails = async (params: Record<string, any>): Promise<any> => (await axios.post(`/product/postCreditScore/details`, {}, { params })).data;
export const postCreditScoreSave = async (data: Record<string, any>): Promise<any> => (await axios.post(`/product/postCreditScore/saveOrUpdate`, data)).data;
export const postCreditScoreDetails = async (params: Record<string, any>): Promise<any> => (await axios.post(`${host}/product/postCreditScore/details`, {}, { params })).data;
export const postCreditScoreSave = async (data: Record<string, any>): Promise<any> => (await axios.post(`${host}/product/postCreditScore/saveOrUpdate`, data)).data;
export const postCreditScoreDel = async (data: Record<string, any>): Promise<any> => (await axios.post(`${host}/product/postCreditScore/delete`, data)).data;
export const postLoanWarning = async (data: Record<string, any>): Promise<any> =>
(
await axios.post(`/product/postLoanWarning/list`, {
await axios.post(`${host}/product/postLoanWarning/list`, {
...getIds(),
...data,
})
).data;
export const postLoanWarningDetails = async (params: Record<string, any>): Promise<any> => (await axios.post(`/product/postLoanWarning/details`, {}, { params })).data;
export const postLoanWarningSave = async (data: Record<string, any>): Promise<any> => (await axios.post(`/product/postLoanWarning/saveOrUpdate`, data)).data;
export const postLoanWarningDetails = async (params: Record<string, any>): Promise<any> => (await axios.post(`${host}/product/postLoanWarning/details`, {}, { params })).data;
export const postLoanWarningSave = async (data: Record<string, any>): Promise<any> => (await axios.post(`${host}/product/postLoanWarning/saveOrUpdate`, data)).data;
export const postLoanWarningDel = async (data: Record<string, any>): Promise<any> => (await axios.post(`${host}/product/postLoanWarning/delete`, data)).data;
export const collectionAfterLoan = async (data: Record<string, any>): Promise<any> =>
(
await axios.post(`/product/collectionAfterLoan/list`, {
await axios.post(`${host}/product/collectionAfterLoan/list`, {
...getIds(),
...data,
})
).data;
export const collectionAfterLoanDetails = async (params: Record<string, any>): Promise<any> => (await axios.post(`/product/collectionAfterLoan/details`, {}, { params })).data;
export const collectionAfterLoanSave = async (data: Record<string, any>): Promise<any> => (await axios.post(`/product/collectionAfterLoan/saveOrUpdate`, data)).data;
export const collectionAfterLoanDetails = async (params: Record<string, any>): Promise<any> =>
(await axios.post(`${host}/product/collectionAfterLoan/details`, {}, { params })).data;
export const collectionAfterLoanSave = async (data: Record<string, any>): Promise<any> => (await axios.post(`${host}/product/collectionAfterLoan/saveOrUpdate`, data)).data;
export const collectionAfterLoanDel = async (data: Record<string, any>): Promise<any> => (await axios.post(`${host}/product/collectionAfterLoan/delete`, data)).data;

@ -31,6 +31,7 @@ const visible = computed({
});
const syncCheck = ref<boolean>(false);
const submit = () => {
visible.value = false;
emit('submit', +syncCheck.value);
};
</script>

@ -3,7 +3,8 @@
<el-form label-width="90px"
label-suffix=":"
class="form"
:disabled="disabled">
:disabled="disabled"
v-loading="loading">
<el-form-item label="策略名称">
<el-input class="w-[320px]"
placeholder="请输入20以内字符"
@ -94,7 +95,6 @@
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<div v-if="!disabled"
class="flex justify-end mt-3">
<div class="dia-btn cancel"
@ -102,6 +102,7 @@
<div class="dia-btn"
@click="confirmSubmit">确定</div>
</div>
</el-form>
<Confirm v-model="syncVisible"
@submit="submit" />
@ -147,10 +148,13 @@ const getConfig = async () => {
});
});
form.value = result;
loading.value = false;
};
const loading = ref<boolean>(false);
const syncVisible = ref<boolean>(false);
//
const getDetail = async () => {
loading.value = true;
try {
if (strategyId.value) {
const { data } = await fiveLevelClassificationDetails({
@ -181,12 +185,14 @@ const addRecord = async (data: Record<string, any>) => {
parentId: preIds,
lcJudgmentRuleReq: rule,
});
loading.value = false;
ElMessage.success('提交成功!');
syncVisible.value = false;
emit('close', 1);
};
//
const submit = async (synchronizeUpdate?: number) => {
loading.value = true;
let param = JSON.parse(JSON.stringify(form.value));
const recordParam = JSON.parse(JSON.stringify(param));

@ -91,6 +91,7 @@ import { Delete } from '@element-plus/icons-vue';
import { pageSizes, pageLayout } from '@/utils/common';
import { fiveLevelClassification, fiveLevelClassificationDel } from '@/api/model';
import Search from '@/components/Search.vue';
const Detail = defineAsyncComponent(() => import('./Detail.vue'));
const keyWord = ref<string>();

@ -3,7 +3,8 @@
<el-form label-width="90px"
label-suffix=":"
class="form"
:disabled="disabled">
:disabled="disabled"
v-loading="loading">
<el-form-item label="策略名称">
<el-input class="w-[320px]"
placeholder="请输入20以内字符"
@ -73,7 +74,6 @@
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<div v-if="!disabled"
class="flex justify-end mt-3">
<div class="dia-btn cancel"
@ -81,6 +81,7 @@
<div class="dia-btn"
@click="confirmSubmit">确定</div>
</div>
</el-form>
<Confirm v-model="syncVisible"
@submit="submit" />
@ -106,6 +107,7 @@ const emit = defineEmits(['clsoe']);
const { strategyId, strategyName } = toRefs(props.row);
const form = ref<Record<string, any>[]>([]);
const info = ref<Record<string, any>[]>([]);
const loading = ref<boolean>(false);
const syncVisible = ref<boolean>(false);
//
const getConfig = async () => {
@ -129,9 +131,11 @@ const getConfig = async () => {
result.push(temp);
});
form.value = result;
loading.value = false;
};
//
const getDetail = async () => {
loading.value = true;
try {
if (strategyId.value) {
const { data } = await postLoanInspectionDetails({
@ -189,12 +193,14 @@ const addRecord = async (data: Record<string, any>) => {
parentId: preIds,
lcJudgmentRuleReq: rule,
});
loading.value = false;
ElMessage.success('提交成功!');
syncVisible.value = false;
emit('close', 1);
};
//
const submit = async (synchronizeUpdate?: number) => {
loading.value = true;
let param = JSON.parse(JSON.stringify(form.value));
param.map((e, i) => {
e.creditData = +e.creditData;

@ -91,6 +91,7 @@ import { Delete } from '@element-plus/icons-vue';
import { pageSizes, pageLayout } from '@/utils/common';
import { postLoanInspection, postLoanInspectionDel } from '@/api/model';
import Search from '@/components/Search.vue';
const Detail = defineAsyncComponent(() => import('./Detail.vue'));
const keyWord = ref<string>();

@ -3,7 +3,8 @@
<el-form label-width="90px"
label-suffix=":"
class="form"
:disabled="disabled">
:disabled="disabled"
v-loading="loading">
<el-form-item label="策略名称">
<el-input class="w-[320px]"
placeholder="请输入20以内字符"
@ -193,7 +194,6 @@
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<div v-if="!disabled"
class="flex justify-end mt-3">
<div class="dia-btn cancel"
@ -201,6 +201,7 @@
<div class="dia-btn"
@click="confirmSubmit">确定</div>
</div>
</el-form>
<Confirm v-model="syncVisible"
@submit="submit" />
@ -228,6 +229,7 @@ const form = ref<Record<string, any>[]>([]);
const info = ref<Record<string, any>[]>([]);
//
const answer = [[697, 693], [698, 691], [1, 707], [716], [], [695, 696], [696, 694]];
const loading = ref<boolean>(false);
const syncVisible = ref<boolean>(false);
//
const getConfig = async () => {
@ -268,9 +270,11 @@ const getConfig = async () => {
});
}
form.value = result;
loading.value = false;
};
//
const getDetail = async () => {
loading.value = true;
try {
if (strategyId.value) {
const { data } = await postCreditScoreDetails({
@ -365,12 +369,14 @@ const addRecord = async (data: Record<string, any>) => {
parentId: preIds,
lcJudgmentRuleReq: rule,
});
loading.value = false;
ElMessage.success('提交成功!');
syncVisible.value = false;
emit('close', 1);
};
//
const submit = async (synchronizeUpdate?: number) => {
loading.value = true;
let param = JSON.parse(JSON.stringify(form.value));
const recordParam = JSON.parse(JSON.stringify(param));
param.map((e) => {

@ -91,6 +91,7 @@ import { Delete } from '@element-plus/icons-vue';
import { pageSizes, pageLayout } from '@/utils/common';
import { postCreditScore, postCreditScoreDel } from '@/api/model';
import Search from '@/components/Search.vue';
const Detail = defineAsyncComponent(() => import('./Detail.vue'));
const keyWord = ref<string>();

@ -3,7 +3,8 @@
<el-form label-width="90px"
label-suffix=":"
class="form"
:disabled="disabled">
:disabled="disabled"
v-loading="loading">
<el-form-item label="策略名称">
<el-input class="w-[320px]"
placeholder="请输入20以内字符"
@ -52,7 +53,6 @@
</template></el-table-column>
</el-table>
</el-form-item>
</el-form>
<div v-if="!disabled"
class="flex justify-end mt-3">
<div class="dia-btn cancel"
@ -60,6 +60,7 @@
<div class="dia-btn"
@click="confirmSubmit">确定</div>
</div>
</el-form>
<Confirm v-model="syncVisible"
@submit="submit" />
@ -84,6 +85,7 @@ const emit = defineEmits(['clsoe']);
const { strategyId, strategyName } = toRefs(props.row);
const form = ref<Record<string, any>[]>([]);
const info = ref<Record<string, any>[]>([]);
const loading = ref<boolean>(false);
const syncVisible = ref<boolean>(false);
//
const getConfig = async () => {
@ -103,9 +105,11 @@ const getConfig = async () => {
});
});
form.value = result;
loading.value = false;
};
//
const getDetail = async () => {
loading.value = true;
try {
if (strategyId.value) {
const { data } = await postLoanWarningDetails({
@ -135,12 +139,14 @@ const addRecord = async (data: Record<string, any>) => {
parentId: preIds,
lcJudgmentRuleReq: rule,
});
loading.value = false;
ElMessage.success('提交成功!');
syncVisible.value = false;
emit('close', 1);
};
//
const submit = async (synchronizeUpdate?: number) => {
loading.value = true;
let param = JSON.parse(JSON.stringify(form.value));
param.forEach((e) => {
e.isChoose = +e.isChoose;

@ -277,21 +277,30 @@
class="flex items-center mb-3">
<div class="radio-wrap">
<span class="label">{{ item.name }}</span>
<el-radio-group v-model="form.creditScoringStrategyList[i].tacticsSelectedStatus">
<el-radio v-for="(option, j) in item?.recordChildren[0]?.subject?.itemList"
<el-radio-group v-model="form.creditScoringStrategyList[i].tacticsSelectedStatus"
@change="getCredits(i)">
<el-radio v-for="(option, j) in whethers1"
:key="j"
:label="option.itemId">{{ option.options }}</el-radio>
</el-radio-group>
</div>
<el-select v-if="form.creditScoringStrategyList[i].tacticsSelectedStatus === 803"
class="ml-5"
<template v-if="form.creditScoringStrategyList[i].tacticsSelectedStatus === 803 && item.blackList">
<el-select class="ml-5 mr-3"
v-model="form.creditScoringStrategyList[i].tacticsId"
placeholder="请选择">
<el-option v-for="item in credits.filter(e => !e.scoringObject)"
<el-option v-for="item in item?.blackList"
:key="item"
:value="item.scoreCardName" />
:label="item.scoreCardName"
:value="item.id" />
</el-select>
<img v-if="form.creditScoringStrategyList[i].tacticsId"
src="@/assets/svgs/preview.svg"
alt=""
class="cursor-pointer"
@click="previewCredits(item, i)">
</template>
</div>
</div>
</el-form-item>
@ -327,20 +336,24 @@
:key="i"
class="radio-wrap mb-3">
<span class="label">{{ item.name }}</span>
<el-radio-group v-model="form.interestRatePricingModelList[i].tacticsSelectedStatus">
<el-radio-group v-model="form.interestRatePricingModelList[i].tacticsSelectedStatus"
@change="getRate(i)">
<el-radio v-for="(option, j) in whethers1"
:key="j"
:label="option.itemId">{{ option.options }}</el-radio>
</el-radio-group>
<template v-if="form.interestRatePricingModelList[i].tacticsSelectedStatus === 803 && item.blackList">
<el-select v-if="form.interestRatePricingModelList[i].tacticsSelectedStatus === 803"
class="ml-5"
class="ml-5 mr-3"
v-model="form.interestRatePricingModelList[i].tacticsId"
placeholder="请选择">
<el-option v-for="item in config[2]?.recordChildren[4]?.recordChildren[1]?.recordChildren[1]?.subject?.itemList"
<el-option v-for="item in item?.blackList"
:key="item.itemId"
:label="item.options"
:value="item.itemId" />
:label="item.modelName"
:value="item.id" />
</el-select>
</template>
</div>
<div class="radio-wrap items-start mb-3">
@ -363,19 +376,20 @@
<div class="radio-wrap items-start mb-3">
<span class="label">企业利率模型</span>
<el-radio-group v-model="form.interestRatePricingModelList[2].tacticsSelectedStatus">
<el-radio-group v-model="form.interestRatePricingModelList[2].tacticsSelectedStatus"
@change="getRate(2)">
<el-radio v-for="(option, j) in whethers1"
:key="j"
:label="option.itemId">{{ option.options }}</el-radio>
</el-radio-group>
<el-select v-if="form.interestRatePricingModelList[2].tacticsSelectedStatus === 803"
<el-select v-if="form.interestRatePricingModelList[2].tacticsSelectedStatus === 803 && form.interestRatePricingModelList[2].blackList"
class="ml-5"
v-model="form.interestRatePricingModelList[2].tacticsId"
placeholder="请选择">
<el-option v-for="item in config[2]?.recordChildren[4]?.recordChildren[1]?.recordChildren[1]?.subject?.itemList"
<el-option v-for="item in form.interestRatePricingModelList[2].blackList"
:key="item.itemId"
:label="item.options"
:value="item.itemId" />
:label="item.modelName"
:value="item.id" />
</el-select>
</div>
</div>
@ -563,20 +577,30 @@
:key="i"
class="radio-wrap mb-3">
<span class="label min-w-[85px]">{{ item.name }}</span>
<el-radio-group v-model="form.postLoanSelectionStrategyList[i].tacticsSelectedStatus">
<el-radio-group v-model="form.postLoanSelectionStrategyList[i].tacticsSelectedStatus"
@change="getAfter(i)">
<el-radio v-for="(option, j) in item?.recordChildren[0]?.subject?.itemList"
:key="j"
:label="option.itemId">{{ option.options }}</el-radio>
</el-radio-group>
<template v-if="form.postLoanSelectionStrategyList[i].tacticsSelectedStatus === 803 && item.blackList">
<el-select v-if="form.postLoanSelectionStrategyList[i].tacticsSelectedStatus === 803"
class="ml-5"
class="ml-5 mr-3"
v-model="form.postLoanSelectionStrategyList[i].tacticsId"
placeholder="请选择">
<el-option v-for="item in config[2]?.recordChildren[4]?.recordChildren[1]?.recordChildren[1]?.subject?.itemList"
<el-option v-for="item in item.blackList"
:key="item.itemId"
:label="item.options"
:value="item.itemId" />
:label="item.strategyName"
:value="item.strategyId" />
</el-select>
<img v-if="form.postLoanSelectionStrategyList[i].tacticsId"
src="@/assets/svgs/preview.svg"
alt=""
class="cursor-pointer"
@click="previewAfter(item, i)">
</template>
</div>
</div>
</el-form-item>
@ -616,7 +640,6 @@ import type { TabsPaneContext, FormInstance } from 'element-plus';
import { findById, riskSave, riskUpdate, riskControlDetailsAreDisplayed } from '@/api/bank';
import { getProcessInformationBasedOnRoles, addOperation } from '@/api/judgment';
import {
listCredit,
accessStrategyGovernmentBlacklistList,
accessStrategyCreditBlacklist,
accessStrategyBusinessBlacklist,
@ -624,6 +647,14 @@ import {
accessStrategyEnterpriseBlacklist,
accessStrategyAntiFraudStrategy,
accessStrategyNegativeIndustryStrategy,
listCredit,
quotaModelList,
interestRateModelList,
fiveLevelClassification,
postLoanInspection,
postCreditScore,
postLoanWarning,
collectionAfterLoan,
} from '@/api/model';
import { useRouter, useRoute } from 'vue-router';
import { handleId, getIds, getUsername } from '@/utils/common';
@ -684,7 +715,6 @@ const route = useRoute();
const id = computed(() => +route.query.id);
const curTab = ref<string>(route.query.show ? 'tab2' : 'tab1');
const config = ref<any[]>([]);
const credits = ref<Record<string, any>[]>([]);
const info = ref<Record<string, any>>({});
const whethers = ref<Record<string, any>>([
{
@ -764,6 +794,7 @@ let form = reactive<RuleForm>({
const curPreviewTitle = ref<string>();
const assessNames = ['政务黑名单', '征信黑名单', '商采黑名单', '行内黑名单', '企业黑名单', '反欺诈策略', '负面行业黑名单策略'];
const afterNames = ['五级分类策略', '贷后检查策略', '贷后评分卡', '贷后预警策略', '贷后催收策略'];
const dynamicComponentMap = {
'150': defineAsyncComponent(() => import('../strategy/150/Detail.vue')),
'151': defineAsyncComponent(() => import('../strategy/151/Detail.vue')),
@ -772,10 +803,13 @@ const dynamicComponentMap = {
'154': defineAsyncComponent(() => import('../strategy/154/Detail.vue')),
'155': defineAsyncComponent(() => import('../strategy/155/Detail.vue')),
'156': defineAsyncComponent(() => import('../strategy/156/Detail.vue')),
// '148': defineAsyncComponent(() => import('./Credit.vue')),
// '702': defineAsyncComponent(() => import('./Risk1.vue')),
// '703': defineAsyncComponent(() => import('./Risk2.vue')),
// '704': defineAsyncComponent(() => import('./Risk3.vue')),
'512': defineAsyncComponent(() => import('../strategy/512/Detail.vue')),
'513': defineAsyncComponent(() => import('../strategy/513/Detail.vue')),
'1029': defineAsyncComponent(() => import('../afterLoan/1029/Detail.vue')),
'1030': defineAsyncComponent(() => import('../afterLoan/1030/Detail.vue')),
'1031': defineAsyncComponent(() => import('../afterLoan/1031/Detail.vue')),
'1032': defineAsyncComponent(() => import('../afterLoan/1032/Detail.vue')),
'1033': defineAsyncComponent(() => import('../afterLoan/1033/Detail.vue')),
};
const app = getCurrentInstance().appContext.app;
for (const [name, asyncComponent] of Object.entries(dynamicComponentMap)) {
@ -804,6 +838,64 @@ const getAccess = async (i: number) => {
}
}
};
//
const getCredits = async (i: number) => {
const list = config.value[2]?.recordChildren[2]?.recordChildren;
if (!list[i].blackList) {
try {
const res = await listCredit({
...strategyParams,
type: i,
});
if (res) list[i].blackList = res.data.records;
} finally {
}
}
};
//
const getRate = async (i: number) => {
const list = config.value[2].recordChildren[4].recordChildren;
if (!list[i].blackList) {
try {
let res;
if (!i) {
res = await quotaModelList({
...strategyParams,
type: 1,
}); //
} else if (i === 1) {
res = await interestRateModelList({
...strategyParams,
type: 1,
}); //
} else if (i === 2) {
res = await interestRateModelList({
...strategyParams,
type: 2,
}); //
form.interestRatePricingModelList[2].blackList = res.page.records;
}
if (res && i !== 2) list[i].blackList = res.page.records;
} finally {
}
}
};
//
const getAfter = async (i: number) => {
const list = config.value[7]?.recordChildren;
if (!list[i].blackList) {
try {
let res;
if (!i) res = await fiveLevelClassification(strategyParams); //
if (i === 1) res = await postLoanInspection(strategyParams); //
if (i === 2) res = await postCreditScore(strategyParams); //
if (i === 3) res = await postLoanWarning(strategyParams); //
if (i === 4) res = await collectionAfterLoan(strategyParams); //
if (res) list[i].blackList = res.page.records;
} finally {
}
}
};
//
const getConfig = async () => {
const { process } = await getProcessInformationBasedOnRoles(info.value.productType ? 71 : 70); // 7071
@ -874,39 +966,6 @@ const getConfig = async () => {
e.tacticsSelectedStatus === 803 && getAccess(i);
});
}
const { data } = await listCredit({
...getIds(),
pageNum: 1,
pageSize: 1000,
});
credits.value = [
{
scoringObject: 0,
scoreCardName: '个人信用评分策略',
},
{
scoringObject: 0,
scoreCardName: '个人评分-评级贷',
},
{
scoringObject: 0,
scoreCardName: '个人标准评分卡',
},
{
scoringObject: 1,
scoreCardName: '企业标准评分卡',
},
{
scoringObject: 1,
scoreCardName: '大型企业评分卡',
},
{
scoringObject: 1,
scoreCardName: '小型企业评分卡',
},
...data,
];
};
//
const getDetail = async () => {
@ -1135,11 +1194,14 @@ const addRecord = async (data: Record<string, any>) => {
//
const list2 = data.creditScoringStrategyList;
if (list2.length) {
const list = config.value[2]?.recordChildren[2]?.recordChildren;
list2[0].tacticsSelectedStatus && lcRule.push(handleId(1307, 327, list2[0].tacticsSelectedStatus, `${preIds},114,129,1046,1307`, 1));
// list2[0].tacticsId && lcRule.push(handleId(1390, 339, list2[0].tacticsId, `${preIds},114,129,1046,1390`, 3));
list2[0].tacticsId && lcRule.push(handleId(1390, 339, list[0].blackList.find((e) => e.id === list2[0].tacticsId)?.scoreCardName || '', `${preIds},114,129,1046,1390`, 3));
list2[1].tacticsSelectedStatus && lcRule.push(handleId(1391, 327, list2[1].tacticsSelectedStatus, `${preIds},114,129,1047,1391`, 1));
// list2[1].tacticsId && lcRule.push(handleId(1392, 339, list2[1].tacticsId, `${preIds},114,129,1047,1392`, 3));
list2[1].tacticsId && lcRule.push(handleId(1392, 339, list[1].blackList.find((e) => e.id === list2[1].tacticsId)?.scoreCardName || '', `${preIds},114,129,1047,1392`, 3));
}
//
data.personalRiskDegreeStrategySelectedStatus && lcRule.push(handleId(1301, 327, data.personalRiskDegreeStrategySelectedStatus, preIds + ',114,130,1301', 1));
@ -1147,17 +1209,20 @@ const addRecord = async (data: Record<string, any>) => {
//
const list3 = data.interestRatePricingModelList;
if (list3.length) {
const list = config.value[2].recordChildren[4].recordChildren;
list3[0].tacticsSelectedStatus && lcRule.push(handleId(1398, 327, list3[0].tacticsSelectedStatus, `${preIds},114,131,1394,1398`, 1));
// list3[0].tacticsId && lcRule.push(handleId(1399, 339, list3[0].tacticsId, `${preIds},114,131,1394,1399`, 3));
list3[0].tacticsId && lcRule.push(handleId(1399, 339, list[0].blackList.find((e) => e.id === list3[0].tacticsId)?.modelName || '', `${preIds},114,131,1394,1399`, 3));
list3[1].tacticsSelectedStatus && lcRule.push(handleId(1400, 327, list3[1].tacticsSelectedStatus, `${preIds},114,131,1395,1400`, 1));
// list3[1].tacticsId && lcRule.push(handleId(1401, 339, list3[1].tacticsId, `${preIds},114,131,1395,1401`, 3));
list3[1].tacticsId && lcRule.push(handleId(1401, 339, list[1].blackList.find((e) => e.id === list3[1].tacticsId)?.modelName || '', `${preIds},114,131,1395,1401`, 3));
data.enterpriseQuotaModelSelectedStatus && lcRule.push(handleId(1402, 327, data.enterpriseQuotaModelSelectedStatus, preIds + ',114,131,1396,1402', 1));
data.enterpriseQuotaModel && lcRule.push(handleId(1403, 338, data.enterpriseQuotaModel, preIds + ',114,131,1396,1403', 1));
list3[2].tacticsSelectedStatus && lcRule.push(handleId(1404, 327, list3[2].tacticsSelectedStatus, `${preIds},114,131,1397,1404`, 1));
// list3[2].tacticsId && lcRule.push(handleId(1405, 339, list3[2].tacticsId, `${preIds},114,131,1397,1405`, 3));
list3[2].tacticsId && lcRule.push(handleId(1405, 339, list3[2].blackList.find((e) => e.id === list3[2].tacticsId)?.modelName || '', `${preIds},114,131,1397,1405`, 3));
}
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));
@ -1180,6 +1245,26 @@ const addRecord = async (data: Record<string, any>) => {
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));
//
const list4 = data.postLoanSelectionStrategyList;
if (list4.length) {
const list = config.value[7]?.recordChildren;
list4[0].tacticsSelectedStatus && lcRule.push(handleId(1411, 327, list4[0].tacticsSelectedStatus, `${preIds},119,1406,1411`, 1));
list4[0].tacticsId && lcRule.push(handleId(1412, 339, list[0].blackList.find((e) => e.strategyId === list4[0].tacticsId)?.strategyName || '', `${preIds},119,1406,1412`, 3));
list4[1].tacticsSelectedStatus && lcRule.push(handleId(1413, 327, list4[1].tacticsSelectedStatus, `${preIds},119,1407,1413`, 1));
list4[1].tacticsId && lcRule.push(handleId(1414, 339, list[1].blackList.find((e) => e.strategyId === list4[1].tacticsId)?.strategyName || '', `${preIds},119,1407,1414`, 3));
list4[2].tacticsSelectedStatus && lcRule.push(handleId(1415, 327, list4[2].tacticsSelectedStatus, `${preIds},119,1408,1415`, 1));
list4[2].tacticsId && lcRule.push(handleId(1416, 339, list[2].blackList.find((e) => e.strategyId === list4[2].tacticsId)?.strategyName || '', `${preIds},119,1408,1416`, 3));
list4[3].tacticsSelectedStatus && lcRule.push(handleId(1417, 327, list4[3].tacticsSelectedStatus, `${preIds},119,1409,1417`, 1));
list4[3].tacticsId && lcRule.push(handleId(1418, 339, list[3].blackList.find((e) => e.strategyId === list4[3].tacticsId)?.strategyName || '', `${preIds},119,1409,1418`, 3));
list4[4].tacticsSelectedStatus && lcRule.push(handleId(1419, 327, list4[4].tacticsSelectedStatus, `${preIds},119,1410,1419`, 1));
list4[4].tacticsId && lcRule.push(handleId(1420, 339, list[4].blackList.find((e) => e.strategyId === list4[4].tacticsId)?.strategyName || '', `${preIds},119,1410,1420`, 3));
}
} else {
data.provideMaterialSelectedStatus && lcRule.push(handleId(1294, 325, data.provideMaterialSelectedStatus, preIds + ',72,75,1294', 1));
data.accountMaterials && lcRule.push(handleId(1295, 20, data.accountMaterials, preIds + ',72,75,1295', 1));
@ -1239,11 +1324,14 @@ const addRecord = async (data: Record<string, any>) => {
//
const list2 = data.creditScoringStrategyList;
if (list2.length) {
const list = config.value[2]?.recordChildren[2]?.recordChildren;
list2[0].tacticsSelectedStatus && lcRule.push(handleId(1364, 327, list2[0].tacticsSelectedStatus, `${preIds},74,84,1304,1364`, 1));
// list2[0].tacticsId && lcRule.push(handleId(1366, 327, list2[0].tacticsId, `${preIds},74,84,1304,1366`, 3));
list2[0].tacticsId && lcRule.push(handleId(1366, 339, list[0].blackList.find((e) => e.id === list2[0].tacticsId)?.scoreCardName || '', `${preIds},74,84,1304,1366`, 3));
list2[1].tacticsSelectedStatus && lcRule.push(handleId(1365, 327, list2[1].tacticsSelectedStatus, `${preIds},74,84,1305,1365`, 1));
// list2[1].tacticsId && lcRule.push(handleId(1367, 339, list2[1].tacticsId, `${preIds},74,84,1305,1367`, 3));
list2[1].tacticsId && lcRule.push(handleId(1367, 339, list[1].blackList.find((e) => e.id === list2[1].tacticsId)?.scoreCardName || '', `${preIds},74,84,1305,1367`, 3));
}
//
data.personalRiskDegreeStrategySelectedStatus && lcRule.push(handleId(1339, 327, data.personalRiskDegreeStrategySelectedStatus, preIds + '74,85,1339', 1));
@ -1251,17 +1339,20 @@ const addRecord = async (data: Record<string, any>) => {
//
const list3 = data.interestRatePricingModelList;
if (list3.length) {
const list = config.value[2].recordChildren[4].recordChildren;
list3[0].tacticsSelectedStatus && lcRule.push(handleId(1310, 327, list3[0].tacticsSelectedStatus, `${preIds},74,86,1308,1310`, 1));
// list3[0].tacticsId && lcRule.push(handleId(1360, 339, list3[0].tacticsId, `${preIds},74,86,1308,1360`, 3));
list3[0].tacticsId && lcRule.push(handleId(1360, 339, list[0].blackList.find((e) => e.id === list3[0].tacticsId)?.modelName || '', `${preIds},74,86,1308,1360`, 3));
list3[1].tacticsSelectedStatus && lcRule.push(handleId(1311, 327, list3[1].tacticsSelectedStatus, `${preIds},74,86,1309,1311`, 1));
// list3[1].tacticsId && lcRule.push(handleId(1361, 339, list3[1].tacticsId, `${preIds},74,86,1309,1361`, 3));
list3[1].tacticsId && lcRule.push(handleId(1361, 339, list[1].blackList.find((e) => e.id === list3[1].tacticsId)?.modelName || '', `${preIds},74,86,1309,1361`, 3));
data.enterpriseQuotaModelSelectedStatus && lcRule.push(handleId(1343, 327, data.enterpriseQuotaModelSelectedStatus, preIds + '74,86,1341,1343', 1));
data.enterpriseQuotaModel && lcRule.push(handleId(1362, 338, data.enterpriseQuotaModel, preIds + ',74,86,1341,1362', 1));
list3[2].tacticsSelectedStatus && lcRule.push(handleId(1344, 327, list3[2].tacticsSelectedStatus, `${preIds},74,86,1342,1344`, 1));
// list3[2].tacticsId && lcRule.push(handleId(1363, 339, list3[2].tacticsId, `${preIds},74,86,1342,1363`, 3));
list3[2].tacticsId && lcRule.push(handleId(1363, 339, list3[2].blackList.find((e) => e.id === list3[2].tacticsId)?.modelName || '', `${preIds},74,86,1342,1363`, 3));
}
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));
@ -1286,21 +1377,24 @@ const addRecord = async (data: Record<string, any>) => {
data.guaranteeContract && lcRule.push(handleId(1252, 147, data.guaranteeContract, preIds + ',96,98,313,1252', 1));
//
const list4 = data.bankRiskControlAllocationTacticsList;
const list4 = data.postLoanSelectionStrategyList;
if (list4.length) {
const list = config.value[7]?.recordChildren;
list4[0].tacticsSelectedStatus && lcRule.push(handleId(1350, 327, list4[0].tacticsSelectedStatus, `${preIds},99,1345,1350`, 1));
// list4[0].tacticsId && lcRule.push(handleId(1355, 339, govList.value.find((e) => e.strategyId === list4[0].tacticsId)?.strategyName, `${preIds},99,1345,1355`, 3));
list4[0].tacticsId && lcRule.push(handleId(1355, 339, list[0].blackList.find((e) => e.strategyId === list4[0].tacticsId)?.strategyName || '', `${preIds},99,1345,1355`, 3));
list4[1].tacticsSelectedStatus && lcRule.push(handleId(1351, 327, list4[1].tacticsSelectedStatus, `${preIds},99,1346,1351`, 1));
// list4[1].tacticsId && lcRule.push(handleId(1356, 339, govList.value.find((e) => e.strategyId === list4[1].tacticsId)?.strategyName, `${preIds},99,1346,1356`, 3));
list4[1].tacticsId && lcRule.push(handleId(1356, 339, list[1].blackList.find((e) => e.strategyId === list4[1].tacticsId)?.strategyName || '', `${preIds},99,1346,1356`, 3));
list4[2].tacticsSelectedStatus && lcRule.push(handleId(1352, 327, list4[2].tacticsSelectedStatus, `${preIds},99,1347,1352`, 1));
// list4[2].tacticsId && lcRule.push(handleId(1357, 339, govList.value.find((e) => e.strategyId === list4[2].tacticsId)?.strategyName, `${preIds},99,1347,1357`, 3));
list4[2].tacticsId && lcRule.push(handleId(1357, 339, list[2].blackList.find((e) => e.strategyId === list4[2].tacticsId)?.strategyName || '', `${preIds},99,1347,1357`, 3));
list4[3].tacticsSelectedStatus && lcRule.push(handleId(1353, 327, list4[3].tacticsSelectedStatus, `${preIds},99,1348,1353`, 1));
// list4[3].tacticsId && lcRule.push(handleId(1358, 339, govList.value.find((e) => e.strategyId === list4[3].tacticsId)?.strategyName, `${preIds},99,1348,1358`, 3));
list4[3].tacticsId && lcRule.push(handleId(1358, 339, list[3].blackList.find((e) => e.strategyId === list4[3].tacticsId)?.strategyName || '', `${preIds},99,1348,1358`, 3));
list4[4].tacticsSelectedStatus && lcRule.push(handleId(1354, 327, list4[4].tacticsSelectedStatus, `${preIds},99,1349,1354`, 1));
// list4[4].tacticsId && lcRule.push(handleId(1359, 339, govList.value.find((e) => e.strategyId === list4[4].tacticsId)?.strategyName, `${preIds},99,1349,1359`, 3));
list4[4].tacticsId && lcRule.push(handleId(1359, 339, list[4].blackList.find((e) => e.strategyId === list4[4].tacticsId)?.strategyName || '', `${preIds},99,1349,1359`, 3));
}
}
await addOperation({
@ -1320,6 +1414,27 @@ const preview = (row: Record<string, any>, i: number) => {
curPreviewTitle.value = `查看${assessNames[i]}策略`;
visible.value = true;
};
//
const previewCredits = (row: Record<string, any>, i: number) => {
const { tacticsId } = form.creditScoringStrategyList[i];
curRow.value = {
id: tacticsId,
};
curPreview.value = i ? '513' : '512';
curPreviewTitle.value = `查看${i ? '企业' : '个人'}信用评分策略`;
visible.value = true;
};
//
const previewAfter = (row: Record<string, any>, i: number) => {
const { tacticsId } = form.postLoanSelectionStrategyList[i];
curRow.value = {
strategyId: tacticsId,
strategyName: row.blackList.find((e) => e.strategyId === tacticsId)?.strategyName,
};
curPreview.value = Object.keys(dynamicComponentMap)[i + 9];
curPreviewTitle.value = `查看${afterNames[i]}策略`;
visible.value = true;
};
</script>
<style lang="scss" scoped>

@ -2,7 +2,6 @@
<!-- 个人额度模型 -->
<el-form label-width="90px"
label-suffix=":"
class="form"
:disabled="disabled">
<el-form-item label="模型名称">
<el-input class="w-[320px]"
@ -106,7 +105,6 @@ import { ElMessage, ElLoading } from 'element-plus';
import { personalCreditModelDetails, personalCreditModelSaveOrUpdate } from '@/api/model';
import { getProcessInformationBasedOnRoles, addOperation } from '@/api/judgment';
import type { TableColumnCtx } from 'element-plus';
import { useRouter, useRoute } from 'vue-router';
import { handleId, getIds } from '@/utils/common';
import Cookies from 'js-cookie';
@ -131,6 +129,7 @@ const form = ref<Record<string, any>>({
const formProcess = ref<Record<string, any>[]>([]);
const info = ref<Record<string, any>[]>([]);
const len = ref<number>(0);
let loading = null;
const syncVisible = ref<boolean>(false);
//
const getConfig = async () => {
@ -190,9 +189,11 @@ const getConfig = async () => {
});
}
form.value.individualCreditModels = result;
loading?.close();
};
//
const getDetail = async () => {
loading = ElLoading.service();
try {
if (id.value) {
const { data } = await personalCreditModelDetails({
@ -300,12 +301,14 @@ const addRecord = async (data: Record<string, any>) => {
parentId: preIds,
lcJudgmentRuleReq: rule,
});
loading?.close();
ElMessage.success('提交成功!');
syncVisible.value = false;
emit('close', 1);
};
//
const submit = async (synchronizeUpdate?: number) => {
loading = ElLoading.service();
const param = JSON.parse(JSON.stringify(form.value));
param?.individualCreditModels.forEach((e, i) => {
delete e.recordChildren;

@ -91,6 +91,7 @@ import { Delete } from '@element-plus/icons-vue';
import { pageSizes, pageLayout } from '@/utils/common';
import { quotaModelList, quotaModelDel } from '@/api/model';
import Search from '@/components/Search.vue';
const Detail = defineAsyncComponent(() => import('./Detail.vue'));
const keyWord = ref<string>();
@ -147,7 +148,7 @@ const toAdd = () => {
visible.value = true;
};
//
const toDetail = async (row: Record<string, any>, detail: boolean = false) => {
const toDetail = async (row: Record<string, any>, detail = false) => {
i.value++;
isDetail.value = detail;
curRow.value = row;

@ -168,11 +168,11 @@ const getConfig = async () => {
});
}
form.value.individualInterestRateModels = result;
loading.close();
loading?.close();
};
//
const getDetail = async (load?: number) => {
if (load) loading = ElLoading.service();
const getDetail = async () => {
loading = ElLoading.service();
try {
if (id.value) {
const { data } = await personalInterestRateDetails({
@ -187,9 +187,7 @@ const getDetail = async (load?: number) => {
} finally {
}
};
onMounted(() => {
getDetail(1);
});
onMounted(getDetail);
interface SpanMethodProps {
row: Record<string, any>;
@ -256,12 +254,14 @@ const addRecord = async (data: Record<string, any>) => {
parentId: preIds,
lcJudgmentRuleReq: rule,
});
loading?.close();
ElMessage.success('提交成功!');
syncVisible.value = false;
emit('close', 1);
};
//
const submit = async (synchronizeUpdate?: number) => {
loading = ElLoading.service();
const param = JSON.parse(JSON.stringify(form.value));
param?.individualInterestRateModels.forEach((e, i) => {
delete e.recordChildren;

@ -147,7 +147,7 @@ const toAdd = () => {
visible.value = true;
};
//
const toDetail = async (row: Record<string, any>, detail: boolean = false) => {
const toDetail = async (row: Record<string, any>, detail = false) => {
i.value++;
isDetail.value = detail;
curRow.value = row;

@ -191,38 +191,12 @@ const getConfig = async () => {
});
}
});
// result.push(
// {
// indexId: info.value[10]?.indexId || '',
// modelId: info.value[10]?.modelId || '',
// indexName: '',
// formula: ' =+ ',
// floatingCoefficient: '',
// },
// {
// indexId: info.value[11]?.indexId || '',
// modelId: info.value[11]?.modelId || '',
// indexName: '',
// formula: '--',
// id: info.value[11]?.corporateInterestRateModels[info.value[11]?.corporateInterestRateModels?.length - 1]?.id || '',
// floatingCoefficient: info.value[11]?.corporateInterestRateModels[info.value[11]?.corporateInterestRateModels?.length - 1]?.floatingCoefficient ?? '',
// },
// {
// indexId: info.value[12]?.indexId || '',
// modelId: info.value[12]?.modelId || '',
// indexName: '',
// formula: '--',
// id: info.value[12]?.corporateInterestRateModels[info.value[12]?.corporateInterestRateModels?.length - 1]?.id || '',
// floatingCoefficient: info.value[12]?.corporateInterestRateModels[info.value[12]?.corporateInterestRateModels?.length - 1]?.floatingCoefficient ?? '',
// },
// );
form.value.corporateInterestRateModelIndicators = result;
console.log('🚀 ~ getConfig ~ result:', result);
loading.close();
loading?.close();
};
//
const getDetail = async (load?: number) => {
if (load) loading = ElLoading.service();
const getDetail = async () => {
loading = ElLoading.service();
try {
if (id.value) {
const { data } = await businessInterestRateDetails({
@ -237,9 +211,7 @@ const getDetail = async (load?: number) => {
} finally {
}
};
onMounted(() => {
getDetail(1);
});
onMounted(getDetail);
interface SpanMethodProps {
row: Record<string, any>;
@ -356,12 +328,14 @@ const addRecord = async (data: Record<string, any>) => {
parentId: preIds,
lcJudgmentRuleReq: rule,
});
loading?.close();
ElMessage.success('提交成功!');
syncVisible.value = false;
emit('close', 1);
};
//
const submit = async (synchronizeUpdate?: number) => {
loading = ElLoading.service();
const param = JSON.parse(JSON.stringify(form.value));
const list = [];
param.corporateInterestRateModelIndicators.forEach((e, i) => {

@ -147,7 +147,7 @@ const toAdd = () => {
visible.value = true;
};
//
const toDetail = async (row: Record<string, any>, detail: boolean = false) => {
const toDetail = async (row: Record<string, any>, detail = false) => {
i.value++;
isDetail.value = detail;
curRow.value = row;

@ -2,7 +2,8 @@
<el-form label-width="90px"
label-suffix=":"
class="form"
:disabled="disabled">
:disabled="disabled"
v-loading="loading">
<el-form-item label="策略名称">
<el-input class="w-[320px]"
placeholder="请输入20以内字符"
@ -136,7 +137,6 @@
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<div v-if="!disabled"
class="flex justify-end mt-3">
<div class="dia-btn cancel"
@ -144,6 +144,7 @@
<div class="dia-btn"
@click="confirmSubmit">确定</div>
</div>
</el-form>
<Confirm v-model="syncVisible"
@submit="submit" />
@ -186,6 +187,7 @@ const symbols: Array<Record<string, any>> = [
name: '<=',
},
];
const loading = ref<boolean>(false);
const syncVisible = ref<boolean>(false);
//
const getConfig = async () => {
@ -229,9 +231,11 @@ const getConfig = async () => {
}
});
form.value = result;
loading.value = false;
};
//
const getDetail = async () => {
loading.value = true;
try {
if (strategyId.value) {
const { data } = await accessStrategyGovernmentBlacklistFind({
@ -326,12 +330,14 @@ const addRecord = async (data: Record<string, any>) => {
parentId: preIds,
lcJudgmentRuleReq: rule,
});
loading.value = false;
ElMessage.success('提交成功!');
syncVisible.value = false;
emit('close', 1);
};
//
const submit = async (synchronizeUpdate?: number) => {
loading.value = true;
let param = JSON.parse(JSON.stringify(form.value));
param.map((e, i) => {
if (info.value.length) e.id = info.value.find((n) => n.stRecordId === e.stRecordId)?.id;

@ -147,7 +147,7 @@ const toAdd = () => {
visible.value = true;
};
//
const toDetail = async (row: Record<string, any>, detail: boolean = false) => {
const toDetail = async (row: Record<string, any>, detail = false) => {
i.value++;
isDetail.value = detail;
curRow.value = row;

@ -2,7 +2,8 @@
<el-form label-width="90px"
label-suffix=":"
class="form"
:disabled="disabled">
:disabled="disabled"
v-loading="loading">
<el-form-item label="策略名称"
prop="fundName">
<el-input class="w-[320px]"
@ -125,7 +126,6 @@
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<div v-if="!disabled"
class="flex justify-end mt-3">
<div class="dia-btn cancel"
@ -133,6 +133,7 @@
<div class="dia-btn"
@click="confirmSubmit">确定</div>
</div>
</el-form>
<Confirm v-model="syncVisible"
@submit="submit" />
@ -184,6 +185,7 @@ const symbols: Array<Record<string, any>> = [
name: '<=',
},
];
const loading = ref<boolean>(false);
const syncVisible = ref<boolean>(false);
//
const getConfig = async () => {
@ -213,9 +215,11 @@ const getConfig = async () => {
result.push(temp);
});
form.value = result;
loading.value = false;
};
//
const getDetail = async () => {
loading.value = true;
try {
if (strategyId.value) {
const { data } = await accessStrategyCreditBlacklistFind({
@ -259,12 +263,14 @@ const addRecord = async (data: Record<string, any>) => {
parentId: preIds,
lcJudgmentRuleReq: rule,
});
loading.value = false;
ElMessage.success('提交成功!');
syncVisible.value = false;
emit('close', 1);
};
//
const submit = async (synchronizeUpdate?: number) => {
loading.value = true;
let param = JSON.parse(JSON.stringify(form.value));
param.map((e, i) => {
if (info.value.length) e.id = info.value.find((n) => n.stRecordId === e.stRecordId)?.id;

@ -73,7 +73,7 @@
class="px-3 py-2 justify-end"></el-pagination>
<el-drawer v-model="visible"
:title="(isDetail ? '查看' : curRow.governmentId ? '编辑' : '新增') + '征信黑名单策略'"
:title="(isDetail ? '查看' : curRow.strategyId ? '编辑' : '新增') + '征信黑名单策略'"
size="100%"
custom-class="model-drawer">
<Detail v-model:row="curRow"
@ -91,6 +91,7 @@ import { Delete } from '@element-plus/icons-vue';
import { pageSizes, pageLayout } from '@/utils/common';
import { accessStrategyCreditBlacklist, accessStrategyCreditBlacklistDel } from '@/api/model';
import Search from '@/components/Search.vue';
const Detail = defineAsyncComponent(() => import('./Detail.vue'));
const keyWord = ref<string>();
@ -147,7 +148,7 @@ const toAdd = () => {
visible.value = true;
};
//
const toDetail = async (row: Record<string, any>, detail: boolean = false) => {
const toDetail = async (row: Record<string, any>, detail = false) => {
i.value++;
isDetail.value = detail;
curRow.value = row;

@ -2,7 +2,8 @@
<el-form label-width="90px"
label-suffix=":"
class="form"
:disabled="disabled">
:disabled="disabled"
v-loading="loading">
<el-form-item label="策略名称"
prop="fundName">
<el-input class="w-[320px]"
@ -170,7 +171,6 @@
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<div v-if="!disabled"
class="flex justify-end mt-3">
<div class="dia-btn cancel"
@ -178,6 +178,7 @@
<div class="dia-btn"
@click="confirmSubmit">确定</div>
</div>
</el-form>
<Confirm v-model="syncVisible"
@submit="submit" />
@ -253,6 +254,7 @@ const tdNames: Record<string, any> = {
350: '内身份证或手机号申请次数',
351: '内同一个设备或手机号申请被拒次数过多。',
};
const loading = ref<boolean>(false);
const syncVisible = ref<boolean>(false);
//
const getConfig = async () => {
@ -348,9 +350,11 @@ const getConfig = async () => {
});
});
form.value = result;
loading.value = false;
};
//
const getDetail = async () => {
loading.value = true;
try {
if (strategyId.value) {
const { data } = await accessStrategyBusinessBlacklistFind({
@ -445,12 +449,14 @@ const addRecord = async (data: Record<string, any>) => {
parentId: preIds,
lcJudgmentRuleReq: rule,
});
loading.value = false;
ElMessage.success('提交成功!');
syncVisible.value = false;
emit('close', 1);
};
//
const submit = async (synchronizeUpdate?: number) => {
loading.value = true;
let param = [
{
id: info.value.find((n) => n.stRecordId === 318)?.id,

@ -91,6 +91,7 @@ import { Delete } from '@element-plus/icons-vue';
import { pageSizes, pageLayout } from '@/utils/common';
import { accessStrategyBusinessBlacklist, accessStrategyBusinessBlacklistDel } from '@/api/model';
import Search from '@/components/Search.vue';
const Detail = defineAsyncComponent(() => import('./Detail.vue'));
const keyWord = ref<string>();
@ -147,7 +148,7 @@ const toAdd = () => {
visible.value = true;
};
//
const toDetail = async (row: Record<string, any>, detail: boolean = false) => {
const toDetail = async (row: Record<string, any>, detail = false) => {
i.value++;
isDetail.value = detail;
curRow.value = row;

@ -2,7 +2,8 @@
<el-form label-width="90px"
label-suffix=":"
class="form"
:disabled="disabled">
:disabled="disabled"
v-loading="loading">
<el-form-item label="策略名称"
prop="fundName">
<el-input class="w-[320px]"
@ -141,7 +142,6 @@
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<div v-if="!disabled"
class="flex justify-end mt-3">
<div class="dia-btn cancel"
@ -149,6 +149,7 @@
<div class="dia-btn"
@click="confirmSubmit">确定</div>
</div>
</el-form>
<Confirm v-model="syncVisible"
@submit="submit" />
@ -187,6 +188,7 @@ const whethers: Record<string, any>[] = [
name: '否',
},
];
const loading = ref<boolean>(false);
const syncVisible = ref<boolean>(false);
//
const getConfig = async () => {
@ -215,9 +217,11 @@ const getConfig = async () => {
remark: '不存在未结清情况',
});
form.value = result;
loading.value = false;
};
//
const getDetail = async () => {
loading.value = true;
try {
if (strategyId.value) {
const { data } = await accessStrategyInlineBlacklistFind({
@ -273,9 +277,14 @@ const addRecord = async (data: Record<string, any>) => {
parentId: preIds,
lcJudgmentRuleReq: rule,
});
loading.value = false;
ElMessage.success('提交成功!');
syncVisible.value = false;
emit('close', 1);
};
//
const submit = async (synchronizeUpdate?: number) => {
loading.value = true;
let param = JSON.parse(JSON.stringify(form.value));
param.map((e, i) => {
if (info.value.length) e.id = info.value.find((n) => n.stRecordId === e.stRecordId)?.id;
@ -293,9 +302,6 @@ const submit = async (synchronizeUpdate?: number) => {
inlineBlacklistList: param,
});
addRecord(param);
ElMessage.success('提交成功!');
syncVisible.value = false;
emit('close', 1);
};
const confirmSubmit = () => {
if (!strategyName.value) return ElMessage.error('请输入策略名称!');

@ -91,6 +91,7 @@ import { Delete } from '@element-plus/icons-vue';
import { pageSizes, pageLayout } from '@/utils/common';
import { accessStrategyInlineBlacklist, accessStrategyInlineBlacklistDel } from '@/api/model';
import Search from '@/components/Search.vue';
const Detail = defineAsyncComponent(() => import('./Detail.vue'));
const keyWord = ref<string>();
@ -147,7 +148,7 @@ const toAdd = () => {
visible.value = true;
};
//
const toDetail = async (row: Record<string, any>, detail: boolean = false) => {
const toDetail = async (row: Record<string, any>, detail = false) => {
i.value++;
isDetail.value = detail;
curRow.value = row;

@ -2,7 +2,8 @@
<el-form label-width="90px"
label-suffix=":"
class="form"
:disabled="disabled">
:disabled="disabled"
v-loading="loading">
<el-form-item label="策略名称"
prop="fundName">
<el-input class="w-[320px]"
@ -285,7 +286,6 @@
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<div v-if="!disabled"
class="flex justify-end mt-3">
<div class="dia-btn cancel"
@ -293,6 +293,7 @@
<div class="dia-btn"
@click="confirmSubmit">确定</div>
</div>
</el-form>
<Confirm v-model="syncVisible"
@submit="submit" />
@ -322,6 +323,7 @@ const symbols: Array<string> = ['>=', '<', '>', '==', '<='];
const nums: Array<number> = [1, 3, 5, 6, 16, 33, 40];
const units: Array<string> = ['年', '月', '天'];
const have: Array<string> = ['无', '有'];
const loading = ref<boolean>(false);
const syncVisible = ref<boolean>(false);
//
const getConfig = async () => {
@ -346,9 +348,11 @@ const getConfig = async () => {
result.push(temp);
});
form.value = result;
loading.value = false;
};
//
const getDetail = async () => {
loading.value = true;
try {
if (strategyId.value) {
const { data } = await accessStrategyEnterpriseBlacklistFind({
@ -391,12 +395,14 @@ const addRecord = async (data: Record<string, any>) => {
parentId: preIds,
lcJudgmentRuleReq: rule,
});
loading.value = false;
ElMessage.success('提交成功!');
syncVisible.value = false;
emit('close', 1);
};
//
const submit = async (synchronizeUpdate?: number) => {
loading.value = true;
let param = [];
form.value.map((e, i) => {
const temp = {

@ -91,6 +91,7 @@ import { Delete } from '@element-plus/icons-vue';
import { pageSizes, pageLayout } from '@/utils/common';
import { accessStrategyEnterpriseBlacklist, accessStrategyEnterpriseBlacklistDel } from '@/api/model';
import Search from '@/components/Search.vue';
const Detail = defineAsyncComponent(() => import('./Detail.vue'));
const keyWord = ref<string>();
@ -147,7 +148,7 @@ const toAdd = () => {
visible.value = true;
};
//
const toDetail = async (row: Record<string, any>, detail: boolean = false) => {
const toDetail = async (row: Record<string, any>, detail = false) => {
i.value++;
isDetail.value = detail;
curRow.value = row;

@ -2,7 +2,8 @@
<el-form label-width="90px"
label-suffix=":"
class="form"
:disabled="disabled">
:disabled="disabled"
v-loading="loading">
<el-form-item label="策略名称"
prop="fundName">
<el-input class="w-[320px]"
@ -133,7 +134,6 @@
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<div v-if="!disabled"
class="flex justify-end mt-3">
<div class="dia-btn cancel"
@ -141,6 +141,7 @@
<div class="dia-btn"
@click="confirmSubmit">确定</div>
</div>
</el-form>
<Confirm v-model="syncVisible"
@submit="submit" />
@ -171,6 +172,7 @@ const symbols: Array<string> = ['>=', '<', '>', '==', '<='];
const nums: Array<number> = [2, 3, 4, 7, 10, 30, 60, 85];
const units: Array<string> = ['年', '月', '天'];
const have: Array<string> = ['否', '是'];
const loading = ref<boolean>(false);
const syncVisible = ref<boolean>(false);
//
const getConfig = async () => {
@ -274,9 +276,11 @@ const getConfig = async () => {
});
});
form.value = result;
loading.value = false;
};
//
const getDetail = async () => {
loading.value = true;
try {
if (strategyId.value) {
const { data } = await accessStrategyAntiFraudStrategyFind({
@ -369,12 +373,14 @@ const addRecord = async (data: Record<string, any>) => {
parentId: preIds,
lcJudgmentRuleReq: rule,
});
loading.value = false;
ElMessage.success('提交成功!');
syncVisible.value = false;
emit('close', 1);
};
//
const submit = async (synchronizeUpdate?: number) => {
loading.value = true;
let param = [
{
id: info.value.find((n) => n.stRecordId === 384)?.id,

@ -91,6 +91,7 @@ import { Delete } from '@element-plus/icons-vue';
import { pageSizes, pageLayout } from '@/utils/common';
import { accessStrategyAntiFraudStrategy, accessStrategyAntiFraudStrategyDel } from '@/api/model';
import Search from '@/components/Search.vue';
const Detail = defineAsyncComponent(() => import('./Detail.vue'));
const keyWord = ref<string>();
@ -147,7 +148,7 @@ const toAdd = () => {
visible.value = true;
};
//
const toDetail = async (row: Record<string, any>, detail: boolean = false) => {
const toDetail = async (row: Record<string, any>, detail = false) => {
i.value++;
isDetail.value = detail;
curRow.value = row;

@ -2,7 +2,8 @@
<el-form label-width="90px"
label-suffix=":"
class="form"
:disabled="disabled">
:disabled="disabled"
v-loading="loading">
<el-form-item label="策略名称"
prop="fundName">
<el-input class="w-[320px]"
@ -74,7 +75,6 @@
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<div v-if="!disabled"
class="flex justify-end mt-3">
<div class="dia-btn cancel"
@ -82,6 +82,7 @@
<div class="dia-btn"
@click="confirmSubmit">确定</div>
</div>
</el-form>
<Confirm v-model="syncVisible"
@submit="submit" />
@ -108,6 +109,7 @@ const emit = defineEmits(['clsoe']);
const form = ref<Record<string, any>[]>([]);
const { strategyId, strategyName } = toRefs(props.row);
const info = ref<Record<string, any>[]>([]);
const loading = ref<boolean>(false);
const syncVisible = ref<boolean>(false);
//
const getConfig = async () => {
@ -138,9 +140,11 @@ const getConfig = async () => {
});
});
form.value = result;
loading.value = false;
};
//
const getDetail = async () => {
loading.value = true;
try {
if (strategyId.value) {
const { data } = await accessStrategyNegativeIndustryStrategyFind({
@ -213,12 +217,14 @@ const addRecord = async (data: Record<string, any>) => {
parentId: preIds,
lcJudgmentRuleReq: rule,
});
loading.value = false;
ElMessage.success('提交成功!');
syncVisible.value = false;
emit('close', 1);
};
//
const submit = async (synchronizeUpdate?: number) => {
loading.value = true;
let param = [];
form.value.map((e, i) => {
if (e.index) {

@ -91,6 +91,7 @@ import { Delete } from '@element-plus/icons-vue';
import { pageSizes, pageLayout } from '@/utils/common';
import { accessStrategyNegativeIndustryStrategy, accessStrategyNegativeIndustryStrategyDel } from '@/api/model';
import Search from '@/components/Search.vue';
const Detail = defineAsyncComponent(() => import('./Detail.vue'));
const keyWord = ref<string>();
@ -147,7 +148,7 @@ const toAdd = () => {
visible.value = true;
};
//
const toDetail = async (row: Record<string, any>, detail: boolean = false) => {
const toDetail = async (row: Record<string, any>, detail = false) => {
i.value++;
isDetail.value = detail;
curRow.value = row;

@ -2,7 +2,8 @@
<el-form label-width="90px"
label-suffix=":"
class="form"
:disabled="disabled">
:disabled="disabled"
v-loading="loading">
<el-form-item label="策略名称">
<el-input class="w-[320px]"
placeholder="请输入20以内字符"
@ -55,7 +56,6 @@
type="textarea"
v-model="form.description" />
</el-form-item>
</el-form>
<div v-if="!disabled"
class="flex justify-end mt-3">
<div class="dia-btn cancel"
@ -63,6 +63,7 @@
<div class="dia-btn"
@click="confirmSubmit">确定</div>
</div>
</el-form>
<Confirm v-model="syncVisible"
@submit="submit" />
@ -97,6 +98,7 @@ const form = reactive({
description: '',
scoringObject: 0,
});
const loading = ref<boolean>(false);
const syncVisible = ref<boolean>(false);
//
@ -126,9 +128,11 @@ const getConfig = async () => {
});
});
list.value = result;
loading.value = false;
};
//
const getDetail = async () => {
loading.value = true;
if (id.value) {
try {
const res = await findCredit(id.value);
@ -240,13 +244,14 @@ const addRecord = async () => {
parentId: preIds,
lcJudgmentRuleReq: lcRule,
});
loading.value = false;
ElMessage.success('提交成功!');
syncVisible.value = false;
emit('close', 1);
};
//
const submit = async (synchronizeUpdate?: number) => {
if (!form.scoreCardName) return ElMessage.error('请输入评分卡名称');
loading.value = true;
const param = [];
list.value.forEach((e) => {

@ -91,6 +91,7 @@ import { Delete } from '@element-plus/icons-vue';
import { pageSizes, pageLayout } from '@/utils/common';
import { listCredit, delCredit } from '@/api/model';
import Search from '@/components/Search.vue';
const Detail = defineAsyncComponent(() => import('./Detail.vue'));
const keyWord = ref<string>();
@ -145,7 +146,7 @@ const toAdd = () => {
visible.value = true;
};
//
const toDetail = async (row: Record<string, any>, detail: boolean = false) => {
const toDetail = async (row: Record<string, any>, detail = false) => {
i.value++;
isDetail.value = detail;
curRow.value = row;

@ -2,7 +2,8 @@
<el-form label-width="90px"
label-suffix=":"
class="form"
:disabled="disabled">
:disabled="disabled"
v-loading="loading">
<el-form-item label="策略名称">
<el-input class="w-[320px]"
placeholder="请输入20以内字符"
@ -120,7 +121,6 @@
type="textarea"
v-model="form.description" />
</el-form-item>
</el-form>
<div v-if="!disabled"
class="flex justify-end mt-3">
<div class="dia-btn cancel"
@ -128,6 +128,7 @@
<div class="dia-btn"
@click="confirmSubmit">确定</div>
</div>
</el-form>
<Confirm v-model="syncVisible"
@submit="submit" />
@ -162,6 +163,7 @@ const form = reactive({
description: '',
scoringObject: 1,
});
const loading = ref<boolean>(false);
const syncVisible = ref<boolean>(false);
//
@ -542,9 +544,11 @@ const getConfig = async () => {
result[51].score = detail.value[37]?.dimensionIndexList[0]?.score;
}
list.value = result;
loading.value = false;
};
//
const getDetail = async () => {
loading.value = true;
if (id.value) {
try {
const res = await findCredit(id.value);
@ -751,13 +755,14 @@ const addRecord = async () => {
parentId: preIds,
lcJudgmentRuleReq: lcRule,
});
loading.value = false;
ElMessage.success('提交成功!');
syncVisible.value = false;
emit('close', 1);
};
//
const submit = async (synchronizeUpdate?: number) => {
if (!form.scoreCardName) return ElMessage.error('请输入评分卡名称');
loading.value = true;
const param = [];
list.value.forEach((e, i) => {

@ -91,6 +91,7 @@ import { Delete } from '@element-plus/icons-vue';
import { pageSizes, pageLayout } from '@/utils/common';
import { listCredit, delCredit } from '@/api/model';
import Search from '@/components/Search.vue';
const Detail = defineAsyncComponent(() => import('./Detail.vue'));
const keyWord = ref<string>();
@ -145,7 +146,7 @@ const toAdd = () => {
visible.value = true;
};
//
const toDetail = async (row: Record<string, any>, detail: boolean = false) => {
const toDetail = async (row: Record<string, any>, detail = false) => {
i.value++;
isDetail.value = detail;
curRow.value = row;

@ -1,5 +1,6 @@
<template>
<!-- 风险度策略-信用评分基础系数 -->
<div v-loading="loading">
<div class="mb-3 text-sm font-semibold">
单笔贷款风险度公式
<span class="text-[#0034ad]">单笔贷款风险度=</span>
@ -51,20 +52,18 @@
<div class="submit"
@click="submit">完成配置</div>
</div>
</div>
</template>
<script setup lang="ts">
import { ref, onMounted } from 'vue';
import { ElMessage, ElLoading } from 'element-plus';
import { ElMessage } from 'element-plus';
import { detailRick, saveRick } from '@/api/model';
import { getProcessInformationBasedOnRoles, addOperation } from '@/api/judgment';
import { useRouter, useRoute } from 'vue-router';
import { handleId, getIds } from '@/utils/common';
import Cookies from 'js-cookie';
const router = useRouter();
const route = useRoute();
let loading = null;
const loading = ref<boolean>(false);
const form = ref<Record<string, any>[]>([]);
const info = ref<Record<string, any>[]>([]);
//
@ -86,17 +85,17 @@ const getConfig = async () => {
});
});
form.value = result;
loading.close();
loading.value = false;
};
//
const getDetail = async (load?: number) => {
if (load) loading = ElLoading.service();
if (load) loading.value = true;
try {
const { data } = await detailRick(1);
info.value = data;
getConfig();
} catch (e) {
if (loading) loading.close();
loading.value = false;
}
};
onMounted(() => {
@ -105,7 +104,7 @@ onMounted(() => {
//
const submit = async () => {
loading = ElLoading.service();
loading.value = true;
await saveRick({ riskDegreeStrategyList: form.value });
addRecord();
getDetail();

@ -1,5 +1,6 @@
<template>
<!-- 风险度策略-担保方式基础系数 -->
<div v-loading="loading">
<div class="mb-3 text-sm font-semibold">
单笔贷款风险度公式
<span class="text-[#0034ad]">单笔贷款风险度=</span>
@ -11,7 +12,8 @@
</div>
<el-table class="c-table"
:data="form"
border>
border
max-height="calc(100vh - 230px)">
<el-table-column prop="recordName"
label="信用等级"
min-width="150">
@ -35,6 +37,7 @@
<div class="submit"
@click="submit">完成配置</div>
</div>
</div>
</template>
<script setup lang="ts">
@ -42,13 +45,10 @@ import { ref, onMounted } from 'vue';
import { ElMessage, ElLoading } from 'element-plus';
import { detailRick, saveRick } from '@/api/model';
import { getProcessInformationBasedOnRoles, addOperation } from '@/api/judgment';
import { useRouter, useRoute } from 'vue-router';
import { handleId, getIds } from '@/utils/common';
import Cookies from 'js-cookie';
const router = useRouter();
const route = useRoute();
let loading = null;
const loading = ref<boolean>(false);
const form = ref<Record<string, any>[]>([]);
const info = ref<Record<string, any>[]>([]);
//
@ -81,22 +81,22 @@ const getConfig = async () => {
});
});
form.value = result;
loading.close();
loading.value = false;
};
//
const getDetail = async (load?: number) => {
if (load) loading = ElLoading.service();
if (load) loading.value = true;
try {
const { data } = await detailRick(2);
info.value = data;
if (data.length) {
form.value = data;
loading.close();
loading.value = false;
} else {
getConfig();
}
} catch (e) {
if (loading) loading.close();
loading.value = false;
}
};
onMounted(() => {
@ -105,7 +105,7 @@ onMounted(() => {
//
const submit = async () => {
loading = ElLoading.service();
loading.value = true;
await saveRick({ riskDegreeStrategyList: form.value });
addRecord();
getDetail();

@ -1,5 +1,6 @@
<template>
<!-- 风险度策略-担保方式基础系数 -->
<div v-loading="loading">
<div class="mb-3 text-sm font-semibold">
单笔贷款风险度公式
<span class="text-[#0034ad]">单笔贷款风险度=</span>
@ -35,6 +36,7 @@
<div class="submit"
@click="submit">完成配置</div>
</div>
</div>
</template>
<script setup lang="ts">
@ -42,13 +44,10 @@ import { ref, onMounted } from 'vue';
import { ElMessage, ElLoading } from 'element-plus';
import { detailRick, saveRick } from '@/api/model';
import { getProcessInformationBasedOnRoles, addOperation } from '@/api/judgment';
import { useRouter, useRoute } from 'vue-router';
import { handleId, getIds } from '@/utils/common';
import Cookies from 'js-cookie';
const router = useRouter();
const route = useRoute();
let loading = null;
const loading = ref<boolean>(false);
const form = ref<Record<string, any>[]>([]);
const info = ref<Record<string, any>[]>([]);
//
@ -74,22 +73,22 @@ const getConfig = async () => {
});
});
form.value = result;
loading.close();
loading.value = false;
};
//
const getDetail = async (load?: number) => {
if (load) loading = ElLoading.service();
if (load) loading.value = true;
try {
const { data } = await detailRick(3);
info.value = data;
if (data.length) {
form.value = data;
loading.close();
loading.value = false;
} else {
getConfig();
}
} catch (e) {
if (loading) loading.close();
loading.value = false;
}
};
onMounted(() => {
@ -98,7 +97,7 @@ onMounted(() => {
//
const submit = async () => {
loading = ElLoading.service();
loading.value = true;
await saveRick({ riskDegreeStrategyList: form.value });
addRecord();
getDetail();

Loading…
Cancel
Save