yujialong 10 months ago
parent f05785d785
commit 7d810cb052
  1. 6
      src/components/Back.vue
  2. 1
      src/components/Panel/index.vue
  3. 37
      src/layout/components/AppHeader.vue
  4. 10
      src/layout/components/AppSidebar/Menu.vue
  5. 7
      src/layout/components/AppSidebar/index.vue
  6. 8
      src/layout/index.vue
  7. 13
      src/views/config/level/Index.vue
  8. 8
      src/views/product/afterLoan/1030.vue
  9. 30
      src/views/product/afterLoan/1031.vue
  10. 6
      src/views/product/afterLoan/1032.vue
  11. 12
      src/views/product/afterLoan/1033.vue
  12. 2
      src/views/product/insurance/Add.vue
  13. 4
      src/views/product/insurance/Info.vue
  14. 2
      src/views/product/insurance/List.vue
  15. 3
      src/views/product/interestRate/772.vue
  16. 2
      src/views/product/interestRate/935.vue
  17. 23
      src/views/product/interestRate/936.vue
  18. 3
      src/views/product/strategy/150.vue
  19. 12
      src/views/product/strategy/151.vue
  20. 6
      src/views/product/strategy/152.vue
  21. 17
      src/views/product/strategy/153.vue
  22. 6
      src/views/product/strategy/154.vue
  23. 3
      src/views/product/strategy/155.vue
  24. 15
      src/views/product/strategy/156.vue
  25. 3
      src/views/product/strategy/CardList.vue
  26. 83
      src/views/product/strategy/Credit.vue
  27. 2
      src/views/product/strategy/Risk1.vue

@ -1,6 +1,7 @@
<template> <template>
<div class="flex items-center p-3 mb-5 bg-white rounded-[10px]"> <div class="flex items-center p-3 mb-5 bg-white rounded-[10px]">
<div class="inline-flex items-center cursor-pointer"> <div class="inline-flex items-center cursor-pointer"
@click="logout">
<img src="@/assets/images/back.png" <img src="@/assets/images/back.png"
alt="" alt=""
class="" /> class="" />
@ -12,8 +13,11 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { PropType, ref } from 'vue'; import { PropType, ref } from 'vue';
import { useRouter, useRoute } from 'vue-router';
import { logout } from '@/store/useCurrentUser';
defineProps({ defineProps({
name: { type: String, required: true }, name: { type: String, required: true },
}); });
const router = useRouter();
</script> </script>

