Commit adc84480 authored by 沈翠玲's avatar 沈翠玲

案件回收和案件撤案

parent 140521ef
...@@ -39,3 +39,8 @@ export const withdraw = (ids) => { ...@@ -39,3 +39,8 @@ export const withdraw = (ids) => {
export const fullWithdraw = (ids) => { export const fullWithdraw = (ids) => {
return request.get('/LoanDistribute/fullWithdraw', { ids }); return request.get('/LoanDistribute/fullWithdraw', { ids });
}; };
// 留案
export const stayLoan = (ids) => {
return request.get('/LoanDistribute/stay', { ids });
};
...@@ -258,3 +258,18 @@ ...@@ -258,3 +258,18 @@
padding: 15px 20px; padding: 15px 20px;
} }
} }
.vxe-tabs .vxe-tabs-header--item-inner, .vxe-tabs .vxe-tabs-header--wrapper {
height: 32px !important;
font-size: 14px;
}
.vxe-header--row {
.vxe-cell {
text-align: center !important;
}
.vxe-cell--title {
font-size: 13px !important;
}
}
.vxe-body--row.row--current, .vxe-body--row.row--hover {
background-color: var(--el-color-primary-light-9) !important;
}
\ No newline at end of file
...@@ -12,19 +12,19 @@ ...@@ -12,19 +12,19 @@
<p class="font-bold mb-2">联系人信息:</p> <p class="font-bold mb-2">联系人信息:</p>
<div class="flex justify-between"> <div class="flex justify-between">
<div> <div>
<span class="text-gray-400">姓名</span> <span class="text-gray-400">姓名</span>
<span>{{ currentInfo.guarantor.name }}</span> <span>{{ currentInfo.guarantor.name }}</span>
</div> </div>
<div> <div>
<span class="text-gray-400">与案人关系</span> <span class="text-gray-400">与案人关系</span>
<span>{{ currentInfo.guarantor.kinship }}</span> <span>{{ currentInfo.guarantor.kinship }}</span>
</div> </div>
<div> <div>
<span class="text-gray-400">联系号码</span> <span class="text-gray-400">联系号码</span>
<span>{{ currentInfo.guarantor.phone }}</span> <span>{{ currentInfo.guarantor.phone }}</span>
</div> </div>
<div> <div>
<span class="text-gray-400">号码状态</span> <span class="text-gray-400">号码状态</span>
<span> <span>
<el-radio-group v-model="currentInfo.guarantor.status" disabled> <el-radio-group v-model="currentInfo.guarantor.status" disabled>
<el-radio value="N">无效</el-radio> <el-radio value="N">无效</el-radio>
......
...@@ -315,6 +315,7 @@ ...@@ -315,6 +315,7 @@
field: 'status', field: 'status',
title: '超时状态', title: '超时状态',
width: 100, width: 100,
showOverflow: 'tooltip',
search: { el: 'select', props: { clearable: true } }, search: { el: 'select', props: { clearable: true } },
slots: { slots: {
default: ({ row }) => { default: ({ row }) => {
...@@ -432,7 +433,7 @@ ...@@ -432,7 +433,7 @@
padding: 8px; padding: 8px;
width: 240px; width: 240px;
&.label { &.label {
background: #f5f7f9; background: var(--el-color-primary-light-9);
} }
} }
} }
......
...@@ -21,51 +21,51 @@ ...@@ -21,51 +21,51 @@
<table v-for="(item, index) in row.loans" :key="index" <table v-for="(item, index) in row.loans" :key="index"
><tbody> ><tbody>
<tr> <tr>
<td class="label">案件ID</td> <td class="label">案件ID</td>
<td>{{ item?.caseId }}</td> <td>{{ item?.caseId }}</td>
<td class="label">借款机构</td> <td class="label">借款机构</td>
<td>{{ item?.loanPlatform?.name }}</td> <td>{{ item?.loanPlatform?.name }}</td>
</tr> </tr>
<tr> <tr>
<td class="label">资管公司</td> <td class="label">资管公司</td>
<td>{{ item?.manageOrg.orgName }}</td> <td>{{ item?.manageOrg.orgName }}</td>
<td class="label">身份证</td> <td class="label">身份证</td>
<td>{{ item?.borrower?.idCard }}</td> <td>{{ item?.borrower?.idCard }}</td>
</tr> </tr>
<tr> <tr>
<td class="label">手机号</td> <td class="label">手机号</td>
<td>{{ item?.borrower?.phone }}</td> <td>{{ item?.borrower?.phone }}</td>
<td class="label">折扣</td> <td class="label">折扣</td>
<td>{{ item?.discount }}</td> <td>{{ item?.discount }}</td>
</tr> </tr>
<tr> <tr>
<td class="label">累计还款金额</td> <td class="label">累计还款金额</td>
<td>{{ item?.sumRepayAmount }}</td> <td>{{ item?.sumRepayAmount }}</td>
<td class="label">累计减免金额</td> <td class="label">累计减免金额</td>
<td>{{ item?.sumReductionAmount }}</td> <td>{{ item?.sumReductionAmount }}</td>
</tr> </tr>
<tr> <tr>
<td class="label">剩余待还金额</td> <td class="label">剩余待还金额</td>
<td>{{ item?.remainingAmount }}</td> <td>{{ item?.remainingAmount }}</td>
<td class="label">CPE</td> <td class="label">CPE</td>
<td>{{ item?.cpe.username }}</td> <td>{{ item?.cpe?.username }}</td>
</tr> </tr>
<tr> <tr>
<td class="label">分派CPE日期</td> <td class="label">分派CPE日期</td>
<td>{{ item?.cpeDate }}</td> <td>{{ item?.cpeDate }}</td>
<td class="label">本金余额</td> <td class="label">本金余额</td>
<td>{{ item?.principalBalance }}</td> <td>{{ item?.principalBalance }}</td>
</tr> </tr>
<tr> <tr>
<td class="label">欠息额</td> <td class="label">欠息额</td>
<td>{{ item?.debitInterest }}</td> <td>{{ item?.debitInterest }}</td>
<td class="label">手续费</td> <td class="label">手续费</td>
<td>{{ item?.commission }}</td> <td>{{ item?.commission }}</td>
</tr> </tr>
<tr> <tr>
<td class="label">委案金额</td> <td class="label">委案金额</td>
<td>{{ item?.commissionAmount }}</td> <td>{{ item?.commissionAmount }}</td>
<td class="label">案件状态</td> <td class="label">案件状态</td>
<td> <td>
{{ {{
item?.caseStatus item?.caseStatus
...@@ -75,13 +75,13 @@ ...@@ -75,13 +75,13 @@
> >
</tr> </tr>
<tr> <tr>
<td class="label">跟进结果</td> <td class="label">跟进结果</td>
<td>{{ <td>{{
item?.followStatus item?.followStatus
? followStatusOpt.find((v) => v.value === item?.followStatus).label ? followStatusOpt.find((v) => v.value === item?.followStatus).label
: '' : ''
}}</td> }}</td>
<td class="label">跟进状态</td> <td class="label">跟进状态</td>
<td>{{ <td>{{
item?.phoneResultStatus item?.phoneResultStatus
? phoneResultStatusOpt.find((v) => v.value === item?.phoneResultStatus) ? phoneResultStatusOpt.find((v) => v.value === item?.phoneResultStatus)
...@@ -96,24 +96,12 @@ ...@@ -96,24 +96,12 @@
<div class="flex-1"> <div class="flex-1">
<div>分期明细</div> <div>分期明细</div>
<div class="expand-table"> <div class="expand-table">
<table v-for="(item, index) in row.byStagesRecords" :key="index" <ProTable
><tbody> :config="splitDeConfig"
<tr> :data="row.byStagesRecords"
<td class="label">期次:</td> :showPagination="false"
<td>{{ item?.period }}</td> :showToolBar="false"
<td class="label">期次还款到期日:</td> />
<td>{{ item?.playApplyDate }}</td>
</tr>
<tr>
<td class="label">期次还款状态:</td>
<td>{{
item.repayStatus ? (item.repayStatus === 'over' ? '已还款' : '待还款') : ''
}}</td>
<td class="label">期次应还金额:</td>
<td>{{ item.applyAmount }}</td>
</tr>
</tbody>
</table>
</div> </div>
</div> </div>
</div> </div>
...@@ -176,6 +164,36 @@ ...@@ -176,6 +164,36 @@
label: '6', label: '6',
}, },
]; ];
const splitDeConfig = reactive({
columns: [
{
field: 'period',
title: '期次',
showOverflow: 'tooltip',
},
{
field: 'playApplyDate',
title: '到期日',
showOverflow: 'tooltip',
},
{
field: 'repayStatus',
title: '状态',
showOverflow: 'tooltip',
slots: {
default: ({ row }) => {
return <>{row.repayStatus ? (row.repayStatus === 'over' ? '已还款' : '待还款') : ''}</>;
},
},
},
{
field: 'applyAmount',
title: '期次应还金额',
showOverflow: 'tooltip',
}
],
toolbarConfig: { enabled: false },
});
const flowStatusOpt = [ const flowStatusOpt = [
{ label: '待审核', value: 'pending' }, { label: '待审核', value: 'pending' },
{ label: '通过', value: 'pass' }, { label: '通过', value: 'pass' },
...@@ -373,7 +391,7 @@ ...@@ -373,7 +391,7 @@
padding: 8px; padding: 8px;
width: 240px; width: 240px;
&.label { &.label {
background: #f5f7f9; background: var(--el-color-primary-light-9);
} }
} }
} }
......
...@@ -19,39 +19,39 @@ ...@@ -19,39 +19,39 @@
<table v-for="(item, index) in row.reduceRecords" :key="index" <table v-for="(item, index) in row.reduceRecords" :key="index"
><tbody> ><tbody>
<tr> <tr>
<td class="label">案件ID</td> <td class="label">案件ID</td>
<td>{{ item?.loan?.caseId }}</td> <td>{{ item?.loan?.caseId }}</td>
<td class="label">借款机构</td> <td class="label">借款机构</td>
<td>{{ item?.loan?.loanPlatform?.name }}</td> <td>{{ item?.loan?.loanPlatform?.name }}</td>
<td class="label">资管公司</td> <td class="label">资管公司</td>
<td>{{ item?.loan?.manageOrg.orgName }}</td> <td>{{ item?.loan?.manageOrg.orgName }}</td>
</tr> </tr>
<tr> <tr>
<td class="label">身份证</td> <td class="label">身份证</td>
<td>{{ item?.loan?.borrower?.idCard }}</td> <td>{{ item?.loan?.borrower?.idCard }}</td>
<td class="label">手机号</td> <td class="label">手机号</td>
<td>{{ item?.loan?.borrower?.phone }}</td> <td>{{ item?.loan?.borrower?.phone }}</td>
<td class="label">折扣</td> <td class="label">折扣</td>
<td>{{ item?.loan?.discount }}</td> <td>{{ item?.loan?.discount }}</td>
<td class="label">委案金额</td> <td class="label">委案金额</td>
<td>{{ item?.loan?.commissionAmount }}</td> <td>{{ item?.loan?.commissionAmount }}</td>
</tr> </tr>
<tr> <tr>
<td class="label">累计还款金额</td> <td class="label">累计还款金额</td>
<td>{{ item?.loan?.sumRepayAmount }}</td> <td>{{ item?.loan?.sumRepayAmount }}</td>
<td class="label">累计减免金额</td> <td class="label">累计减免金额</td>
<td>{{ item?.loan?.sumReductionAmount }}</td> <td>{{ item?.loan?.sumReductionAmount }}</td>
<td class="label">剩余待还金额</td> <td class="label">剩余待还金额</td>
<td>{{ item?.loan?.remainingAmount }}</td> <td>{{ item?.loan?.remainingAmount }}</td>
</tr> </tr>
<tr> <tr>
<td class="label">CPE</td> <td class="label">CPE</td>
<td>{{ item?.loan?.cpe.username }}</td> <td>{{ item?.loan?.cpe?.username }}</td>
<td class="label">分派CPE日期</td> <td class="label">分派CPE日期</td>
<td>{{ item?.loan?.cpeDate }}</td> <td>{{ item?.loan?.cpeDate }}</td>
<td class="label">本金余额</td> <td class="label">本金余额</td>
<td>{{ item?.loan?.principalBalance }}</td> <td>{{ item?.loan?.principalBalance }}</td>
<td class="label">案件状态</td> <td class="label">案件状态</td>
<td> <td>
{{ {{
item?.loan?.caseStatus item?.loan?.caseStatus
...@@ -61,17 +61,17 @@ ...@@ -61,17 +61,17 @@
> >
</tr> </tr>
<tr> <tr>
<td class="label">欠息额</td> <td class="label">欠息额</td>
<td>{{ item?.loan?.debitInterest }}</td> <td>{{ item?.loan?.debitInterest }}</td>
<td class="label">手续费</td> <td class="label">手续费</td>
<td>{{ item?.loan?.commission }}</td> <td>{{ item?.loan?.commission }}</td>
<td class="label">跟进结果</td> <td class="label">跟进结果</td>
<td>{{ <td>{{
item?.loan?.followStatus item?.loan?.followStatus
? followStatusOpt.find((v) => v.value === item?.loan?.followStatus).label ? followStatusOpt.find((v) => v.value === item?.loan?.followStatus).label
: '' : ''
}}</td> }}</td>
<td class="label">跟进状态</td> <td class="label">跟进状态</td>
<td>{{ <td>{{
item?.loan?.phoneResultStatus item?.loan?.phoneResultStatus
? phoneResultStatusOpt.find((v) => v.value === item?.loan?.phoneResultStatus) ? phoneResultStatusOpt.find((v) => v.value === item?.loan?.phoneResultStatus)
...@@ -194,7 +194,7 @@ ...@@ -194,7 +194,7 @@
search: { el: 'input', labelWidth: 80 }, search: { el: 'input', labelWidth: 80 },
slots: { slots: {
default: ({ row }) => { default: ({ row }) => {
return <>{row.reduceRecords.map((v) => v.loan.caseId).join(',')}</>; return <>{Array.from(new Set(row.reduceRecords.map((v) => v.loan.caseId))).join(',')}</>;
}, },
}, },
width: 120, width: 120,
...@@ -321,7 +321,7 @@ ...@@ -321,7 +321,7 @@
padding: 8px; padding: 8px;
width: 240px; width: 240px;
&.label { &.label {
background: #f5f7f9; background: var(--el-color-primary-light-9);
} }
} }
} }
......
...@@ -93,6 +93,17 @@ ...@@ -93,6 +93,17 @@
showOverflow: 'tooltip', showOverflow: 'tooltip',
title: '案件ID', title: '案件ID',
search: { el: 'input', labelWidth: 80 }, search: { el: 'input', labelWidth: 80 },
slots: {
default: ({ row }) => {
if (row.reduce && row.reduce.reduceRecords) {
return <>{Array.from(new Set(row.reduce.reduceRecords.map((v) => v.loan.caseId))).join(',')}</>;
} else if (row.stages && row.stages.loans) {
return <>{Array.from(new Set(row.stages.loans.map((v) => v.caseId))).join(',')}</>;
} else {
return <>{row.loan?.caseId}</>
}
},
},
width: 80, width: 80,
}, },
{ {
......
...@@ -321,6 +321,7 @@ ...@@ -321,6 +321,7 @@
field: 'status', field: 'status',
title: '超时状态', title: '超时状态',
width: 100, width: 100,
showOverflow: 'tooltip',
search: { el: 'select', props: { clearable: true }, labelWidth: 78 }, search: { el: 'select', props: { clearable: true }, labelWidth: 78 },
slots: { slots: {
default: ({ row }) => { default: ({ row }) => {
......
...@@ -144,24 +144,28 @@ ...@@ -144,24 +144,28 @@
{ {
field: 'loanPlatform.name', field: 'loanPlatform.name',
title: '借款机构', title: '借款机构',
showOverflow: 'tooltip',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, key: 'payOrg', labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, key: 'payOrg', labelWidth: 78 },
}, },
{ {
field: 'manageOrg.orgName', field: 'manageOrg.orgName',
title: '资管公司', title: '资管公司',
showOverflow: 'tooltip',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, key: 'manageOrg', labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, key: 'manageOrg', labelWidth: 78 },
}, },
{ {
field: 'batchCode', field: 'batchCode',
title: '导入批次', title: '导入批次',
showOverflow: 'tooltip',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, key: 'batchCode', labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, key: 'batchCode', labelWidth: 78 },
}, },
{ {
field: 'distributeStatus', field: 'distributeStatus',
title: '分派状态', title: '分派状态',
showOverflow: 'tooltip',
width: 80, width: 80,
enum: distributeStatusOpt, enum: distributeStatusOpt,
search: { el: 'select', props: { filterable: true }, labelWidth: 78 }, search: { el: 'select', props: { filterable: true }, labelWidth: 78 },
...@@ -181,23 +185,27 @@ ...@@ -181,23 +185,27 @@
{ {
field: 'tenant.name', field: 'tenant.name',
title: '调解中心', title: '调解中心',
showOverflow: 'tooltip',
width: 80, width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, labelWidth: 78 },
}, },
{ {
field: 'discount', field: 'discount',
title: '折扣', title: '折扣',
showOverflow: 'tooltip',
width: 80, width: 80,
}, },
{ {
field: 'cpe.name', field: 'cpe.name',
title: 'CPE', title: 'CPE',
showOverflow: 'tooltip',
width: 60, width: 60,
search: { el: 'input', props: { clearable: true }, key: 'cpeName', labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, key: 'cpeName', labelWidth: 78 },
}, },
{ {
field: 'tenantTime', field: 'tenantTime',
title: '分派中心日期', title: '分派中心日期',
showOverflow: 'tooltip',
width: 130, width: 130,
search: { search: {
el: 'date-picker', el: 'date-picker',
...@@ -208,12 +216,14 @@ ...@@ -208,12 +216,14 @@
{ {
field: 'commissionAmount', field: 'commissionAmount',
title: '债权总额', title: '债权总额',
showOverflow: 'tooltip',
width: 80, width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, labelWidth: 78 },
}, },
{ {
field: 'cpeDate', field: 'cpeDate',
title: '分派CPE日期', title: '分派CPE日期',
showOverflow: 'tooltip',
width: 130, width: 130,
search: { search: {
el: 'date-picker', el: 'date-picker',
...@@ -224,17 +234,20 @@ ...@@ -224,17 +234,20 @@
{ {
field: 'borrower.name', field: 'borrower.name',
title: '借款人姓名', title: '借款人姓名',
showOverflow: 'tooltip',
width: 100, width: 100,
search: { el: 'input', key: 'borrowerName', props: { clearable: true }, labelWidth: 78 }, search: { el: 'input', key: 'borrowerName', props: { clearable: true }, labelWidth: 78 },
}, },
{ {
field: 'sumRepayAmount', field: 'sumRepayAmount',
title: '已还总额', title: '已还总额',
showOverflow: 'tooltip',
width: 80, width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, labelWidth: 78 },
}, },
{ {
field: 'borrower.idCard', field: 'borrower.idCard',
showOverflow: 'tooltip',
title: '身份证', title: '身份证',
width: 140, width: 140,
search: { el: 'input', props: { clearable: true }, key: 'idCard', labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, key: 'idCard', labelWidth: 78 },
...@@ -242,6 +255,7 @@ ...@@ -242,6 +255,7 @@
{ {
field: 'borrower.phone', field: 'borrower.phone',
key: 'borrowerPhone', key: 'borrowerPhone',
showOverflow: 'tooltip',
title: '手机', title: '手机',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, labelWidth: 78 },
...@@ -249,15 +263,18 @@ ...@@ -249,15 +263,18 @@
{ {
field: 'principalBalance', field: 'principalBalance',
title: '剩余本金', title: '剩余本金',
showOverflow: 'tooltip',
width: 80, width: 80,
}, },
{ {
field: 'remaininginterest', field: 'remaininginterest',
title: '剩余利息', title: '剩余利息',
showOverflow: 'tooltip',
width: 80, width: 80,
}, },
{ {
field: 'commission', field: 'commission',
showOverflow: 'tooltip',
title: '违约金', title: '违约金',
width: 80, width: 80,
}, },
......
...@@ -6,31 +6,42 @@ ...@@ -6,31 +6,42 @@
<template #left_buttons> <template #left_buttons>
<el-button <el-button
type="primary" type="primary"
:disabled="!selectdList || selectdList.length < 1"
@click="backCase" @click="backCase"
>撤回 >回收
</el-button>
<el-button type="primary" :disabled="!selectdList || selectdList.length < 1" @click="fullBackCase"
>撤案
</el-button> </el-button>
</template> </template>
</ProTable> </ProTable>
</div> </div>
<allocationModal ref="allocationModalRef" @success="query" /> <vxe-modal
v-model="showModal"
title="提示"
height="282"
width="450"
show-footer
esc-closable
>
<div class="w-full px-3 h-full overflow-auto flex-col flex mytable">
数据中有留案案件,请选择回收方式
</div>
<template #footer>
<el-button type="default" @click="showModal = false">取消</el-button>
<el-button type="primary" @click="submitForm('withdraw')">回收</el-button>
<el-button type="danger" @click="submitForm('fullWithdraw')">强制回收</el-button>
</template>
</vxe-modal>
</div> </div>
</template> </template>
<script setup name="case-allocation" lang="jsx"> <script setup name="case-allocation" lang="jsx">
import allocationModal from './components/allocationModal.vue';
import { getLoantotal, getLoanpage, withdraw, fullWithdraw } from '@/api/allcation'; import { getLoantotal, getLoanpage, withdraw, fullWithdraw } from '@/api/allcation';
import { reactive, ref } from 'vue'; import { reactive, ref } from 'vue';
import { ElMessageBox, ElMessage } from 'element-plus'; import { ElMessageBox, ElMessage } from 'element-plus';
import citydata from '../../../assets/citydata'; import citydata from '../../../assets/citydata';
import { onMounted } from 'vue'; import { onMounted } from 'vue';
const allocationModalRef = ref();
const caseLRef = ref(); const caseLRef = ref();
const selectdList = ref([]); const selectdList = ref([]);
const curParam = ref({}); const curParam = ref({});
const showModal = ref(false);
const onCheckboxChange = (row) => { const onCheckboxChange = (row) => {
selectdList.value = row.records; selectdList.value = row.records;
}; };
...@@ -43,37 +54,25 @@ ...@@ -43,37 +54,25 @@
}); });
}; };
const backCase = async () => { const backCase = async () => {
await ElMessageBox.confirm('是否确认撤回选中案件?', '提示', { showModal.value = true
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
});
const ids = selectdList.value.map((v) => v.id).join(',');
await withdraw(ids);
ElMessage({
type: 'success',
message: '撤回成功!',
plain: true,
});
query();
}; };
const fullBackCase = async () => { const submitForm = async (type) => {
await ElMessageBox.confirm('是否确认撤案?', '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
});
const ids = selectdList.value.map((v) => v.id).join(','); const ids = selectdList.value.map((v) => v.id).join(',');
await fullWithdraw(ids); if (type === 'withdraw') {
await withdraw(ids);
ElMessage({ ElMessage({
type: 'success', type: 'success',
message: '撤案成功!', message: '回收成功!',
plain: true, plain: true,
}); });
} else {
await fullWithdraw(ids);
ElMessage({
type: 'success',
message: '强制回收成功!',
plain: true,
});
}
query(); query();
} }
const paramCallback = (param) => { const paramCallback = (param) => {
...@@ -144,11 +143,13 @@ ...@@ -144,11 +143,13 @@
{ {
field: 'loanPlatform.name', field: 'loanPlatform.name',
title: '借款机构', title: '借款机构',
showOverflow: 'tooltip',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, key: 'payOrg', labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, key: 'payOrg', labelWidth: 78 },
}, },
{ {
field: 'manageOrg.orgName', field: 'manageOrg.orgName',
showOverflow: 'tooltip',
title: '资管公司', title: '资管公司',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, key: 'manageOrg', labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, key: 'manageOrg', labelWidth: 78 },
...@@ -156,12 +157,14 @@ ...@@ -156,12 +157,14 @@
{ {
field: 'batchCode', field: 'batchCode',
title: '导入批次', title: '导入批次',
showOverflow: 'tooltip',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, key: 'batchCode', labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, key: 'batchCode', labelWidth: 78 },
}, },
{ {
field: 'distributeStatus', field: 'distributeStatus',
title: '分派状态', title: '分派状态',
showOverflow: 'tooltip',
width: 80, width: 80,
enum: distributeStatusOpt, enum: distributeStatusOpt,
search: { el: 'select', props: { filterable: true }, labelWidth: 78 }, search: { el: 'select', props: { filterable: true }, labelWidth: 78 },
...@@ -181,23 +184,27 @@ ...@@ -181,23 +184,27 @@
{ {
field: 'tenant.name', field: 'tenant.name',
title: '调解中心', title: '调解中心',
showOverflow: 'tooltip',
width: 80, width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, labelWidth: 78 },
}, },
{ {
field: 'discount', field: 'discount',
title: '折扣', title: '折扣',
showOverflow: 'tooltip',
width: 80, width: 80,
}, },
{ {
field: 'cpe.name', field: 'cpe.name',
title: 'CPE', title: 'CPE',
showOverflow: 'tooltip',
width: 60, width: 60,
search: { el: 'input', props: { clearable: true }, key: 'cpeName', labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, key: 'cpeName', labelWidth: 78 },
}, },
{ {
field: 'tenantTime', field: 'tenantTime',
title: '分派中心日期', title: '分派中心日期',
showOverflow: 'tooltip',
width: 130, width: 130,
search: { search: {
el: 'date-picker', el: 'date-picker',
...@@ -208,12 +215,14 @@ ...@@ -208,12 +215,14 @@
{ {
field: 'commissionAmount', field: 'commissionAmount',
title: '债权总额', title: '债权总额',
showOverflow: 'tooltip',
width: 80, width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, labelWidth: 78 },
}, },
{ {
field: 'cpeDate', field: 'cpeDate',
title: '分派CPE日期', title: '分派CPE日期',
showOverflow: 'tooltip',
width: 130, width: 130,
search: { search: {
el: 'date-picker', el: 'date-picker',
...@@ -224,24 +233,28 @@ ...@@ -224,24 +233,28 @@
{ {
field: 'borrower.name', field: 'borrower.name',
title: '借款人姓名', title: '借款人姓名',
showOverflow: 'tooltip',
width: 100, width: 100,
search: { el: 'input', key: 'borrowerName', props: { clearable: true }, labelWidth: 78 }, search: { el: 'input', key: 'borrowerName', props: { clearable: true }, labelWidth: 78 },
}, },
{ {
field: 'sumRepayAmount', field: 'sumRepayAmount',
title: '已还总额', title: '已还总额',
showOverflow: 'tooltip',
width: 80, width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, labelWidth: 78 },
}, },
{ {
field: 'borrower.idCard', field: 'borrower.idCard',
title: '身份证', title: '身份证',
showOverflow: 'tooltip',
width: 140, width: 140,
search: { el: 'input', props: { clearable: true }, key: 'idCard', labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, key: 'idCard', labelWidth: 78 },
}, },
{ {
field: 'borrower.phone', field: 'borrower.phone',
key: 'borrowerPhone', key: 'borrowerPhone',
showOverflow: 'tooltip',
title: '手机', title: '手机',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, labelWidth: 78 }, search: { el: 'input', props: { clearable: true }, labelWidth: 78 },
...@@ -249,16 +262,19 @@ ...@@ -249,16 +262,19 @@
{ {
field: 'principalBalance', field: 'principalBalance',
title: '剩余本金', title: '剩余本金',
showOverflow: 'tooltip',
width: 80, width: 80,
}, },
{ {
field: 'remaininginterest', field: 'remaininginterest',
title: '剩余利息', title: '剩余利息',
showOverflow: 'tooltip',
width: 80, width: 80,
}, },
{ {
field: 'commission', field: 'commission',
title: '违约金', title: '违约金',
showOverflow: 'tooltip',
width: 80, width: 80,
}, },
], ],
...@@ -266,9 +282,6 @@ ...@@ -266,9 +282,6 @@
onCheckboxAll: onCheckboxAll onCheckboxAll: onCheckboxAll
}); });
const allocation = (row) => {
allocationModalRef.value.openModal(JSON.parse(JSON.stringify(curParam.value)), JSON.parse(JSON.stringify(selectdList.value)));
};
const query = () => caseLRef.value?.search(); const query = () => caseLRef.value?.search();
onMounted(() => { onMounted(() => {
......
...@@ -381,7 +381,7 @@ ...@@ -381,7 +381,7 @@
width: 240px; width: 240px;
&.label { &.label {
width: 160px; width: 160px;
background: #f5f7f9; background: var(--el-color-primary-light-9);
} }
} }
} }
......
This diff is collapsed.
...@@ -76,6 +76,7 @@ ...@@ -76,6 +76,7 @@
{ {
field: 'caseId', field: 'caseId',
title: '案件ID', title: '案件ID',
showOverflow: 'tooltip',
search: { el: 'input', labelWidth: 80 }, search: { el: 'input', labelWidth: 80 },
width: 190, width: 190,
slots: { slots: {
...@@ -95,6 +96,7 @@ ...@@ -95,6 +96,7 @@
}, },
{ {
field: 'loanPlatform.name', field: 'loanPlatform.name',
showOverflow: 'tooltip',
title: '借款机构', title: '借款机构',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, key: 'payOrg', labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, key: 'payOrg', labelWidth: 80 },
...@@ -102,12 +104,14 @@ ...@@ -102,12 +104,14 @@
{ {
field: 'manageOrg.orgName', field: 'manageOrg.orgName',
title: '资管公司', title: '资管公司',
showOverflow: 'tooltip',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, key: 'manageOrg', labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, key: 'manageOrg', labelWidth: 80 },
}, },
{ {
field: 'borrower.name', field: 'borrower.name',
title: '借款人姓名', title: '借款人姓名',
showOverflow: 'tooltip',
width: 120, width: 120,
search: { search: {
el: 'input', el: 'input',
...@@ -119,6 +123,7 @@ ...@@ -119,6 +123,7 @@
{ {
field: 'borrower.idCard', field: 'borrower.idCard',
title: '身份证', title: '身份证',
showOverflow: 'tooltip',
width: 140, width: 140,
search: { search: {
el: 'input', el: 'input',
...@@ -130,6 +135,7 @@ ...@@ -130,6 +135,7 @@
{ {
field: 'borrower.phone', field: 'borrower.phone',
title: '手机号', title: '手机号',
showOverflow: 'tooltip',
width: 140, width: 140,
search: { search: {
el: 'input', el: 'input',
...@@ -141,35 +147,41 @@ ...@@ -141,35 +147,41 @@
{ {
field: 'discount', field: 'discount',
title: '折扣', title: '折扣',
showOverflow: 'tooltip',
width: 80, width: 80,
}, },
{ {
field: 'commissionAmount', field: 'commissionAmount',
title: '委案金额', title: '委案金额',
showOverflow: 'tooltip',
width: 80, width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, labelWidth: 80 },
}, },
{ {
field: 'sumRepayAmount', field: 'sumRepayAmount',
title: '累计还款金额', title: '累计还款金额',
showOverflow: 'tooltip',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, labelWidth: 80 },
}, },
{ {
field: 'sumReductionAmount', field: 'sumReductionAmount',
title: '累计减免金额', title: '累计减免金额',
showOverflow: 'tooltip',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, labelWidth: 80 },
}, },
{ {
field: 'remainingAmount', field: 'remainingAmount',
title: '剩余待还金额', title: '剩余待还金额',
showOverflow: 'tooltip',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, labelWidth: 80 },
}, },
{ {
field: 'cpe.username', field: 'cpe.username',
showOverflow: 'tooltip',
title: 'CPE', title: 'CPE',
width: 80, width: 80,
search: { el: 'input', props: { clearable: true }, key: 'cpeName', labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, key: 'cpeName', labelWidth: 80 },
...@@ -177,6 +189,7 @@ ...@@ -177,6 +189,7 @@
{ {
field: 'cpeDate', field: 'cpeDate',
title: '分派CPE日期', title: '分派CPE日期',
showOverflow: 'tooltip',
width: 130, width: 130,
search: { search: {
el: 'date-picker', el: 'date-picker',
...@@ -186,24 +199,28 @@ ...@@ -186,24 +199,28 @@
}, },
{ {
field: 'principalBalance', field: 'principalBalance',
showOverflow: 'tooltip',
title: '本金余额', title: '本金余额',
width: 80, width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, labelWidth: 80 },
}, },
{ {
field: 'debitInterest', field: 'debitInterest',
showOverflow: 'tooltip',
title: '欠息额', title: '欠息额',
width: 80, width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, labelWidth: 80 },
}, },
{ {
field: 'commission', field: 'commission',
showOverflow: 'tooltip',
title: '手续费', title: '手续费',
width: 80, width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, labelWidth: 80 },
}, },
{ {
field: 'followStatus', field: 'followStatus',
showOverflow: 'tooltip',
title: '跟进结果', title: '跟进结果',
width: 80, width: 80,
enum: followStatusOpt, enum: followStatusOpt,
...@@ -223,6 +240,7 @@ ...@@ -223,6 +240,7 @@
}, },
{ {
field: 'phoneResultStatus', field: 'phoneResultStatus',
showOverflow: 'tooltip',
title: '跟进状态', title: '跟进状态',
width: 80, width: 80,
enum: phoneResultStatusOpt, enum: phoneResultStatusOpt,
...@@ -243,6 +261,7 @@ ...@@ -243,6 +261,7 @@
{ {
field: 'caseStatus', field: 'caseStatus',
title: '案件状态', title: '案件状态',
showOverflow: 'tooltip',
width: 80, width: 80,
enum: caseStatusOpt, enum: caseStatusOpt,
search: { el: 'select', props: { filterable: true }, labelWidth: 80 }, search: { el: 'select', props: { filterable: true }, labelWidth: 80 },
......
This diff is collapsed.
<template>
<div class="table-box">
<div>
<ProTable :config="config" ref="caseLRef" :api="getLoanpage" :paramCallback="paramCallback">
<!-- 表格 header 按钮 -->
<template #left_buttons>
<el-button
type="primary"
@click="backCase"
>撤案
</el-button>
</template>
</ProTable>
</div>
<vxe-modal
v-model="showModal"
title="提示"
height="282"
width="450"
show-footer
esc-closable
>
<div class="w-full px-3 h-full overflow-auto flex-col flex mytable">
数据中有留案案件,请选择撤案方式
</div>
<template #footer>
<el-button type="default" @click="showModal = false">取消</el-button>
<el-button type="primary" @click="submitForm('withdraw')">撤案</el-button>
<el-button type="danger" @click="submitForm('fullWithdraw')">强制撤案</el-button>
</template>
</vxe-modal>
</div>
</template>
<script setup name="case-allocation" lang="jsx">
import { getLoantotal, getLoanpage, withdraw, fullWithdraw } from '@/api/allcation';
import { reactive, ref } from 'vue';
import { ElMessageBox, ElMessage } from 'element-plus';
import citydata from '../../../assets/citydata';
import { onMounted } from 'vue';
const caseLRef = ref();
const selectdList = ref([]);
const curParam = ref({});
const showModal = ref(false);
const onCheckboxChange = (row) => {
selectdList.value = row.records;
};
const statisis = ref({});
const getStatisis = (params) => {
getLoantotal(params).then((res) => {
if (res.success) {
statisis.value = res.result;
}
});
};
const backCase = async () => {
showModal.value = true
};
const submitForm = async (type) => {
const ids = selectdList.value.map((v) => v.id).join(',');
if (type === 'withdraw') {
await withdraw(ids);
ElMessage({
type: 'success',
message: '撤案成功!',
plain: true,
});
} else {
await fullWithdraw(ids);
ElMessage({
type: 'success',
message: '强制撤案成功!',
plain: true,
});
}
query();
}
const paramCallback = (param) => {
const obj = JSON.parse(JSON.stringify(param));
if (obj.arealist && obj.arealist.length > 0) {
obj['province'] = obj.arealist[0];
obj['city'] = obj.arealist.length > 1 ? obj.arealist[1] : null;
obj['district'] = obj.arealist.length > 2 ? obj.arealist[2] : null;
delete obj['arealist'];
}
if (obj['cpeDate']) {
if (obj['cpeDate'][0]) obj['cpeDateBegin'] = obj['cpeDate'][0];
if (obj['cpeDate'][1]) obj['cpeDateEnd'] = obj['cpeDate'][1];
delete obj['cpeDate'];
}
if (obj['tenantTime']) {
if (obj['tenantTime'][0]) obj['tenantTimeBegin'] = obj['tenantTime'][0];
if (obj['tenantTime'][1]) obj['tenantTimeEnd'] = obj['tenantTime'][1];
delete obj['tenantTime'];
}
curParam.value = obj;
// getStatisis(obj);
return obj;
};
const distributeStatusOpt = [
{ label: '未分派', value: 'undistributed' },
{ label: '分派到调解中心', value: 'tenant' },
{ label: '分派到CPE', value: 'CPE' },
];
const onCheckboxAll =(flag)=> {
if (flag.checked) {
selectdList.value = flag.records;
} else {
selectdList.value = [];
}
}
console.log('citydatacitydata', citydata);
const config = reactive({
columns: [
{ type: 'checkbox', title: '', width: 40 },
{
field: 'caseId',
title: '案件ID',
showOverflow: 'tooltip',
search: { el: 'input', labelWidth: 78 },
width: 100,
},
{
field: 'arealist',
enum: citydata,
title: '所属区域',
showOverflow: 'tooltip',
width: 100,
fieldNames: { label: 'label', value: 'value' },
search: { el: 'cascader', props: { clearable: true, checkStrictly: true }, labelWidth: 78 },
slots: {
default: ({ row }) => {
return (
<div>
{row.manageOrg.province}
{row.manageOrg.city ? '-' + row.manageOrg.city : ''}
{row.manageOrg.district ? '-' + row.manageOrg.district : ''}
</div>
);
},
},
},
{
field: 'loanPlatform.name',
title: '借款机构',
showOverflow: 'tooltip',
width: 100,
search: { el: 'input', props: { clearable: true }, key: 'payOrg', labelWidth: 78 },
},
{
field: 'manageOrg.orgName',
showOverflow: 'tooltip',
title: '资管公司',
width: 100,
search: { el: 'input', props: { clearable: true }, key: 'manageOrg', labelWidth: 78 },
},
{
field: 'batchCode',
title: '导入批次',
showOverflow: 'tooltip',
width: 100,
search: { el: 'input', props: { clearable: true }, key: 'batchCode', labelWidth: 78 },
},
{
field: 'distributeStatus',
title: '分派状态',
showOverflow: 'tooltip',
width: 80,
enum: distributeStatusOpt,
search: { el: 'select', props: { filterable: true }, labelWidth: 78 },
fieldNames: { label: 'label', value: 'value' },
slots: {
default: ({ row }) => {
return (
<>
{row.distributeStatus
? distributeStatusOpt.find((v) => v.value === row.distributeStatus).label
: ''}
</>
);
},
},
},
{
field: 'tenant.name',
title: '调解中心',
showOverflow: 'tooltip',
width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 78 },
},
{
field: 'discount',
title: '折扣',
showOverflow: 'tooltip',
width: 80,
},
{
field: 'cpe.name',
title: 'CPE',
showOverflow: 'tooltip',
width: 60,
search: { el: 'input', props: { clearable: true }, key: 'cpeName', labelWidth: 78 },
},
{
field: 'tenantTime',
title: '分派中心日期',
showOverflow: 'tooltip',
width: 130,
search: {
el: 'date-picker',
props: { type: 'daterange', valueFormat: 'YYYY-MM-DD' },
labelWidth: 78,
},
},
{
field: 'commissionAmount',
title: '债权总额',
showOverflow: 'tooltip',
width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 78 },
},
{
field: 'cpeDate',
title: '分派CPE日期',
showOverflow: 'tooltip',
width: 130,
search: {
el: 'date-picker',
props: { type: 'daterange', valueFormat: 'YYYY-MM-DD' },
labelWidth: 78,
},
},
{
field: 'borrower.name',
title: '借款人姓名',
showOverflow: 'tooltip',
width: 100,
search: { el: 'input', key: 'borrowerName', props: { clearable: true }, labelWidth: 78 },
},
{
field: 'sumRepayAmount',
title: '已还总额',
showOverflow: 'tooltip',
width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 78 },
},
{
field: 'borrower.idCard',
title: '身份证',
showOverflow: 'tooltip',
width: 140,
search: { el: 'input', props: { clearable: true }, key: 'idCard', labelWidth: 78 },
},
{
field: 'borrower.phone',
key: 'borrowerPhone',
showOverflow: 'tooltip',
title: '手机',
width: 100,
search: { el: 'input', props: { clearable: true }, labelWidth: 78 },
},
{
field: 'principalBalance',
title: '剩余本金',
showOverflow: 'tooltip',
width: 80,
},
{
field: 'remaininginterest',
title: '剩余利息',
showOverflow: 'tooltip',
width: 80,
},
{
field: 'commission',
title: '违约金',
showOverflow: 'tooltip',
width: 80,
},
],
onCheckboxChange: onCheckboxChange,
onCheckboxAll: onCheckboxAll
});
const query = () => caseLRef.value?.search();
onMounted(() => {
query();
});
</script>
...@@ -320,6 +320,7 @@ ...@@ -320,6 +320,7 @@
field: 'status', field: 'status',
title: '超时状态', title: '超时状态',
width: 100, width: 100,
showOverflow: 'tooltip',
search: { el: 'select', props: { clearable: true }, labelWidth: 78 }, search: { el: 'select', props: { clearable: true }, labelWidth: 78 },
slots: { slots: {
default: ({ row }) => { default: ({ row }) => {
......
...@@ -2,17 +2,14 @@ ...@@ -2,17 +2,14 @@
<div class="table-box"> <div class="table-box">
<div class="table-inner"> <div class="table-inner">
<ProTable :config="config" ref="caseLRef" :api="getCreditPage" :paramCallback="paramCallback"> <ProTable :config="config" ref="caseLRef" :api="getCreditPage" :paramCallback="paramCallback">
<!-- <ProTable :config="config" ref="caseLRef" :data="data"> --> <template #left_buttons>
<!-- <template #table_top> <el-button
<div class="topgrp"> type="primary"
<div class="topbox"> :disabled="!selectdList || selectdList.length < 1"
<div class="topinner"> @click="stayCase"
<p>统计值</p> >留案
<p>111</p> </el-button>
</div> </template>
</div>
</div>
</template> -->
</ProTable> </ProTable>
</div> </div>
</div> </div>
...@@ -23,10 +20,22 @@ ...@@ -23,10 +20,22 @@
import { reactive, ref } from 'vue'; import { reactive, ref } from 'vue';
import { getCreditPage } from '@/api/property'; import { getCreditPage } from '@/api/property';
const caseLRef = ref(); const caseLRef = ref();
import { stayLoan } from '@/api/allcation';
import { onMounted } from 'vue'; import { onMounted } from 'vue';
import { useUserStore } from '@/stores/modules/user'; import { useUserStore } from '@/stores/modules/user';
const { userInfo } = useUserStore(); const { userInfo } = useUserStore();
const router = useRouter(); const router = useRouter();
const selectdList = ref([]);
const onCheckboxChange = (row) => {
selectdList.value = row.records;
};
const onCheckboxAll =(flag)=> {
if (flag.checked) {
selectdList.value = flag.records;
} else {
selectdList.value = [];
}
}
const onCellClick = (row) => { const onCellClick = (row) => {
router.push({ router.push({
path: '/property/case-detail', path: '/property/case-detail',
...@@ -40,6 +49,23 @@ ...@@ -40,6 +49,23 @@
} }
return obj; return obj;
}; };
const stayCase = async () => {
await ElMessageBox.confirm('是否确认留案?', '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
});
const ids = selectdList.value.map((v) => v.id).join(',');
await stayLoan(ids);
ElMessage({
type: 'success',
message: '留案成功!',
plain: true,
});
query();
}
const followStatusOpt = [ const followStatusOpt = [
{ label: '接通后挂断', value: 'hang_up' }, { label: '接通后挂断', value: 'hang_up' },
{ label: '接通有实质进展', value: 'progress' }, { label: '接通有实质进展', value: 'progress' },
...@@ -78,10 +104,12 @@ ...@@ -78,10 +104,12 @@
]; ];
const config = reactive({ const config = reactive({
columns: [ columns: [
{ type: 'checkbox', title: '', width: 40 },
{ {
field: 'caseId', field: 'caseId',
title: '案件ID', title: '案件ID',
search: { el: 'input', labelWidth: 80 }, search: { el: 'input', labelWidth: 80 },
showOverflow: 'tooltip',
width: 190, width: 190,
slots: { slots: {
default: ({ row, rowIndex }) => { default: ({ row, rowIndex }) => {
...@@ -101,18 +129,21 @@ ...@@ -101,18 +129,21 @@
{ {
field: 'loanPlatform.name', field: 'loanPlatform.name',
title: '借款机构', title: '借款机构',
showOverflow: 'tooltip',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, key: 'payOrg', labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, key: 'payOrg', labelWidth: 80 },
}, },
{ {
field: 'manageOrg.orgName', field: 'manageOrg.orgName',
title: '资管公司', title: '资管公司',
showOverflow: 'tooltip',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, key: 'manageOrg', labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, key: 'manageOrg', labelWidth: 80 },
}, },
{ {
field: 'borrower.name', field: 'borrower.name',
title: '借款人姓名', title: '借款人姓名',
showOverflow: 'tooltip',
width: 120, width: 120,
search: { search: {
el: 'input', el: 'input',
...@@ -124,6 +155,7 @@ ...@@ -124,6 +155,7 @@
{ {
field: 'borrower.idCard', field: 'borrower.idCard',
title: '身份证', title: '身份证',
showOverflow: 'tooltip',
width: 140, width: 140,
search: { search: {
el: 'input', el: 'input',
...@@ -135,6 +167,7 @@ ...@@ -135,6 +167,7 @@
{ {
field: 'borrower.phone', field: 'borrower.phone',
title: '手机号', title: '手机号',
showOverflow: 'tooltip',
width: 140, width: 140,
search: { search: {
el: 'input', el: 'input',
...@@ -146,35 +179,41 @@ ...@@ -146,35 +179,41 @@
{ {
field: 'discount', field: 'discount',
title: '折扣', title: '折扣',
showOverflow: 'tooltip',
width: 80, width: 80,
}, },
{ {
field: 'commissionAmount', field: 'commissionAmount',
title: '委案金额', title: '委案金额',
showOverflow: 'tooltip',
width: 80, width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, labelWidth: 80 },
}, },
{ {
field: 'sumRepayAmount', field: 'sumRepayAmount',
title: '累计还款金额', title: '累计还款金额',
showOverflow: 'tooltip',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, labelWidth: 80 },
}, },
{ {
field: 'sumReductionAmount', field: 'sumReductionAmount',
title: '累计减免金额', title: '累计减免金额',
showOverflow: 'tooltip',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, labelWidth: 80 },
}, },
{ {
field: 'remainingAmount', field: 'remainingAmount',
title: '剩余待还金额', title: '剩余待还金额',
showOverflow: 'tooltip',
width: 100, width: 100,
search: { el: 'input', props: { clearable: true }, labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, labelWidth: 80 },
}, },
{ {
field: 'cpeDate', field: 'cpeDate',
title: '分派CPE日期', title: '分派CPE日期',
showOverflow: 'tooltip',
width: 130, width: 130,
search: { search: {
el: 'date-picker', el: 'date-picker',
...@@ -185,23 +224,27 @@ ...@@ -185,23 +224,27 @@
{ {
field: 'principalBalance', field: 'principalBalance',
title: '本金余额', title: '本金余额',
showOverflow: 'tooltip',
width: 80, width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, labelWidth: 80 },
}, },
{ {
field: 'debitInterest', field: 'debitInterest',
showOverflow: 'tooltip',
title: '欠息额', title: '欠息额',
width: 80, width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, labelWidth: 80 },
}, },
{ {
field: 'commission', field: 'commission',
showOverflow: 'tooltip',
title: '手续费', title: '手续费',
width: 80, width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 80 }, search: { el: 'input', props: { clearable: true }, labelWidth: 80 },
}, },
{ {
field: 'followStatus', field: 'followStatus',
showOverflow: 'tooltip',
title: '跟进结果', title: '跟进结果',
width: 80, width: 80,
enum: followStatusOpt, enum: followStatusOpt,
...@@ -221,6 +264,7 @@ ...@@ -221,6 +264,7 @@
}, },
{ {
field: 'phoneResultStatus', field: 'phoneResultStatus',
showOverflow: 'tooltip',
title: '跟进状态', title: '跟进状态',
width: 80, width: 80,
enum: phoneResultStatusOpt, enum: phoneResultStatusOpt,
...@@ -240,6 +284,7 @@ ...@@ -240,6 +284,7 @@
}, },
{ {
field: 'caseStatus', field: 'caseStatus',
showOverflow: 'tooltip',
title: '案件状态', title: '案件状态',
width: 80, width: 80,
enum: caseStatusOpt, enum: caseStatusOpt,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment