Commit 499042e9 authored by tanghao's avatar tanghao

Merge remote-tracking branch 'origin/main' into dev

parents 1269063e d6e0ea19
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
</el-tabs> </el-tabs>
<ProTable <ProTable
:config="config" :config="config"
v-if="tableTrue"
ref="caseLRef" ref="caseLRef"
:api="getCreditPage" :api="getCreditPage"
:paramCallback="paramCallback" :paramCallback="paramCallback"
...@@ -87,7 +88,7 @@ ...@@ -87,7 +88,7 @@
<script setup name="case-manage" lang="jsx"> <script setup name="case-manage" lang="jsx">
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import { reactive, ref } from 'vue'; import { computed, reactive, ref, nextTick } from 'vue';
import { getCreditPage, getCreditTotal } from '@/api/property'; import { getCreditPage, getCreditTotal } from '@/api/property';
import { ElMessageBox, ElMessage } from 'element-plus'; import { ElMessageBox, ElMessage } from 'element-plus';
const caseLRef = ref(); const caseLRef = ref();
...@@ -123,6 +124,7 @@ ...@@ -123,6 +124,7 @@
const activeName = ref('全部'); const activeName = ref('全部');
const selectdList = ref([]); const selectdList = ref([]);
const tableTrue = ref(true);
const curParam = ref({}); const curParam = ref({});
const statisis = ref({}); const statisis = ref({});
const dataValue = ref('对查询结果操作'); const dataValue = ref('对查询结果操作');
...@@ -219,471 +221,473 @@ ...@@ -219,471 +221,473 @@
}); });
query(); query();
}; };
const config = reactive({ const config = computed( () => {
columns: [ return {
{ type: 'checkbox', title: '', width: 60, fixed: 'left' }, columns: [
{ { type: 'checkbox', title: '', width: 60, fixed: 'left' },
field: 'caseId', {
title: '案件ID', field: 'caseId',
search: { el: 'input', labelWidth: 90 }, title: '案件ID',
showOverflow: 'tooltip', search: { el: 'input', labelWidth: 90 },
width: 230, showOverflow: 'tooltip',
slots: { width: 230,
default: ({ row, rowIndex }) => { slots: {
return ( default: ({ row, rowIndex }) => {
<> return (
<div <>
onClick={() => onCellClick(row)} <div
className=" text-blue-400 underline cursor-pointer inline-block" onClick={() => onCellClick(row)}
> className=" text-blue-400 underline cursor-pointer inline-block"
{row.caseId} >
{row.caseId}
</div>
<Tag row={row} />
</>
);
},
},
},
{
field: 'loanPlatform.name',
showOverflow: 'tooltip',
enum: () => getPlatformPage({ current: 1, size: 999999999, status: 'enable' }),
search: { el: 'select', props: { filterable: true,clearable: true }, key: 'loanPlatform', labelWidth: 90 },
fieldNames: { label: 'name', value: 'id' },
title: '借款平台',
width: 100,
},
{
field: 'manageOrg.orgName',
title: '资管公司',
enum: () => getManageOrgPage({ current: 1, size: 999999999, status: 'enable' }),
fieldNames: { label: 'orgName', value: 'id' },
showOverflow: 'tooltip',
width: 100,
search: { el: 'select', props: { filterable: true,clearable: true }, key: 'manageOrg', labelWidth: 90 },
},
{
field: 'borrower.name',
title: '借款人姓名',
showOverflow: 'tooltip',
width: 120,
search: {
el: 'input',
key: 'borrowerName',
props: { clearable: true },
labelWidth: 90,
},
},
{
field: 'borrower.idCard',
title: '身份证',
showOverflow: 'tooltip',
width: 140,
search: {
el: 'input',
props: { clearable: true },
key: 'borrowerIdCard',
labelWidth: 90,
},
},
{
field: 'borrower.phone',
title: '手机号',
showOverflow: 'tooltip',
width: 140,
search: {
el: 'input',
props: { clearable: true },
key: 'borrowerPhone',
labelWidth: 90,
},
},
{
field: 'discount',
title: '折扣',
showOverflow: 'tooltip',
width: 80,
},
{
field: 'commissionAmount',
title: '委案金额',
sortable: true,
showOverflow: 'tooltip',
width: 120,
search: {
render: ({ searchParam }) => {
return (
<div class="flex">
<el-input vModel_trim={searchParam.commissionAmountBegin} placeholder="" />
<span class="mr-1 ml-1">-</span>
<el-input vModel_trim={searchParam.commissionAmountEnd} placeholder="" />
</div> </div>
<Tag row={row} /> );
</> },
); props: { clearable: true },
labelWidth: 90,
}, },
}, },
}, {
{ field: 'sumRepayAmount',
field: 'loanPlatform.name', title: '累计还款金额',
showOverflow: 'tooltip', showOverflow: 'tooltip',
enum: () => getPlatformPage({ current: 1, size: 999999999, status: 'enable' }), width: 100,
search: { el: 'select', props: { filterable: true,clearable: true }, key: 'loanPlatform', labelWidth: 90 }, search: { el: 'input', props: { clearable: true }, labelWidth: 90 },
fieldNames: { label: 'name', value: 'id' }, },
title: '借款平台', {
width: 100, field: 'sumReductionAmount',
}, title: '累计减免金额',
{ showOverflow: 'tooltip',
field: 'manageOrg.orgName', width: 100,
title: '资管公司', search: { el: 'input', props: { clearable: true }, labelWidth: 90 },
enum: () => getManageOrgPage({ current: 1, size: 999999999, status: 'enable' }), },
fieldNames: { label: 'orgName', value: 'id' }, {
showOverflow: 'tooltip', field: 'remainingAmount',
width: 100, title: '剩余待还金额',
search: { el: 'select', props: { filterable: true,clearable: true }, key: 'manageOrg', labelWidth: 90 }, showOverflow: 'tooltip',
}, width: 100,
{ search: { el: 'input', props: { clearable: true }, labelWidth: 90 },
field: 'borrower.name', },
title: '借款人姓名', {
showOverflow: 'tooltip', field: 'cpe.username',
width: 120, showOverflow: 'tooltip',
search: { title: 'CPE',
el: 'input', width: 80,
key: 'borrowerName', search: { el: 'input', props: { clearable: true }, key: 'cpeName', labelWidth: 90 },
props: { clearable: true }, },
labelWidth: 90, {
}, field: 'cpeDate',
}, title: '分派CPE日期',
{ showOverflow: 'tooltip',
field: 'borrower.idCard', width: 150,
title: '身份证', search: {
showOverflow: 'tooltip', el: 'date-picker',
width: 140, props: { type: 'daterange', valueFormat: 'YYYY-MM-DD' },
search: { labelWidth: 90,
el: 'input', },
props: { clearable: true }, },
key: 'borrowerIdCard', {
labelWidth: 90, field: 'trackTime',
}, title: '跟进时间',
}, showOverflow: 'tooltip',
{ width: 150,
field: 'borrower.phone', search: {
title: '手机号', el: 'date-picker',
showOverflow: 'tooltip', props: { type: 'daterange', valueFormat: 'YYYY-MM-DD' },
width: 140, labelWidth: 90,
search: {
el: 'input',
props: { clearable: true },
key: 'borrowerPhone',
labelWidth: 90,
},
},
{
field: 'discount',
title: '折扣',
showOverflow: 'tooltip',
width: 80,
},
{
field: 'commissionAmount',
title: '委案金额',
sortable: true,
showOverflow: 'tooltip',
width: 120,
search: {
render: ({ searchParam }) => {
return (
<div class="flex">
<el-input vModel_trim={searchParam.commissionAmountBegin} placeholder="" />
<span class="mr-1 ml-1">-</span>
<el-input vModel_trim={searchParam.commissionAmountEnd} placeholder="" />
</div>
);
}, },
props: { clearable: true }, },
labelWidth: 90, {
}, field: 'isfollowStatus',
}, showOverflow: 'tooltip',
{ title: '是否有跟进记录',
field: 'sumRepayAmount', width: 80,
title: '累计还款金额', enum: BooleanStatus,
showOverflow: 'tooltip', search: { el: 'select', props: { filterable: true,clearable: true }, labelWidth: 90, defaultValue: activeName.value === '全部' ? 'N' : 'Y' },
width: 100, fieldNames: { label: 'label', value: 'value' },
search: { el: 'input', props: { clearable: true }, labelWidth: 90 }, slots: {
}, default: ({ row }) => {
{ return (
field: 'sumReductionAmount', <>
title: '累计减免金额', {row.isfollowStatus
showOverflow: 'tooltip', ? BooleanStatus.value?.find((v) => v.value === row.isfollowStatus)?.label
width: 100, : ''}
search: { el: 'input', props: { clearable: true }, labelWidth: 90 }, </>
}, );
{ },
field: 'remainingAmount',
title: '剩余待还金额',
showOverflow: 'tooltip',
width: 100,
search: { el: 'input', props: { clearable: true }, labelWidth: 90 },
},
{
field: 'cpe.username',
showOverflow: 'tooltip',
title: 'CPE',
width: 80,
search: { el: 'input', props: { clearable: true }, key: 'cpeName', labelWidth: 90 },
},
{
field: 'cpeDate',
title: '分派CPE日期',
showOverflow: 'tooltip',
width: 150,
search: {
el: 'date-picker',
props: { type: 'daterange', valueFormat: 'YYYY-MM-DD' },
labelWidth: 90,
},
},
{
field: 'trackTime',
title: '跟进时间',
showOverflow: 'tooltip',
width: 150,
search: {
el: 'date-picker',
props: { type: 'daterange', valueFormat: 'YYYY-MM-DD' },
labelWidth: 90,
},
},
{
field: 'isfollowStatus',
showOverflow: 'tooltip',
title: '是否有跟进记录',
width: 80,
visible: false,
enum: BooleanStatus,
search: { el: 'select', props: { filterable: true,clearable: true }, labelWidth: 90, defaultValue: 'N' },
fieldNames: { label: 'label', value: 'value' },
slots: {
default: ({ row }) => {
return (
<>
{row.isfollowStatus
? BooleanStatus.value?.find((v) => v.value === row.isfollowStatus)?.label
: ''}
</>
);
}, },
}, },
}, {
{ field: 'repairStatus',
field: 'repairStatus', showOverflow: 'tooltip',
showOverflow: 'tooltip', title: '修复状态',
title: '修复状态', width: 80,
width: 80, enum: RepairStatus,
enum: RepairStatus, search: { el: 'select', props: { filterable: true,clearable: true }, labelWidth: 90 },
search: { el: 'select', props: { filterable: true,clearable: true }, labelWidth: 90 }, fieldNames: { label: 'label', value: 'value' },
fieldNames: { label: 'label', value: 'value' }, slots: {
slots: { default: ({ row }) => {
default: ({ row }) => { return (
return ( <>
<> {row.repairStatus
{row.repairStatus ? RepairStatus.value?.find((v) => v.value === row.repairStatus)?.label
? RepairStatus.value?.find((v) => v.value === row.repairStatus)?.label : ''}
: ''} </>
</> );
); },
}, },
}, },
}, {
{ field: 'principalBalance',
field: 'principalBalance', title: '本金余额',
title: '本金余额', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, search: { el: 'input', props: { clearable: true }, labelWidth: 90 },
search: { el: 'input', props: { clearable: true }, labelWidth: 90 }, },
}, {
{ field: 'commission',
field: 'commission', showOverflow: 'tooltip',
showOverflow: 'tooltip', title: '手续费',
title: '手续费', width: 80,
width: 80, search: { el: 'input', props: { clearable: true }, labelWidth: 90 },
search: { el: 'input', props: { clearable: true }, labelWidth: 90 }, },
}, {
{ field: 'followStatus',
field: 'followStatus', showOverflow: 'tooltip',
showOverflow: 'tooltip', title: '跟进结果',
title: '跟进结果', width: 80,
width: 80, enum: FollowStatus,
enum: FollowStatus, search: { el: 'select', props: { filterable: true,clearable: true }, labelWidth: 90 },
search: { el: 'select', props: { filterable: true,clearable: true }, labelWidth: 90 }, fieldNames: { label: 'label', value: 'value' },
fieldNames: { label: 'label', value: 'value' }, slots: {
slots: { default: ({ row }) => {
default: ({ row }) => { return (
return ( <>
<> {row.followStatus
{row.followStatus ? FollowStatus.value?.find((v) => v.value === row.followStatus)?.label
? FollowStatus.value?.find((v) => v.value === row.followStatus)?.label : ''}
: ''} </>
</> );
); },
}, },
}, },
}, {
{ field: 'phoneResultStatus',
field: 'phoneResultStatus', showOverflow: 'tooltip',
showOverflow: 'tooltip', title: '跟进状态',
title: '跟进状态', width: 80,
width: 80, enum: PhoneResultStatus,
enum: PhoneResultStatus, search: { el: 'select', props: { filterable: true,clearable: true }, labelWidth: 90 },
search: { el: 'select', props: { filterable: true,clearable: true }, labelWidth: 90 }, fieldNames: { label: 'label', value: 'value' },
fieldNames: { label: 'label', value: 'value' }, slots: {
slots: { default: ({ row }) => {
default: ({ row }) => { return (
return ( <>
<> {row.phoneResultStatus
{row.phoneResultStatus ? PhoneResultStatus.value?.find((v) => v.value === row.phoneResultStatus)?.label
? PhoneResultStatus.value?.find((v) => v.value === row.phoneResultStatus)?.label : ''}
: ''} </>
</> );
); },
}, },
}, },
}, {
{ field: 'lastFollowStatus',
field: 'lastFollowStatus', showOverflow: 'tooltip',
showOverflow: 'tooltip', title: '最近一次跟进结果',
title: '最近一次跟进结果', width: 80,
width: 80, enum: FollowStatus,
enum: FollowStatus, search: { el: 'select', props: { filterable: true,clearable: true }, labelWidth: 90 },
search: { el: 'select', props: { filterable: true,clearable: true }, labelWidth: 90 }, fieldNames: { label: 'label', value: 'value' },
fieldNames: { label: 'label', value: 'value' }, slots: {
slots: { default: ({ row }) => {
default: ({ row }) => { return (
return ( <>
<> {row.lastFollowStatus
{row.lastFollowStatus ? FollowStatus.value?.find((v) => v.value === row.lastFollowStatus)?.label
? FollowStatus.value?.find((v) => v.value === row.lastFollowStatus)?.label : ''}
: ''} </>
</> );
); },
}, },
}, },
}, {
{ field: 'lastPhoneResultStatus',
field: 'lastPhoneResultStatus', showOverflow: 'tooltip',
showOverflow: 'tooltip', title: '最近一次跟进状态',
title: '最近一次跟进状态', width: 80,
width: 80, enum: PhoneResultStatus,
enum: PhoneResultStatus, search: { el: 'select', props: { filterable: true,clearable: true }, labelWidth: 90 },
search: { el: 'select', props: { filterable: true,clearable: true }, labelWidth: 90 }, fieldNames: { label: 'label', value: 'value' },
fieldNames: { label: 'label', value: 'value' }, slots: {
slots: { default: ({ row }) => {
default: ({ row }) => { return (
return ( <>
<> {row.lastPhoneResultStatus
{row.lastPhoneResultStatus ? PhoneResultStatus.value?.find((v) => v.value === row.lastPhoneResultStatus)
? PhoneResultStatus.value?.find((v) => v.value === row.lastPhoneResultStatus) ?.label
?.label : ''}
: ''} </>
</> );
); },
}, },
}, },
}, {
{ field: 'caseStatus',
field: 'caseStatus', showOverflow: 'tooltip',
showOverflow: 'tooltip', title: '案件状态',
title: '案件状态', width: 80,
width: 80, enum: CaseStatus,
enum: CaseStatus, search: { el: 'select', props: { filterable: true,clearable: true }, labelWidth: 90 },
search: { el: 'select', props: { filterable: true,clearable: true }, labelWidth: 90 }, fieldNames: { label: 'label', value: 'value' },
fieldNames: { label: 'label', value: 'value' }, slots: {
slots: { default: ({ row }) => {
default: ({ row }) => { return (
return ( <>
<> {row.caseStatus
{row.caseStatus ? CaseStatus.value?.find((v) => v.value === row.caseStatus)?.label
? CaseStatus.value?.find((v) => v.value === row.caseStatus)?.label : ''}
: ''} </>
</> );
); },
}, },
}, },
}, {
{ field: 'credit?.borrowingTime',
field: 'credit?.borrowingTime', title: '借款时间',
title: '借款时间', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.litigationStatus',
field: 'credit?.litigationStatus', title: '诉讼执行状态',
title: '诉讼执行状态', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.litigationCaseNo',
field: 'credit?.litigationCaseNo', title: '诉讼案号',
title: '诉讼案号', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.executeCaseNo',
field: 'credit?.executeCaseNo', title: '执行案号',
title: '执行案号', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.closingStatus',
field: 'credit?.closingStatus', title: '结案状态',
title: '结案状态', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.constantNo',
field: 'credit?.constantNo', title: '合同编号',
title: '合同编号', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.planAmountOrg',
field: 'credit?.planAmountOrg', title: '资金方名称',
title: '资金方名称', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.planAmount',
field: 'credit?.planAmount', title: '申请金额',
title: '申请金额', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.paymentDate',
field: 'credit?.paymentDate', title: '借款日期',
title: '借款日期', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.overDate',
field: 'credit?.overDate', title: '到期日期',
title: '到期日期', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.period',
field: 'credit?.period', title: '期数',
title: '期数', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.lastPaymentDate',
field: 'credit?.lastPaymentDate', title: '最后还款日期',
title: '最后还款日期', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.yearRate',
field: 'credit?.yearRate', title: '年化利率',
title: '年化利率', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.paymentAmount',
field: 'credit?.paymentAmount', title: '订单总应还金额',
title: '订单总应还金额', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.interest',
field: 'credit?.interest', title: '订单总应还利息',
title: '订单总应还利息', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.free',
field: 'credit?.free', title: '订单总应还其他费用',
title: '订单总应还其他费用', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.overdue',
field: 'credit?.overdue', title: '逾期日期',
title: '逾期日期', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.overdueDays',
field: 'credit?.overdueDays', title: '逾期天数',
title: '逾期天数', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.overduePeriod',
field: 'credit?.overduePeriod', title: '逾期期数',
title: '逾期期数', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.overBalance',
field: 'credit?.overBalance', title: '已还本金',
title: '已还本金', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.overInterest',
field: 'credit?.overInterest', title: '已还利息',
title: '已还利息', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.overFree',
field: 'credit?.overFree', title: '已还其他费用',
title: '已还其他费用', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.remark',
field: 'credit?.remark', title: '备注',
title: '备注', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, {
{ field: 'credit?.disbursement',
field: 'credit?.disbursement', title: '垫付费用',
title: '垫付费用', showOverflow: 'tooltip',
showOverflow: 'tooltip', width: 80,
width: 80, },
}, ],
], onCheckboxChange: onCheckboxChange,
onCheckboxChange: onCheckboxChange, onCheckboxAll: onCheckboxAll,
onCheckboxAll: onCheckboxAll, }
}); });
const query = () => caseLRef.value?.search(); const query = () => caseLRef.value?.search();
const handleClick = () => { const handleClick = () => {
console.log('activeName', activeName.value); tableTrue.value = false
nextTick(() => {tableTrue.value = true})
setTimeout(() => { setTimeout(() => {
query(); query();
}, 300); }, 300);
}; };
onMounted(() => { onMounted(() => {
......
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