@ -299,6 +299,7 @@ if (param.token) {
Cookies.set('sand-startTime', param.startTime ?? ''); Cookies.set('sand-startTime', param.startTime ?? '');
Cookies.set('sand-resultsDetails', param.resultsDetails ?? ''); Cookies.set('sand-resultsDetails', param.resultsDetails ?? '');
Cookies.set('sand-resultAnnouncementTime', param.resultAnnouncementTime ?? ''); Cookies.set('sand-resultAnnouncementTime', param.resultAnnouncementTime ?? '');
Cookies.set('sand-admin', param.admin ?? ''); //
Cookies.remove('sand-submit'); Cookies.remove('sand-submit');
router.replace(route.path); router.replace(route.path);
} else { } else {

@ -1,7 +1,8 @@
<template> <template>
<div class="width-[100%] flex justify-between items-center w-full py-6 px-5 overflow-hidden bg-transparent"> <div class="width-[100%] flex justify-between items-center w-full py-6 px-5 overflow-hidden bg-transparent">
<logo :collapse="collapse" /> <logo :collapse="collapse" />
<div class="inline-flex items-center"> <div v-if="!hidePanel"
class="inline-flex items-center">
<el-tooltip effect="light" <el-tooltip effect="light"
content="退出实训" content="退出实训"
placement="bottom"> placement="bottom">
@ -10,24 +11,22 @@
alt="" alt=""
@click="logout" /> @click="logout" />
</el-tooltip> </el-tooltip>
<template v-if="!hidePanel"> <el-tooltip effect="light"
<el-tooltip effect="light" content="返回关卡"
content="返回关卡" placement="bottom">
placement="bottom"> <img class="mr-3 cursor-pointer"
<img class="mr-3 cursor-pointer" src="@/assets/images/2.png"
src="@/assets/images/2.png" alt=""
alt="" @click="toLevel" />
@click="toLevel" /> </el-tooltip>
</el-tooltip> <el-tooltip effect="light"
<el-tooltip effect="light" content="返回选择角色"
content="返回选择角色" placement="bottom">
placement="bottom"> <img class="cursor-pointer"
<img class="cursor-pointer" src="@/assets/images/4.png"
src="@/assets/images/4.png" alt=""
alt="" @click="toRole" />
@click="toRole" /> </el-tooltip>
</el-tooltip>
</template>
</div> </div>
</div> </div>
</template> </template>

@ -1,5 +1,5 @@
<template> <template>
<ul class="switch px-7 mt-5"> <ul class="switch px-7">
<!-- 产品经理 --> <!-- 产品经理 -->
<template v-if="role == 41"> <template v-if="role == 41">
<li :class="{ active: active == 1 }" <li :class="{ active: active == 1 }"
@ -102,7 +102,9 @@
alt="" /> alt="" />
<p class="text">参数配置</p> <p class="text">参数配置</p>
</li> </li>
<li :class="{ active: route.path === '/config/level' }" <!-- 中台进来的才需要显示关卡配置 -->
<li v-if="isAdmin"
:class="{ active: route.path === '/config/level' }"
@click="toPage('/config/level')"> @click="toPage('/config/level')">
<img class="icon" <img class="icon"
src="@/assets/images/icon1.png" src="@/assets/images/icon1.png"
@ -117,13 +119,15 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { computed, ref, toRefs } from 'vue'; import { computed, ref } from 'vue';
import { useRouter, useRoute } from 'vue-router'; import { useRouter, useRoute } from 'vue-router';
import Cookies from 'js-cookie';
const router = useRouter(); const router = useRouter();
const route = useRoute(); const route = useRoute();
const active = computed(() => route.query.i); const active = computed(() => route.query.i);
const role = computed(() => route.query.role); const role = computed(() => route.query.role);
const isAdmin = ref<number | string>(route.query.admin ?? Cookies.get('sand-admin')); //
// //
const toPage = (path: string) => { const toPage = (path: string) => {

@ -1,11 +1,12 @@
<template> <template>
<div> <div>
<el-scrollbar wrap-style="height: calc(100% - 85px)"> <el-scrollbar wrap-style="height: calc(100% - 85px)">
<div class="avatar py-3 mx-auto text-center"> <div v-if="!isConfig"
class="avatar py-3 mx-auto mb-5 text-center">
<img class="mx-auto" <img class="mx-auto"
src="@/assets/images/6.png" src="@/assets/images/6.png"
alt="" /> alt="" />
<p class="text-white text-md">{{roleName}}</p> <p class="text-white text-md">{{ roleName }}</p>
<p class="my-2 text-white text-sm">产品部门</p> <p class="my-2 text-white text-sm">产品部门</p>
<div class="flex justify-center items-center text-white text-xs"> <div class="flex justify-center items-center text-white text-xs">
操作日期{{ date }} 操作日期{{ date }}
@ -50,6 +51,7 @@ import dayjs from 'dayjs';
const router = useRouter(); const router = useRouter();
const route = useRoute(); const route = useRoute();
const isConfig = computed(() => route.path.startsWith('/config'));
const projectId = +Cookies.get('sand-projectId'); const projectId = +Cookies.get('sand-projectId');
const levelId = +Cookies.get('sand-level'); const levelId = +Cookies.get('sand-level');
const date = ref<string>(dayjs(new Date()).format('YYYY-M-D')); const date = ref<string>(dayjs(new Date()).format('YYYY-M-D'));
@ -63,6 +65,7 @@ const roleName = computed(() => {
return '保险产品经理'; return '保险产品经理';
} }
}); });
console.log('🚀 ~ roleName ~ roleName:', isConfig.value);
// //
const getDate = async () => { const getDate = async () => {
if (levelId && projectId) { if (levelId && projectId) {

@ -1,6 +1,9 @@
<template> <template>
<div class="min-h-full bg-[url('@/assets/images/1.png')] bg-[length:100%_100%] bg-no-repeat"> <div class="min-h-full bg-[url('@/assets/images/1.png')] bg-[length:100%_100%] bg-no-repeat">
<app-header /> <app-header />
<Back v-if="hidePanel"
class="mx-3"
name="金融产品设计及数字化营销沙盘系统后台管理系统" />
<app-sidebar v-if="!hideNav" <app-sidebar v-if="!hideNav"
class="sidebar fixed w-sidebar h-full px-5 overflow-hidden transition-width duration-300 z-40" /> class="sidebar fixed w-sidebar h-full px-5 overflow-hidden transition-width duration-300 z-40" />
<div class="main h-[calc(100vh-86px)] transition-margin duration-300 overflow-auto" <div class="main h-[calc(100vh-86px)] transition-margin duration-300 overflow-auto"
@ -19,12 +22,14 @@ import Settings from '@/settings';
import { AppSidebar, AppHeader, AppMain } from './components'; import { AppSidebar, AppHeader, AppMain } from './components';
import useResizeHandler from './composables/useResizeHandler'; import useResizeHandler from './composables/useResizeHandler';
import Panel from '@/components/Panel/index.vue'; import Panel from '@/components/Panel/index.vue';
import Back from '@/components/Back.vue';
export default defineComponent({ export default defineComponent({
name: 'Layout', name: 'Layout',
components: { AppSidebar, AppHeader, AppMain, Panel }, components: { AppSidebar, AppHeader, AppMain, Panel, Back },
setup() { setup() {
const route = useRoute(); const route = useRoute();
const isConfig = computed(() => route.path.startsWith('/config'));
// //
const hideNav = computed(() => { const hideNav = computed(() => {
return Settings.hideNavPath.includes(route.path); return Settings.hideNavPath.includes(route.path);
@ -38,6 +43,7 @@ export default defineComponent({
return { return {
hideNav, hideNav,
hidePanel, hidePanel,
isConfig,
}; };
}, },
}); });

@ -41,7 +41,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="h-[calc(100vh-240px)] overflow-auto" <div class="h-[calc(100vh-310px)] overflow-auto"
id="tableWrap"> id="tableWrap">
<el-table v-loading="loading" <el-table v-loading="loading"
:data="list" :data="list"
@ -135,7 +135,7 @@
<template #default="{ row }"> <template #default="{ row }">
<el-popconfirm v-if="row.checkpointId" <el-popconfirm v-if="row.checkpointId"
:title="delTitle" :title="delTitle"
@confirm.stop="handleDelete([row.checkpointId])"> @confirm.stop="handleDelete([row])">
<template #reference> <template #reference>
<el-button type="text" <el-button type="text"
size="small">删除</el-button> size="small">删除</el-button>
@ -280,12 +280,13 @@ const cancel = async (row: Record<string, any>) => {
row.editing = !row.editing; row.editing = !row.editing;
}; };
// //
const handleDelete = async (id: number[]) => { const handleDelete = async (rows: Record<string, any>[]) => {
try { try {
const param = id.map((e) => { const param = rows.map((e) => {
return { return {
checkpointId: e, checkpointId: e.checkpointId,
isDel: 1, isDel: 1,
customsPassName: e.customsPassName,
}; };
}); });
await updatePass(param); await updatePass(param);
@ -295,6 +296,6 @@ const handleDelete = async (id: number[]) => {
}; };
// //
const delAll = async () => { const delAll = async () => {
handleDelete(multipleSelection.value.map((e) => e.checkpointId)); handleDelete(multipleSelection.value);
}; };
</script> </script>

@ -26,7 +26,8 @@
min-width="200" min-width="200"
align="center"> align="center">
<template #default="{ row }"> <template #default="{ row }">
<el-select v-model="row.checkObject"> <el-select v-if="row.recordChildren"
v-model="row.checkObject">
<el-option v-for="item in row?.recordChildren[1].subject.itemList" <el-option v-for="item in row?.recordChildren[1].subject.itemList"
:key="item" :key="item"
:label="item.options" :label="item.options"
@ -41,7 +42,8 @@
<span v-if="$index === 4">点击后触发</span> <span v-if="$index === 4">点击后触发</span>
<div v-else <div v-else
class="flex items-center"> class="flex items-center">
<el-select v-model="row.checkTimeType"> <el-select v-if="row.recordChildren"
v-model="row.checkTimeType">
<el-option v-for="item in row?.recordChildren[2].recordChildren[0].subject.itemList" <el-option v-for="item in row?.recordChildren[2].recordChildren[0].subject.itemList"
:key="item" :key="item"
:label="item.options" :label="item.options"
@ -149,7 +151,7 @@ const addRecord = async (data: Record<string, any>) => {
i !== 4 && rule.push(handleId(1054, 283, e.checkTimeType, preIds + ',' + e.stRecordId + ',1054,1056', 1)); i !== 4 && rule.push(handleId(1054, 283, e.checkTimeType, preIds + ',' + e.stRecordId + ',1054,1056', 1));
e.timeDays && rule.push(handleId(1057, 284, e.timeDays, preIds + ',' + e.stRecordId + ',1054,1057', 3)); e.timeDays && rule.push(handleId(1057, 284, e.timeDays, preIds + ',' + e.stRecordId + ',1054,1057', 3));
e.governmentData && rule.push(handleId(1058, '', '', preIds + ',' + e.stRecordId + ',1055,1058', '')); e.governmentData && rule.push(handleId(1058, '', '', preIds + ',' + e.stRecordId + ',1055,1058', ''));
e.creditData && rule.push(handleId(1058, '', '', preIds + ',' + e.stRecordId + ',1055,1058', '')); e.creditData && rule.push(handleId(1059, '', '', preIds + ',' + e.stRecordId + ',1055,1059', ''));
}); });
await addOperation({ await addOperation({

@ -18,7 +18,8 @@
<template v-if="$index === 1"> <template v-if="$index === 1">
存贷比 = 存贷比 =
<div class="inline-flex flex-col justify-center mx-2"> <div class="inline-flex flex-col justify-center mx-2">
<el-select class="w-[140px]" <el-select v-if="row.recordChildren"
class="w-[140px]"
v-model="row.formulaOne"> v-model="row.formulaOne">
<el-option v-for="item in row?.recordChildren[0].subject.itemList" <el-option v-for="item in row?.recordChildren[0].subject.itemList"
:key="item" :key="item"
@ -26,7 +27,8 @@
:value="item.itemId" /> :value="item.itemId" />
</el-select> </el-select>
<p class="h-[1px] my-2 bg-[#cdcdcd]"></p> <p class="h-[1px] my-2 bg-[#cdcdcd]"></p>
<el-select class="w-[140px]" <el-select v-if="row.recordChildren"
class="w-[140px]"
v-model="row.formulaTwo"> v-model="row.formulaTwo">
<el-option v-for="item in row?.recordChildren[1].subject.itemList" <el-option v-for="item in row?.recordChildren[1].subject.itemList"
:key="item" :key="item"
@ -38,7 +40,8 @@
</template> </template>
<template v-if="$index === 6"> <template v-if="$index === 6">
房屋净值 = 房屋净值 =
<el-select class="w-[140px] mx-2" <el-select v-if="row.recordChildren"
class="w-[140px] mx-2"
v-model="row.formulaOne"> v-model="row.formulaOne">
<el-option v-for="item in row?.recordChildren[0].subject.itemList" <el-option v-for="item in row?.recordChildren[0].subject.itemList"
:key="item" :key="item"
@ -46,7 +49,8 @@
:value="item.itemId" /> :value="item.itemId" />
</el-select> </el-select>
- -
<el-select class="w-[140px] ml-2" <el-select v-if="row.recordChildren"
class="w-[140px] ml-2"
v-model="row.formulaTwo"> v-model="row.formulaTwo">
<el-option v-for="item in row?.recordChildren[1].subject.itemList" <el-option v-for="item in row?.recordChildren[1].subject.itemList"
:key="item" :key="item"
@ -58,7 +62,8 @@
<el-input class="w-[80px] mx-2" <el-input class="w-[80px] mx-2"
v-model="row.formulaOne"></el-input> v-model="row.formulaOne"></el-input>
<el-select class="w-[140px] mr-2" <el-select v-if="row.recordChildren"
class="w-[140px] mr-2"
v-model="row.formulaTwo"> v-model="row.formulaTwo">
<el-option v-for="item in row?.recordChildren[1].subject.itemList" <el-option v-for="item in row?.recordChildren[1].subject.itemList"
:key="item" :key="item"
@ -69,7 +74,8 @@
</template> </template>
<template v-if="$index === 13"> <template v-if="$index === 13">
<el-select class="w-[140px] mx-2" <el-select v-if="row.recordChildren"
class="w-[140px] mx-2"
v-model="row.formulaOne"> v-model="row.formulaOne">
<el-option v-for="item in row?.recordChildren[0].subject.itemList" <el-option v-for="item in row?.recordChildren[0].subject.itemList"
:key="item" :key="item"
@ -82,7 +88,8 @@
<template v-if="$index === 20"> <template v-if="$index === 20">
平均额度使用率 = 平均额度使用率 =
<div class="inline-flex flex-col justify-center mx-2"> <div class="inline-flex flex-col justify-center mx-2">
<el-select class="w-[140px]" <el-select v-if="row.recordChildren"
class="w-[140px]"
v-model="row.formulaOne"> v-model="row.formulaOne">
<el-option v-for="item in row?.recordChildren[0].subject.itemList" <el-option v-for="item in row?.recordChildren[0].subject.itemList"
:key="item" :key="item"
@ -90,7 +97,8 @@
:value="item.itemId" /> :value="item.itemId" />
</el-select> </el-select>
<p class="h-[1px] my-2 bg-[#cdcdcd]"></p> <p class="h-[1px] my-2 bg-[#cdcdcd]"></p>
<el-select class="w-[140px]" <el-select v-if="row.recordChildren"
class="w-[140px]"
v-model="row.formulaTwo"> v-model="row.formulaTwo">
<el-option v-for="item in row?.recordChildren[1].subject.itemList" <el-option v-for="item in row?.recordChildren[1].subject.itemList"
:key="item" :key="item"
@ -103,7 +111,8 @@
<template v-if="$index === 24"> <template v-if="$index === 24">
最大用信率 = 最大用信率 =
<div class="inline-flex flex-col justify-center mx-2"> <div class="inline-flex flex-col justify-center mx-2">
<el-select class="w-[140px]" <el-select v-if="row.recordChildren"
class="w-[140px]"
v-model="row.formulaOne"> v-model="row.formulaOne">
<el-option v-for="item in row?.recordChildren[0].subject.itemList" <el-option v-for="item in row?.recordChildren[0].subject.itemList"
:key="item" :key="item"
@ -111,7 +120,8 @@
:value="item.itemId" /> :value="item.itemId" />
</el-select> </el-select>
<p class="h-[1px] my-2 bg-[#cdcdcd]"></p> <p class="h-[1px] my-2 bg-[#cdcdcd]"></p>
<el-select class="w-[140px]" <el-select v-if="row.recordChildren"
class="w-[140px]"
v-model="row.formulaTwo"> v-model="row.formulaTwo">
<el-option v-for="item in row?.recordChildren[1].subject.itemList" <el-option v-for="item in row?.recordChildren[1].subject.itemList"
:key="item" :key="item"

@ -18,7 +18,8 @@
align="center"> align="center">
<template #default="{ row }"> <template #default="{ row }">
<div class="flex"> <div class="flex">
<el-select class="mr-2" <el-select v-if="row.recordChildren"
class="mr-2"
v-model="row.riskGradeType"> v-model="row.riskGradeType">
<el-option v-for="item in row?.recordChildren[1].recordChildren[0].subject.itemList" <el-option v-for="item in row?.recordChildren[1].recordChildren[0].subject.itemList"
:key="item" :key="item"
@ -26,7 +27,8 @@
:value="item.itemId" /> :value="item.itemId" />
</el-select> </el-select>
<el-select v-model="row.riskGrade"> <el-select v-if="row.recordChildren"
v-model="row.riskGrade">
<el-option v-for="item in row?.recordChildren[1].recordChildren[1].subject.itemList" <el-option v-for="item in row?.recordChildren[1].recordChildren[1].subject.itemList"
:key="item" :key="item"
:label="item.options" :label="item.options"

@ -11,19 +11,21 @@
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column label="选择催收方式" <el-table-column label="选择催收方式"
width="360" width="440"
align="center"> align="center">
<template #default="{ row }"> <template #default="{ row }">
<el-checkbox v-model="row.shortMessageCollection">短信催收</el-checkbox> <el-checkbox v-model="row.shortMessageCollection">短信催收</el-checkbox>
<el-checkbox v-model="row.appCollection">APP催收</el-checkbox> <el-checkbox v-model="row.appCollection">APP催收</el-checkbox>
<el-checkbox v-model="row.automaticOutboundCall">自动外呼</el-checkbox> <el-checkbox v-model="row.automaticOutboundCall">自动外呼</el-checkbox>
<el-checkbox v-model="row.manualCollection">人工催收</el-checkbox>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="短信/APP/自动外呼 话术" <el-table-column label="短信/APP/自动外呼 话术"
min-width="310" min-width="310"
align="center"> align="center">
<template #default="{ row }"> <template #default="{ row }">
<el-select class="w-full" <el-select v-if="row.recordChildren"
class="w-full"
v-model="row.verbalTrick"> v-model="row.verbalTrick">
<el-option v-for="item in row?.recordChildren[3].subject.itemList" <el-option v-for="item in row?.recordChildren[3].subject.itemList"
:key="item" :key="item"
@ -65,6 +67,7 @@ const getConfig = async () => {
appCollection: info.value.length ? !!cur.appCollection : false, appCollection: info.value.length ? !!cur.appCollection : false,
automaticOutboundCall: info.value.length ? !!cur.automaticOutboundCall : false, automaticOutboundCall: info.value.length ? !!cur.automaticOutboundCall : false,
shortMessageCollection: info.value.length ? !!cur.shortMessageCollection : false, shortMessageCollection: info.value.length ? !!cur.shortMessageCollection : false,
manualCollection: info.value.length ? !!cur.manualCollection : false,
verbalTrick: +(cur.verbalTrick || 750), verbalTrick: +(cur.verbalTrick || 750),
id: cur.id || '', id: cur.id || '',
stRecordId: e.id, stRecordId: e.id,
@ -82,15 +85,17 @@ const getDetail = async () => {
} }
}; };
const fieldKeys = ['shortMessageCollection', 'appCollection', 'automaticOutboundCall']; const fieldKeys = ['shortMessageCollection', 'appCollection', 'automaticOutboundCall', '', 'manualCollection'];
// //
const addRecord = async (data: Record<string, any>) => { const addRecord = async (data: Record<string, any>) => {
console.log('🚀 ~ addRecord ~ data:', data);
const preIds = `1,${levelId},42,69,1033,1149`; // 1id const preIds = `1,${levelId},42,69,1033,1149`; // 1id
const rule = []; const rule = [];
data.map((e) => { data.map((e) => {
e.recordChildren.forEach((n, i) => { e.recordChildren.forEach((n, i) => {
if (i !== 3) { if (i !== 3) {
console.log('🚀 ~ e.recordChildren.forEach ~ n.id:', e[fieldKeys[i]], n.id);
e[fieldKeys[i]] && rule.push(handleId(n.id, '', '', `${preIds},${e.stRecordId},${n.id}`, '')); e[fieldKeys[i]] && rule.push(handleId(n.id, '', '', `${preIds},${e.stRecordId},${n.id}`, ''));
} else { } else {
rule.push(handleId(n.id, n.subjectId, e.verbalTrick, `${preIds},${e.stRecordId},${n.id}`, 1)); rule.push(handleId(n.id, n.subjectId, e.verbalTrick, `${preIds},${e.stRecordId},${n.id}`, 1));
@ -112,6 +117,7 @@ const submit = async () => {
e.appCollection = +e.appCollection; e.appCollection = +e.appCollection;
e.automaticOutboundCall = +e.automaticOutboundCall; e.automaticOutboundCall = +e.automaticOutboundCall;
e.shortMessageCollection = +e.shortMessageCollection; e.shortMessageCollection = +e.shortMessageCollection;
e.manualCollection = +e.manualCollection;
}); });
const recordParam = JSON.parse(JSON.stringify(param)); const recordParam = JSON.parse(JSON.stringify(param));

@ -230,7 +230,7 @@ const submit = async () => {
} }
param.insuranceCoverageConfigList.push({ param.insuranceCoverageConfigList.push({
insuredLiabilityId: e.id, insuredLiabilityId: e.id,
sumInsured: +e.sumInsured, sumInsured: Number(e.sumInsured).toFixed(2),
}); });
} }
} }

@ -15,11 +15,11 @@
:key="item" :key="item"
class="flex"> class="flex">
<p class="w-[130px] mr-32">{{ item.insuranceCoverage }}</p> <p class="w-[130px] mr-32">{{ item.insuranceCoverage }}</p>
<p>{{ item.sumInsured * (item.insuredLiabilityId === 764 || item.insuredLiabilityId === 765 ? 1 : 10000) }}</p> <p>{{ Number(item.sumInsured * (item.insuredLiabilityId === 764 || item.insuredLiabilityId === 765 ? 1 : 10000)).toFixed(2) }}</p>
</div> </div>
</div> </div>
<p v-if="info.premiumAmount" <p v-if="info.premiumAmount"
class="text">保费金额{{ info.premiumAmount }}</p> class="text">保费金额{{ Number(info.premiumAmount).toFixed(2) }}</p>
<p v-if="info.formOfPayment" <p v-if="info.formOfPayment"
class="text">缴纳形式{{ info.formOfPayment }}</p> class="text">缴纳形式{{ info.formOfPayment }}</p>
<div v-if="info.applicationMaterialList?.length" <div v-if="info.applicationMaterialList?.length"

@ -52,7 +52,7 @@
label="保险额度(元)" label="保险额度(元)"
min-width="300"> min-width="300">
<template #default="{ row }"> <template #default="{ row }">
{{ row.insuranceCoverageConfig ? row.insuranceCoverageConfig + '万保额' : '-' }} {{ row.insuranceCoverageConfig ? row.insuranceCoverageConfig + '万' : '-' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="insuranceDeadline" <el-table-column prop="insuranceDeadline"

@ -62,7 +62,8 @@
class="flex items-center"> class="flex items-center">
<span v-if="!$index" <span v-if="!$index"
class="mr-2 whitespace-nowrap">{{ row?.subject?.name }}</span> class="mr-2 whitespace-nowrap">{{ row?.subject?.name }}</span>
<el-select v-model="row.score"> <el-select v-if="row.subject"
v-model="row.score">
<el-option v-for="item in row?.subject?.itemList" <el-option v-for="item in row?.subject?.itemList"
:key="item" :key="item"
:value="item.options" /> :value="item.options" />

@ -26,7 +26,7 @@
<el-table-column label="分值" <el-table-column label="分值"
min-width="150"> min-width="150">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-select v-if="$index !== 12 && $index !== 13" <el-select v-if="$index !== 12 && $index !== 13 && row.subject && row.subject.itemList"
class="w-full" class="w-full"
v-model="row.score"> v-model="row.score">
<el-option v-for="item in row?.subject?.itemList" <el-option v-for="item in row?.subject?.itemList"

@ -17,7 +17,7 @@
min-width="100" min-width="100"
align="center"> align="center">
<template #default="{ row }"> <template #default="{ row }">
<el-select v-if="row?.recordChildren?.length < 3" <el-select v-if="row.recordChildren && row?.recordChildren?.length < 3"
class="w-full" class="w-full"
v-model="row.computationalFormula"> v-model="row.computationalFormula">
<el-option v-for="item in row.recordChildren[0]?.subject?.itemList" <el-option v-for="item in row.recordChildren[0]?.subject?.itemList"
@ -39,7 +39,7 @@
<el-input v-else-if="$index === 52 || $index === 53" <el-input v-else-if="$index === 52 || $index === 53"
placeholder="请输入" placeholder="请输入"
v-model="row.floatingCoefficient"></el-input> v-model="row.floatingCoefficient"></el-input>
<el-select v-else <el-select v-else-if="row.subject"
class="w-full" class="w-full"
v-model="row.floatingCoefficient"> v-model="row.floatingCoefficient">
<el-option v-for="item in row?.subject?.itemList" <el-option v-for="item in row?.subject?.itemList"
@ -173,14 +173,16 @@ const getConfig = async () => {
modelId: info.value[11]?.modelId || '', modelId: info.value[11]?.modelId || '',
indexName: '最低浮动比例', indexName: '最低浮动比例',
formula: '--', formula: '--',
floatingCoefficient: info.value[11]?.corporateInterestRateModels[0]?.floatingCoefficient || '', 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 || '', indexId: info.value[12]?.indexId || '',
modelId: info.value[12]?.modelId || '', modelId: info.value[12]?.modelId || '',
indexName: '最高浮动比例', indexName: '最高浮动比例',
formula: '--', formula: '--',
floatingCoefficient: info.value[12]?.corporateInterestRateModels[0]?.floatingCoefficient || '', 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; form.value.corporateInterestRateModelIndicators = result;
@ -275,12 +277,13 @@ const addRecord = async (data: Record<string, any>) => {
form.value.corporateInterestRateModelIndicators.forEach((e, i) => { form.value.corporateInterestRateModelIndicators.forEach((e, i) => {
// //
e.floatingCoefficient && e.floatingCoefficient &&
e?.recordChildren?.length &&
rule.push( rule.push(
handleId( handleId(
e.ruleId, e.ruleId,
e.subject.subjectId, e?.subject?.subjectId,
e?.subject?.itemList?.find((n) => n.options === e.floatingCoefficient)?.itemId, e?.subject?.itemList?.find((n) => n.options === e.floatingCoefficient)?.itemId,
`${listIds},${e.stRecordId}${e.recordChildren.length > 2 ? '' : ',' + e.recordChildren[1].id},${e.ruleId}`, `${listIds},${e.stRecordId}${e?.recordChildren?.length > 2 ? '' : ',' + e?.recordChildren[1]?.id},${e.ruleId}`,
1, 1,
), ),
); );
@ -290,10 +293,10 @@ const addRecord = async (data: Record<string, any>) => {
!e.rule && !e.rule &&
rule.push( rule.push(
handleId( handleId(
e.recordChildren[0].id, e?.recordChildren[0]?.id,
e.recordChildren[0].subjectId, e?.recordChildren[0]?.subjectId,
e.recordChildren[0]?.subject?.itemList?.find((n) => n.options === e.computationalFormula)?.itemId, e?.recordChildren[0]?.subject?.itemList?.find((n) => n.options === e.computationalFormula)?.itemId,
`${listIds},${e.stRecordId},${e.recordChildren[0].id}`, `${listIds},${e.stRecordId},${e?.recordChildren[0]?.id}`,
1, 1,
), ),
); );

@ -20,7 +20,8 @@
<!-- 大病报销 || 贫困户 --> <!-- 大病报销 || 贫困户 -->
<div v-if="row.stRecordId == 161 || row.stRecordId == 164" <div v-if="row.stRecordId == 161 || row.stRecordId == 164"
class="flex items-center"> class="flex items-center">
<span class="whitespace-nowrap">{{ row?.recordChildren[row.span ? 1 : 0]?.name }}</span> <span v-if="row.recordChildren"
class="whitespace-nowrap">{{ row?.recordChildren[row.span ? 1 : 0]?.name }}</span>
<div class="w-[90px] "> <div class="w-[90px] ">
<el-select class="mx-2" <el-select class="mx-2"
v-model="row.symbol"> v-model="row.symbol">

@ -18,7 +18,8 @@
<!-- 贷记卡账户状态 --> <!-- 贷记卡账户状态 -->
<div v-if="row.stRecordId == 204" <div v-if="row.stRecordId == 204"
class="flex items-center"> class="flex items-center">
<span class="whitespace-nowrap">{{ row?.recordChildren[0]?.name }}</span> <span v-if="row.recordChildren"
class="whitespace-nowrap">{{ row?.recordChildren[0]?.name }}</span>
<el-input class="w-[150px] mx-2" <el-input class="w-[150px] mx-2"
v-model="row.ruleOne"></el-input> v-model="row.ruleOne"></el-input>
<span class="whitespace-nowrap">的信用卡</span> <span class="whitespace-nowrap">的信用卡</span>
@ -26,7 +27,8 @@
<!-- 贷记卡审批通过率 --> <!-- 贷记卡审批通过率 -->
<div v-else-if="isRule(row.stRecordId)" <div v-else-if="isRule(row.stRecordId)"
class="flex items-center"> class="flex items-center">
<span class="whitespace-nowrap">{{ row?.recordChildren[0]?.name }}</span> <span v-if="row.recordChildren"
class="whitespace-nowrap">{{ row?.recordChildren[0]?.name }}</span>
<div class="w-[90px] "> <div class="w-[90px] ">
<el-select class="mx-2" <el-select class="mx-2"
v-model="row.symbol"> v-model="row.symbol">
@ -38,7 +40,8 @@
</div> </div>
<el-input class="w-[80px]" <el-input class="w-[80px]"
v-model="row.num"></el-input> v-model="row.num"></el-input>
<span class="ml-2 whitespace-nowrap">{{ row?.recordChildren[1]?.name }}</span> <span v-if="row.recordChildren"
class="ml-2 whitespace-nowrap">{{ row?.recordChildren[1]?.name }}</span>
<div class="w-[90px] "> <div class="w-[90px] ">
<el-select class="mx-2" <el-select class="mx-2"
v-model="row.symbol1"> v-model="row.symbol1">
@ -62,7 +65,8 @@
</div> </div>
<div v-else <div v-else
class="flex items-center"> class="flex items-center">
<span class="whitespace-nowrap">{{ row?.recordChildren[0]?.name }}</span> <span v-if="row.recordChildren"
class="whitespace-nowrap">{{ row?.recordChildren[0]?.name }}</span>
<div class="w-[90px] "> <div class="w-[90px] ">
<el-select class="mx-2" <el-select class="mx-2"
v-model="row.symbol"> v-model="row.symbol">

@ -38,7 +38,8 @@
<!-- 腾讯 --> <!-- 腾讯 -->
<div v-else-if="$index === 14" <div v-else-if="$index === 14"
class="flex items-center"> class="flex items-center">
<span class="whitespace-nowrap">{{ row?.recordChildren[0]?.recordChildren[0]?.name }}</span> <span v-if="row.recordChildren"
class="whitespace-nowrap">{{ row?.recordChildren[0]?.recordChildren[0]?.name }}</span>
<div class="w-[90px] "> <div class="w-[90px] ">
<el-select class="mx-2" <el-select class="mx-2"
v-model="row.symbol"> v-model="row.symbol">
@ -101,7 +102,8 @@
</div> </div>
<div v-else-if="$index === 18" <div v-else-if="$index === 18"
class="w-[90px] "> class="w-[90px] ">
<el-select v-model="row.symbol"> <el-select v-if="row.recordChildren"
v-model="row.symbol">
<el-option v-for="item in row?.recordChildren[0]?.subject?.itemList" <el-option v-for="item in row?.recordChildren[0]?.subject?.itemList"
:key="item" :key="item"
:label="item.options" :label="item.options"

@ -26,7 +26,8 @@
align="center"> align="center">
<template #default="{ row }"> <template #default="{ row }">
<div class="flex items-center"> <div class="flex items-center">
<span class="whitespace-nowrap">{{ row?.recordChildren[1]?.recordChildren[0]?.name }}认定{{row.name}}</span> <span v-if="row.recordChildren"
class="whitespace-nowrap">{{ row?.recordChildren[1]?.recordChildren[0]?.name }}认定{{row.name}}</span>
<div class="w-[90px] "> <div class="w-[90px] ">
<el-select class="mx-2" <el-select class="mx-2"
v-model="row.enterRuleOne"> v-model="row.enterRuleOne">
@ -39,7 +40,8 @@
<span class="whitespace-nowrap">天以上进入黑名单</span> <span class="whitespace-nowrap">天以上进入黑名单</span>
</div> </div>
<div class="flex items-center mt-2"> <div class="flex items-center mt-2">
<span class="whitespace-nowrap">{{ row?.recordChildren[1]?.recordChildren[1]?.name }}认定{{row.name}}</span> <span v-if="row.recordChildren"
class="whitespace-nowrap">{{ row?.recordChildren[1]?.recordChildren[1]?.name }}认定{{row.name}}</span>
<div class="w-[90px] "> <div class="w-[90px] ">
<el-select class="mx-2" <el-select class="mx-2"
v-model="row.enterRuleTwo"> v-model="row.enterRuleTwo">
@ -65,7 +67,8 @@
align="center"> align="center">
<template #default="{ row }"> <template #default="{ row }">
<div class="flex items-center"> <div class="flex items-center">
<span class="whitespace-nowrap">{{ row?.recordChildren[1]?.recordChildren[0]?.name }}结清后</span> <span v-if="row.recordChildren"
class="whitespace-nowrap">{{ row?.recordChildren[1]?.recordChildren[0]?.name }}结清后</span>
<div class="w-[90px] "> <div class="w-[90px] ">
<el-select class="mx-2" <el-select class="mx-2"
v-model="row.num"> v-model="row.num">
@ -87,7 +90,8 @@
<span class="whitespace-nowrap">后出黑名单</span> <span class="whitespace-nowrap">后出黑名单</span>
</div> </div>
<div class="flex items-center mt-2"> <div class="flex items-center mt-2">
<span class="whitespace-nowrap">{{ row?.recordChildren[1]?.recordChildren[1]?.name }}结清后</span> <span v-if="row.recordChildren"
class="whitespace-nowrap">{{ row?.recordChildren[1]?.recordChildren[1]?.name }}结清后</span>
<div class="w-[90px] "> <div class="w-[90px] ">
<el-select class="mx-2" <el-select class="mx-2"
v-model="row.num1"> v-model="row.num1">
@ -119,16 +123,15 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, computed, watch, onMounted } from 'vue'; import { ref, watch } from 'vue';
import { ElMessage } from 'element-plus'; import { ElMessage } from 'element-plus';
import { accessStrategyInlineBlacklistFind, accessStrategyInlineBlacklistSave } from '@/api/model'; import { accessStrategyInlineBlacklistFind, accessStrategyInlineBlacklistSave } from '@/api/model';
import { getProcessInformationBasedOnRoles, addOperation } from '@/api/judgment'; import { getProcessInformationBasedOnRoles, addOperation } from '@/api/judgment';
import type { TableColumnCtx } from 'element-plus'; import type { TableColumnCtx } from 'element-plus';
import { useRouter, useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import { handleId, getNum, getChinese } from '@/utils/common'; import { handleId, getNum, getChinese } from '@/utils/common';
import Cookies from 'js-cookie'; import Cookies from 'js-cookie';
const router = useRouter();
const route = useRoute(); const route = useRoute();
const projectId = +Cookies.get('sand-projectId'); const projectId = +Cookies.get('sand-projectId');
const levelId = +Cookies.get('sand-level'); const levelId = +Cookies.get('sand-level');

@ -71,7 +71,8 @@
<span class="whitespace-nowrap ml-2">不良贷款客户</span> <span class="whitespace-nowrap ml-2">不良贷款客户</span>
</template> </template>
<template v-else-if="$index === 4"> <template v-else-if="$index === 4">
<el-checkbox-group v-model="row.check"> <el-checkbox-group v-if="row.subject"
v-model="row.check">
<el-checkbox v-for="item in row?.subject?.itemList" <el-checkbox v-for="item in row?.subject?.itemList"
:key="item" :key="item"
:label="item.options" /> :label="item.options" />
@ -127,7 +128,8 @@
</template> </template>
<template v-else-if="$index === 8"> <template v-else-if="$index === 8">
<span class="whitespace-nowrap mr-2">企业性质涉及</span> <span class="whitespace-nowrap mr-2">企业性质涉及</span>
<el-checkbox-group v-model="row.check"> <el-checkbox-group v-if="row.subject"
v-model="row.check">
<el-checkbox v-for="item in row?.subject?.itemList" <el-checkbox v-for="item in row?.subject?.itemList"
:key="item" :key="item"
:label="item.options" /> :label="item.options" />

@ -79,7 +79,8 @@
<template v-else-if="row.stRecordId === 385"> <template v-else-if="row.stRecordId === 385">
<span class="whitespace-nowrap">命中</span> <span class="whitespace-nowrap">命中</span>
<div class="flex-1"> <div class="flex-1">
<el-select v-model="row.select"> <el-select v-if="row.recordChildren"
v-model="row.select">
<el-option v-for="item in row?.recordChildren[0]?.subject?.itemList" <el-option v-for="item in row?.recordChildren[0]?.subject?.itemList"
:key="item" :key="item"
:value="item.options" /> :value="item.options" />

@ -24,28 +24,32 @@
min-width="150" min-width="150"
align="center"> align="center">
<template #default="{ row }"> <template #default="{ row }">
<el-checkbox v-model="row.myselfWorkplace"></el-checkbox> <el-checkbox v-model="row.myselfWorkplace"
@change="e => checkRow(e, row)"></el-checkbox>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="配偶工作单位" <el-table-column label="配偶工作单位"
min-width="150" min-width="150"
align="center"> align="center">
<template #default="{ row }"> <template #default="{ row }">
<el-checkbox v-model="row.spouseWorkplace"></el-checkbox> <el-checkbox v-model="row.spouseWorkplace"
@change="e => checkRow(e, row)"></el-checkbox>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="本人名下企业" <el-table-column label="本人名下企业"
min-width="150" min-width="150"
align="center"> align="center">
<template #default="{ row }"> <template #default="{ row }">
<el-checkbox v-model="row.myselfEnterprise"></el-checkbox> <el-checkbox v-model="row.myselfEnterprise"
@change="e => checkRow(e, row)"></el-checkbox>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="配偶名下企业" <el-table-column label="配偶名下企业"
min-width="150" min-width="150"
align="center"> align="center">
<template #default="{ row }"> <template #default="{ row }">
<el-checkbox v-model="row.spouseEnterprise"></el-checkbox> <el-checkbox v-model="row.spouseEnterprise"
@change="e => checkRow(e, row)"></el-checkbox>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="可以准入" <el-table-column label="可以准入"
@ -157,6 +161,9 @@ const span = ({ row, column, rowIndex, columnIndex }: SpanMethodProps) => {
} }
} }
}; };
const checkRow = (e: boolean, row: Record<string, any>) => {
if (e) row.admittance = false;
};
const checkNone = (row: Record<string, any>) => { const checkNone = (row: Record<string, any>) => {
if (row.admittance) { if (row.admittance) {
row.myselfEnterprise = false; row.myselfEnterprise = false;

@ -6,7 +6,8 @@
name="tab1"> name="tab1">
<div class="flex"> <div class="flex">
<div class="left"> <div class="left">
<ul class="products"> <ul v-if="list[0] && list[0]?.recordChildren"
class="products">
<li v-for="(item, i) in list[0]?.recordChildren" <li v-for="(item, i) in list[0]?.recordChildren"
:key="i" :key="i"
:class="{ active: item.id === id }" :class="{ active: item.id === id }"

@ -27,10 +27,11 @@
<el-table-column prop="name" <el-table-column prop="name"
label="选用" label="选用"
width="100"> width="100">
<template #default="{ row }"> <template #default="{ row, $index }">
<div class="items-center"> <div class="items-center">
<el-checkbox class="mr-2" <el-checkbox class="mr-2"
v-model="row.isChoose"></el-checkbox> v-model="row.isChoose"
@change="checkAll(row, $index)"></el-checkbox>
<span v-if="row.top">{{row.name}}</span> <span v-if="row.top">{{row.name}}</span>
</div> </div>
</template> </template>
@ -42,7 +43,7 @@
label="计算公式"> label="计算公式">
<template #default="{ row }"> <template #default="{ row }">
<span v-if="isSelect(row.answerId1)">{{ row.remark }}</span> <span v-if="isSelect(row.answerId1)">{{ row.remark }}</span>
<el-select v-else <el-select v-else-if="row.recordChildren"
v-model="row.calculationFormula"> v-model="row.calculationFormula">
<el-option v-for="item in row?.recordChildren[1]?.subject?.itemList" <el-option v-for="item in row?.recordChildren[1]?.subject?.itemList"
:key="item" :key="item"
@ -55,13 +56,14 @@
width="110" width="110"
align="center"> align="center">
<template #default="{ row }"> <template #default="{ row }">
<span>{{ isSelect(row.answerId1) ? row.index : row?.recordChildren[2]?.recordChildren[0]?.name }}</span> <span v-if="isSelect(row.answerId1)">{{ row.index }}</span>
<span v-else-if="row.recordChildren">{{ row?.recordChildren[2]?.recordChildren[0]?.name }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="分值" <el-table-column label="分值"
align="center"> align="center">
<template #default="{ row }"> <template #default="{ row }">
<el-select v-if="isSelect(row.answerId1)" <el-select v-if="isSelect(row.answerId1) && row.subject"
v-model="row.score"> v-model="row.score">
<el-option v-for="item in row?.subject?.itemList" <el-option v-for="item in row?.subject?.itemList"
:key="item" :key="item"
@ -71,17 +73,16 @@
:class="'flex items-center'"> :class="'flex items-center'">
<span v-if="row.answerId2 === 643" <span v-if="row.answerId2 === 643"
class="mr-2 whitespace-nowrap">全部为正常贷款满分</span> class="mr-2 whitespace-nowrap">全部为正常贷款满分</span>
<span class="whitespace-nowrap"> <span v-if="row.answerId2 === 627"
{{ row.answerId2 === 627 ? class="whitespace-nowrap">每少1倍扣</span>
'每少1倍扣' :
(row.answerId1 === 590 || row.answerId1 === 591 || row.answerId1 === 592) ? <span v-else-if="(row.answerId1 === 590 || row.answerId1 === 591 || row.answerId1 === 592) && row.recordChildren"
row?.recordChildren[2]?.recordChildren[0]?.recordChildren[0]?.name.replace('分','') : class="whitespace-nowrap">{{ row?.recordChildren[2]?.recordChildren[0]?.recordChildren[0]?.name.replace('分', '') }}</span>
row.answerId1 === 595 ? <span v-else-if="row.answerId1 === 595"
'每降1%扣' : class="whitespace-nowrap">每降1%</span>
'' }}
</span>
<div class="w-[100px] mx-2"> <div class="w-[100px] mx-2">
<el-select v-model="row.score"> <el-select v-if="row.recordChildren"
v-model="row.score">
<el-option v-for="item in row?.recordChildren[2]?.recordChildren[0]?.recordChildren[0]?.subject?.itemList" <el-option v-for="item in row?.recordChildren[2]?.recordChildren[0]?.recordChildren[0]?.subject?.itemList"
:key="item" :key="item"
:value="item.options" /> :value="item.options" />
@ -100,7 +101,8 @@
</span> </span>
<template v-if="row.answerId2 !== 627 && row.answerId2 !== 646 && row.answerId2 !== 667 && row.answerId2 !== 668 && row.answerId2 !== 670 && row.answerId2 !== 694 && row.answerId2 !== 695"> <template v-if="row.answerId2 !== 627 && row.answerId2 !== 646 && row.answerId2 !== 667 && row.answerId2 !== 668 && row.answerId2 !== 670 && row.answerId2 !== 694 && row.answerId2 !== 695">
<div class="w-[120px] mx-2"> <div class="w-[120px] mx-2">
<el-select placeholder="" <el-select v-if="row.recordChildren"
placeholder=""
v-model="row.percentage"> v-model="row.percentage">
<el-option v-for="item in row.answerId2 === 669 || row.answerId2 === 671 ? row?.recordChildren[2]?.recordChildren[0]?.recordChildren[0]?.subject?.itemList : row?.recordChildren[2]?.recordChildren[0]?.recordChildren[1]?.subject?.itemList" <el-option v-for="item in row.answerId2 === 669 || row.answerId2 === 671 ? row?.recordChildren[2]?.recordChildren[0]?.recordChildren[0]?.subject?.itemList : row?.recordChildren[2]?.recordChildren[0]?.recordChildren[1]?.subject?.itemList"
:key="item" :key="item"
@ -140,7 +142,8 @@
min-width="150" min-width="150"
align="center"> align="center">
<template #default="{ row }"> <template #default="{ row }">
<el-select v-model="row.score"> <el-select v-if="row.itemList"
v-model="row.score">
<el-option v-for="item in row?.itemList" <el-option v-for="item in row?.itemList"
:key="item" :key="item"
:value="item.options" /> :value="item.options" />
@ -646,6 +649,7 @@ watch(
const isSelect = (rule: number): boolean => { const isSelect = (rule: number): boolean => {
return rule === 589 || rule === 594; return rule === 589 || rule === 594;
}; };
interface SpanMethodProps { interface SpanMethodProps {
row: Record<string, any>; row: Record<string, any>;
column: TableColumnCtx<Record<string, any>>; column: TableColumnCtx<Record<string, any>>;
@ -716,6 +720,51 @@ const span = ({ row, column, rowIndex, columnIndex }: SpanMethodProps) => {
} }
} }
}; };
//
const checkAll = (row: Record<string, any>, i: number) => {
const c = row.isChoose;
if (!i) {
list1.value[1].isChoose = c;
list1.value[4].isChoose = c;
list1.value[7].isChoose = c;
list1.value[10].isChoose = c;
} else if (i === 13) {
list1.value[14].isChoose = c;
list1.value[15].isChoose = c;
list1.value[16].isChoose = c;
list1.value[17].isChoose = c;
} else if (i === 18) {
list1.value[19].isChoose = c;
list1.value[20].isChoose = c;
list1.value[21].isChoose = c;
list1.value[22].isChoose = c;
list1.value[23].isChoose = c;
list1.value[24].isChoose = c;
list1.value[25].isChoose = c;
} else if (i === 26) {
list1.value[27].isChoose = c;
list1.value[28].isChoose = c;
list1.value[29].isChoose = c;
list1.value[30].isChoose = c;
list1.value[31].isChoose = c;
list1.value[32].isChoose = c;
} else if (i === 33) {
list1.value[34].isChoose = c;
list1.value[35].isChoose = c;
list1.value[36].isChoose = c;
list1.value[37].isChoose = c;
list1.value[38].isChoose = c;
} else if (i === 39) {
list1.value[40].isChoose = c;
list1.value[43].isChoose = c;
list1.value[46].isChoose = c;
} else if (i === 49) {
list1.value[50].isChoose = c;
list1.value[51].isChoose = c;
}
};
// //
const submit = async () => { const submit = async () => {
if (!form.scoreCardName) return ElMessage.error('请输入评分卡名称'); if (!form.scoreCardName) return ElMessage.error('请输入评分卡名称');

@ -122,7 +122,7 @@ const addRecord = async () => {
const rule: Array<Record<string, any>> = []; const rule: Array<Record<string, any>> = [];
form.value.forEach((e, i) => { form.value.forEach((e, i) => {
e.coefficient && rule.push(handleId(e.answerId, e.subjectId, e.coefficient, `${preIds},${i > 9 ? '706,707' : '705,707'},${e.answerId}`, 3)); e.coefficient && rule.push(handleId(e.answerId, e.subjectId, e.coefficient, `${preIds},${i > 4 ? '706,708' : '705,707'},${e.answerId}`, 3));
}); });
await addOperation({ await addOperation({

Loading…
Cancel
Save