Commit 9dc6b9f9 authored by 沈翠玲's avatar 沈翠玲

调整布局

parent fc669198
......@@ -8,7 +8,6 @@ import { setupDirectives } from '@/plugins/directives';
import { setupVxeTabele } from './plugins/vxe-table';
import ProTable from '@/components/ProTable/index.vue';
import { download } from '@/utils/http/index';
import './styles/element-variables.scss';
export async function bootstrapInstall() {
const app = createApp(App);
......
......@@ -13,6 +13,8 @@ import {
VxePrint,
VxeTooltip,
VxeUpload,
VxeTabPane,
VxeTabs,
VxeCheckbox,
VxeNumberInput,
VxeRadioGroup,
......@@ -48,6 +50,8 @@ function lazyVxeUI(app) {
app.use(VxeTooltip);
app.use(VxeUpload);
app.use(VxeCheckbox);
app.use(VxeTabPane);
app.use(VxeTabs);
app.use(VxeNumberInput);
app.use(VxeRadioGroup);
}
......
// element-variables.scss
@import 'element-plus/theme-chalk/src/index.scss';
$--font-size: 13px;
......@@ -103,7 +103,7 @@
display: flex;
align-items: center;
justify-content: flex-end;
margin-bottom: 18px;
// margin-bottom: 10px;
}
}
......
......@@ -243,7 +243,8 @@
{
field: 'caseId',
title: '案件ID',
search: { el: 'input' },
showOverflow: 'tooltip',
search: { el: 'input', labelWidth: 80 },
slots: {
default: ({ row }) => {
return <>{row.loans.map((v) => v.caseId).join(',')}</>;
......@@ -253,71 +254,85 @@
},
{
field: 'loanPlatform.name',
showOverflow: 'tooltip',
title: '借款机构',
slots: {
default: ({ row }) => {
return <>{row.loans.map((v) => v.loanPlatform.name).join(',')}</>;
},
},
search: { el: 'input' },
search: { el: 'input', labelWidth: 80 },
},
{
field: 'borrower.name',
showOverflow: 'tooltip',
title: '借款人名字',
search: { el: 'input', key: 'borrower' },
search: { el: 'input', key: 'borrower', labelWidth: 80 },
width: 90,
},
{
field: 'totalRepayAmount',
showOverflow: 'tooltip',
title: '还款总额',
search: { el: 'input' },
search: { el: 'input', labelWidth: 80 },
width: 80,
},
{
field: 'applyDate',
title: '分期申请时间',
showOverflow: 'tooltip',
search: {
el: 'date-picker',
labelWidth: 80,
props: { type: 'datetime', valueFormat: 'YYYY-MM-DD HH:mm:ss' },
},
width: 115,
},
{
field: 'effectiveTime',
showOverflow: 'tooltip',
title: '分期生效时间',
search: {
el: 'date-picker',
labelWidth: 80,
props: { type: 'datetime', valueFormat: 'YYYY-MM-DD HH:mm:ss' },
},
width: 115,
},
{
field: 'totalPeriod',
showOverflow: 'tooltip',
title: '还款期数',
enum: options,
search: { el: 'select', props: { filterable: true }, span: 1 },
search: { el: 'select', props: { filterable: true }, span: 1, labelWidth: 80 },
fieldNames: { label: 'label', value: 'value' },
width: 80,
},
{
field: 'firstApplyDate',
showOverflow: 'tooltip',
title: '首期还款日',
search: { el: 'input' },
search: { el: 'date-picker', props: { type: 'date', valueFormat: 'YYYY-MM-DD' } },
search: {
el: 'date-picker',
props: { type: 'date', valueFormat: 'YYYY-MM-DD' },
labelWidth: 80,
},
width: 100,
},
{
field: 'remainingAmount',
showOverflow: 'tooltip',
title: '剩余待还金额',
search: { el: 'input' },
search: { el: 'input', labelWidth: 80 },
width: 110,
},
{
field: 'flowStatus',
title: '审核状态',
showOverflow: 'tooltip',
width: 80,
enum: flowStatusOpt,
search: { el: 'select', props: { filterable: true }, span: 1 },
search: { el: 'select', props: { filterable: true }, span: 1, labelWidth: 80 },
fieldNames: { label: 'label', value: 'value' },
slots: {
default: ({ row }) => {
......
......@@ -190,7 +190,8 @@
{
field: 'caseId',
title: '案件ID',
search: { el: 'input' },
showOverflow: 'tooltip',
search: { el: 'input', labelWidth: 80 },
slots: {
default: ({ row }) => {
return <>{row.reduceRecords.map((v) => v.loan.caseId).join(',')}</>;
......@@ -201,39 +202,45 @@
{
field: 'borrower.name',
title: '借款人名字',
search: { el: 'input', key: 'borrower' },
showOverflow: 'tooltip',
search: { el: 'input', key: 'borrower', labelWidth: 80 },
width: 90,
},
{
field: 'totalReduceAmount',
showOverflow: 'tooltip',
title: '减免金额',
search: { el: 'input' },
search: { el: 'input', labelWidth: 80 },
width: 120,
},
{
field: 'totalNumber',
showOverflow: 'tooltip',
title: '减免案件数',
search: { el: 'input' },
search: { el: 'input', labelWidth: 80 },
width: 120,
},
{
field: 'remainingAmount',
showOverflow: 'tooltip',
title: '剩余待还金额',
search: { el: 'input' },
search: { el: 'input', labelWidth: 80 },
width: 120,
},
{
field: 'totalPayAmount',
showOverflow: 'tooltip',
title: '累计还款金额',
search: { el: 'input' },
search: { el: 'input', labelWidth: 80 },
width: 120,
},
{
field: 'reduceType',
title: '减免类型',
showOverflow: 'tooltip',
width: 80,
enum: reduceTypeOpt,
search: { el: 'select', props: { filterable: true }, span: 1 },
search: { el: 'select', props: { filterable: true }, span: 1, labelWidth: 80 },
fieldNames: { label: 'label', value: 'value' },
slots: {
default: ({ row }) => {
......@@ -250,9 +257,10 @@
{
field: 'flowStatus',
title: '审核状态',
showOverflow: 'tooltip',
width: 80,
enum: flowStatusOpt,
search: { el: 'select', props: { filterable: true }, span: 1 },
search: { el: 'select', props: { filterable: true }, span: 1, labelWidth: 80 },
fieldNames: { label: 'label', value: 'value' },
slots: {
default: ({ row }) => {
......@@ -269,16 +277,20 @@
{
field: 'applyDate',
title: '减免截止时间',
showOverflow: 'tooltip',
search: {
el: 'date-picker',
labelWidth: 80,
props: { type: 'datetime', valueFormat: 'YYYY-MM-DD HH:mm:ss' },
},
},
{
field: 'inEffectDate',
title: '减免生效时间',
showOverflow: 'tooltip',
search: {
el: 'date-picker',
labelWidth: 80,
props: { type: 'datetime', valueFormat: 'YYYY-MM-DD HH:mm:ss' },
},
},
......
......@@ -90,61 +90,71 @@
{ type: 'checkbox', width: 50 },
{
field: 'caseId',
showOverflow: 'tooltip',
title: '案件ID',
search: { el: 'input' },
search: { el: 'input', labelWidth: 80 },
width: 80,
},
{
field: 'borrower.name',
title: '借款人名字',
search: { el: 'input', key: 'borrower' },
showOverflow: 'tooltip',
search: { el: 'input', key: 'borrower', labelWidth: 80 },
width: 90,
},
{
field: 'id',
title: '还款记录ID',
search: { el: 'input' },
showOverflow: 'tooltip',
search: { el: 'input', labelWidth: 80 },
},
{
field: 'realRepayAmount',
title: '实际还款金额',
search: { el: 'input' },
showOverflow: 'tooltip',
search: { el: 'input', labelWidth: 80 },
},
{
field: 'realRepayTime',
showOverflow: 'tooltip',
title: '实际还款时间',
search: {
el: 'date-picker',
labelWidth: 80,
props: { type: 'datetime', valueFormat: 'YYYY-MM-DD HH:mm:ss' },
},
width: 115,
},
{
field: 'reduce.totalPayAmount',
showOverflow: 'tooltip',
title: '应还金额',
search: { el: 'input', key: 'reduce.totalPayAmount' },
search: { el: 'input', key: 'reduce.totalPayAmount', labelWidth: 80 },
width: 115,
},
{
field: 'repayType',
showOverflow: 'tooltip',
title: '还款方式',
enum: options,
search: { el: 'select', props: { filterable: true }, span: 1 },
search: { el: 'select', props: { filterable: true }, span: 1, labelWidth: 80 },
fieldNames: { label: 'label', value: 'value' },
width: 80,
},
{
field: 'stages.loans.loanPlatform.name',
title: '借款机构',
search: { el: 'input', key: 'payOrg' },
showOverflow: 'tooltip',
search: { el: 'input', key: 'payOrg', labelWidth: 80 },
width: 100,
},
{
field: 'flowStatus',
title: '审核状态',
showOverflow: 'tooltip',
width: 80,
enum: flowStatusOpt,
search: { el: 'select', props: { filterable: true }, span: 1 },
search: { el: 'select', props: { filterable: true }, span: 1, labelWidth: 80 },
fieldNames: { label: 'label', value: 'value' },
slots: {
default: ({ row }) => {
......
......@@ -131,10 +131,11 @@
return {
columns: [
{ type: 'checkbox', title: '', width: 40 },
{ field: 'id', title: '跟进记录ID', width: 90 },
{ field: 'id', title: '跟进记录ID', showOverflow: 'tooltip', width: 90 },
{
field: 'caseId',
title: '案件ID',
showOverflow: 'tooltip',
width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 80 },
slots: {
......@@ -146,6 +147,7 @@
{
field: 'trackTime',
title: '跟进日期',
showOverflow: 'tooltip',
width: 100,
search: {
el: 'date-picker',
......@@ -156,6 +158,7 @@
{
field: 'nextTime',
title: '下次跟进时间',
showOverflow: 'tooltip',
width: 110,
search: {
el: 'date-picker',
......@@ -166,12 +169,14 @@
{
field: 'guarantor.name',
title: '联系人姓名',
showOverflow: 'tooltip',
width: 110,
search: { el: 'input', props: { clearable: true }, key: 'guarantorName', labelWidth: 80 },
},
{
field: 'guarantor.phone',
title: '联系人号码',
showOverflow: 'tooltip',
width: 110,
search: {
el: 'input',
......@@ -184,6 +189,7 @@
{
field: 'followStatus',
title: '拨打跟进结果',
showOverflow: 'tooltip',
width: 120,
enum: followStatusOpt,
search: {
......@@ -214,6 +220,7 @@
{
field: 'phoneResultStatus',
title: '拨打处置状态',
showOverflow: 'tooltip',
width: 120,
enum: phoneResultStatusOpt,
search: { el: 'select', props: { filterable: true }, labelWidth: 80 },
......@@ -233,6 +240,7 @@
{
field: 'trackRecord.auditStatus',
title: '稽核状态',
showOverflow: 'tooltip',
width: 80,
slots: {
default: ({ row }) => {
......@@ -249,12 +257,14 @@
{
field: 'remark',
title: '备注',
showOverflow: 'tooltip',
width: 80,
search: { el: 'input', props: { clearable: true }, labelWidth: 80 },
},
{
field: 'voices',
title: '通话录音',
showOverflow: 'tooltip',
width: 80,
slots: {
default: ({ row, rowIndex }) => {
......@@ -275,7 +285,8 @@
{
field: 'code',
title: '微信图片附件',
width: 80,
showOverflow: 'tooltip',
width: 100,
slots: {
default: ({ row, rowIndex }) => {
if (row.images && row.images.length > 0) {
......@@ -295,7 +306,8 @@
{
field: 'code',
title: '短信图片附件',
width: 80,
showOverflow: 'tooltip',
width: 100,
slots: {
default: ({ row, rowIndex }) => {
if (row.notes && row.notes.length > 0) {
......@@ -315,7 +327,8 @@
{
field: 'code',
title: '其他图片附件',
width: 80,
showOverflow: 'tooltip',
width: 100,
slots: {
default: ({ row, rowIndex }) => {
if (row.others && row.others.length > 0) {
......
......@@ -107,12 +107,19 @@
const config = reactive({
columns: [
{ type: 'checkbox', title: '', width: 40 },
{ field: 'caseId', title: '案件ID', search: { el: 'input', labelWidth: 78 }, width: 80 },
{
field: 'caseId',
title: '案件ID',
showOverflow: 'tooltip',
search: { el: 'input', labelWidth: 78 },
width: 100,
},
{
field: 'arealist',
enum: citydata,
title: '所属区域',
width: 80,
showOverflow: 'tooltip',
width: 100,
fieldNames: { label: 'label', value: 'value' },
search: { el: 'cascader', props: { clearable: true, checkStrictly: true }, labelWidth: 78 },
slots: {
......@@ -178,7 +185,7 @@
{
field: 'tenantTime',
title: '分配中心日期',
width: 100,
width: 130,
search: {
el: 'date-picker',
props: { type: 'daterange', valueFormat: 'YYYY-MM-DD' },
......@@ -194,7 +201,7 @@
{
field: 'cpeDate',
title: '分配CPE日期',
width: 100,
width: 130,
search: {
el: 'date-picker',
props: { type: 'daterange', valueFormat: 'YYYY-MM-DD' },
......@@ -216,7 +223,7 @@
{
field: 'borrower.idCard',
title: '身份证',
width: 120,
width: 140,
search: { el: 'input', props: { clearable: true }, key: 'idCard', labelWidth: 78 },
},
{
......
<template>
<div class="card table-box">
<div class="navigation-box absolute z-10 right-8 w-32 rounded-md pl-10 bg-white text-xs">
<el-affix :offset="80" style="width: 100% !important">
<div @click="anchor('baseinfo')" class="anchor-item">案人基本信息</div>
<div @click="anchor('caserelation')" class="anchor-item">案件联系人</div>
<div @click="anchor('casedetail')" class="anchor-item">案件明细</div>
<div @click="anchor('callrecord')" class="anchor-item">跟进记录</div>
<div @click="anchor('reducerecord')" class="anchor-item">减免记录</div>
<div @click="anchor('splitrecord')" class="anchor-item">分期记录</div>
<div @click="anchor('returnrecord')" class="anchor-item">还款记录</div>
</el-affix>
</div>
<div class="h-full w-full">
<div class="pl-8">
<div class="h-full w-full flex flex-col">
<div class="mt-2">
<el-button type="primary" @click="repair">修复申请</el-button>
<el-button type="primary" @click="reduce">减免申请</el-button>
<el-button type="primary" @click="split">分期申请</el-button>
......@@ -28,181 +17,197 @@
/>
</el-steps>
</div>
<div id="baseinfo">
<div class="box-title">案人基本信息</div>
<div class="box-content">
<table>
<tbody>
<tr>
<td class="label">姓名</td>
<td>{{ detail?.borrower?.name }}</td>
<td class="label">电话</td>
<td>{{ detail?.borrower?.phone }}</td>
<td class="label">户籍区域</td>
<td>{{
detail?.borrower?.domicileCity + ',' + detail?.borrower?.domicileProvince
}}</td>
</tr>
<tr>
<td class="label">证件号</td>
<td>{{ detail?.borrower?.idCard }}</td>
<td class="label">户籍地址</td>
<td colspan="3">{{ detail?.borrower?.address }}</td>
</tr>
</tbody>
<!-- Add more rows as needed -->
</table>
</div>
</div>
<div id="caserelation">
<div class="box-title">案件联系人</div>
<div class="box-content">
<ProTable
:config="relationConfig"
:data="guarantorData"
:showPagination="false"
:showToolBar="false"
/>
</div>
</div>
<div id="casedetail">
<div class="box-title"
>案件明细
<el-button type="primary" @click="foldCaseTree">展开/折叠 </el-button>
</div>
<div class="box-content">
<vxe-grid
v-bind="caseDetailConfig"
:show-footer="true"
:footer-method="footerMethod"
ref="caseDetailRef"
@cell-click="onCellCase"
>
<template #expand_content="{ row }">
<div class="expand-box">
<div>User Info</div>
<div class="expand-table">
<table
><tbody>
<tr>
<td>
<span class="label">User Name:</span>
<span>{{ row?.borrower?.name }}</span>
</td>
<td>
<span class="label">Telephone:</span>
<span>{{ row?.borrower?.phone }}</span>
</td>
<td>
<span class="label">Live:</span>
<span>{{
row?.borrower?.domicileCity + ',' + row?.borrower?.domicileProvince
}}</span>
</td>
</tr>
<tr>
<td>
<span class="label">Remark:</span>
<span>{{ row?.remark }}</span>
</td>
<td colspan="2">
<span class="label">Address:</span>
<span>{{ row?.borrower?.address }}</span>
</td>
</tr>
</tbody>
</table>
</div>
<vxe-tabs v-model="selectTab" type="round-card" :height="140" class="flex-1 mt-3">
<vxe-tab-pane title="案人基本信息" name="1">
<div id="baseinfo">
<div class="box-title">案人基本信息</div>
<div class="box-content">
<table>
<tbody>
<tr>
<td class="label">姓名</td>
<td>{{ detail?.borrower?.name }}</td>
<td class="label">电话</td>
<td>{{ detail?.borrower?.phone }}</td>
<td class="label">户籍区域</td>
<td>{{
detail?.borrower?.domicileCity + ',' + detail?.borrower?.domicileProvince
}}</td>
</tr>
<tr>
<td class="label">证件号</td>
<td>{{ detail?.borrower?.idCard }}</td>
<td class="label">户籍地址</td>
<td colspan="3">{{ detail?.borrower?.address }}</td>
</tr>
</tbody>
<!-- Add more rows as needed -->
</table>
</div>
</div>
</vxe-tab-pane>
<vxe-tab-pane title="案件联系人" name="2">
<div id="caserelation">
<div class="box-title">案件联系人</div>
<div class="box-content">
<ProTable
:config="relationConfig"
:data="guarantorData"
:showPagination="false"
:showToolBar="false"
/>
</div>
</div>
</vxe-tab-pane>
<vxe-tab-pane title="案件明细" name="3">
<div id="casedetail">
<div class="box-title"
>案件明细
<el-button type="primary" @click="foldCaseTree">展开/折叠 </el-button>
</div>
<div class="box-content">
<vxe-grid
v-bind="caseDetailConfig"
:show-footer="true"
:footer-method="footerMethod"
ref="caseDetailRef"
@cell-click="onCellCase"
>
<template #expand_content="{ row }">
<div class="expand-box">
<div>User Info</div>
<div class="expand-table">
<table
><tbody>
<tr>
<td>
<span class="label">User Name:</span>
<span>{{ row?.borrower?.name }}</span>
</td>
<td>
<span class="label">Telephone:</span>
<span>{{ row?.borrower?.phone }}</span>
</td>
<td>
<span class="label">Live:</span>
<span>{{
row?.borrower?.domicileCity + ',' + row?.borrower?.domicileProvince
}}</span>
</td>
</tr>
<tr>
<td>
<span class="label">Remark:</span>
<span>{{ row?.remark }}</span>
</td>
<td colspan="2">
<span class="label">Address:</span>
<span>{{ row?.borrower?.address }}</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</template>
</vxe-grid>
</div>
</div>
</vxe-tab-pane>
<vxe-tab-pane title="跟进记录" name="4">
<div id="callrecord">
<div class="box-title"
>跟进记录
<!-- <el-select v-model="form.relation" placeholder="请选择">
<el-option
v-for="item in caseDetailConfig.data"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> -->
</div>
<div class="box-content">
<ProTable
:config="recordConfig"
:data="recordData"
:showPagination="false"
:showToolBar="false"
/>
</div>
</div>
</vxe-tab-pane>
<vxe-tab-pane title="减免记录" name="5">
<div id="reducerecord">
<div class="box-title">减免记录</div>
<div class="box-content">
<ProTable
:config="reduceConfig"
:data="reduceData"
:showPagination="false"
:showToolBar="false"
/>
</div>
</div>
</vxe-tab-pane>
<vxe-tab-pane title="分期记录" name="6">
<div id="splitrecord">
<div class="box-title">分期记录</div>
<div class="box-content flex">
<!-- <table style="margin-bottom: 10px">
<tbody>
<tr>
<td class="label">分期申请ID</td>
<td>John Doe</td>
<td class="label">还款总额</td>
<td>30</td>
<td class="label">分期申请时间</td>
<td>30</td>
</tr>
<tr>
<td class="label">还款期数</td>
<td>johndoe@example.com</td>
<td class="label">首期还款日</td>
<td>johndoe@example.com</td>
<td class="label">分期生效时间</td>
<td>johndoe@example.com</td>
</tr>
</tbody>
</table> -->
<div class="w-2/3">
<ProTable
:config="splitConfig"
ref="splitRef"
:data="splitData"
:showPagination="false"
:showToolBar="false"
/>
</div>
</template>
</vxe-grid>
</div>
</div>
<div id="callrecord">
<div class="box-title"
>跟进记录
<!-- <el-select v-model="form.relation" placeholder="请选择">
<el-option
v-for="item in caseDetailConfig.data"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> -->
</div>
<div class="box-content">
<ProTable
:config="recordConfig"
:data="recordData"
:showPagination="false"
:showToolBar="false"
/>
</div>
</div>
<div id="reducerecord">
<div class="box-title">减免记录</div>
<div class="box-content">
<ProTable
:config="reduceConfig"
:data="reduceData"
:showPagination="false"
:showToolBar="false"
/>
</div>
</div>
<div id="splitrecord">
<div class="box-title">分期记录</div>
<div class="box-content flex">
<!-- <table style="margin-bottom: 10px">
<tbody>
<tr>
<td class="label">分期申请ID</td>
<td>John Doe</td>
<td class="label">还款总额</td>
<td>30</td>
<td class="label">分期申请时间</td>
<td>30</td>
</tr>
<tr>
<td class="label">还款期数</td>
<td>johndoe@example.com</td>
<td class="label">首期还款日</td>
<td>johndoe@example.com</td>
<td class="label">分期生效时间</td>
<td>johndoe@example.com</td>
</tr>
</tbody>
</table> -->
<div class="w-2/3">
<ProTable
:config="splitConfig"
ref="splitRef"
:data="splitData"
:showPagination="false"
:showToolBar="false"
/>
<div class="w-1/3 pl-3">
<ProTable
:config="splitDeConfig"
:data="splitDeData"
:showPagination="false"
:showToolBar="false"
/>
</div>
</div>
</div>
<div class="w-1/3 pl-3">
<ProTable
:config="splitDeConfig"
:data="splitDeData"
:showPagination="false"
:showToolBar="false"
/>
</vxe-tab-pane>
<vxe-tab-pane title="还款记录" name="7">
<div id="returnrecord">
<div class="box-title">还款记录</div>
<div class="box-content">
<ProTable
:config="returnConfig"
:data="returnData"
:showPagination="false"
:showToolBar="false"
/>
</div>
</div>
</div>
</div>
<div id="returnrecord">
<div class="box-title">还款记录</div>
<div class="box-content">
<ProTable
:config="returnConfig"
:data="returnData"
:showPagination="false"
:showToolBar="false"
/>
</div>
</div>
</vxe-tab-pane>
</vxe-tabs>
</div>
<repairModal ref="repairModalRef"></repairModal>
<returnModal ref="returnModalRef" @success="query('还款')"></returnModal>
......@@ -236,6 +241,7 @@
import { saveAudit } from '@/api/audit';
import { inject } from 'vue';
const envs = getAppEnvConfig();
const selectTab = ref('1');
const returnData = ref([]);
const recordData = ref([]);
const guarantorData = ref([]);
......@@ -323,34 +329,42 @@
{
field: 'id',
title: '还款记录ID',
showOverflow: 'tooltip',
},
{
field: 'realRepayAmount',
title: '实际还款金额',
showOverflow: 'tooltip',
},
{
field: 'realRepayTime',
title: '实际还款时间',
showOverflow: 'tooltip',
},
{
field: 'reduce.id',
title: '关联减免ID',
showOverflow: 'tooltip',
},
{
field: 'stages.id',
title: '关联分期ID',
showOverflow: 'tooltip',
},
{
field: 'stages.totalPeriod',
title: '关联分期期次',
showOverflow: 'tooltip',
},
{
field: 'reduce.totalPayAmount',
title: '应还金额',
showOverflow: 'tooltip',
},
{
field: 'stages.loans.loanPlatform.name',
title: '借款机构',
showOverflow: 'tooltip',
},
],
toolbarConfig: { enabled: false },
......@@ -361,26 +375,32 @@
{
field: 'id',
title: '跟进记录ID',
showOverflow: 'tooltip',
},
{
field: 'trackTime',
title: '跟进日期',
showOverflow: 'tooltip',
},
{
field: 'nextTime',
title: '下次跟进时间',
showOverflow: 'tooltip',
},
{
field: 'guarantor.name',
title: '联系人姓名',
showOverflow: 'tooltip',
},
{
field: 'guarantor.phone',
title: '联系人号码',
showOverflow: 'tooltip',
},
{
field: 'followStatus',
title: '拨打跟进结果',
showOverflow: 'tooltip',
slots: {
default: ({ row }) => {
return (
......@@ -396,6 +416,7 @@
{
field: 'phoneResultStatus',
title: '拨打处置状态',
showOverflow: 'tooltip',
slots: {
default: ({ row }) => {
return (
......@@ -411,10 +432,12 @@
{
field: 'remark',
title: '备注',
showOverflow: 'tooltip',
},
{
field: 'voices',
title: '通话录音',
showOverflow: 'tooltip',
slots: {
default: ({ row, rowIndex }) => {
if (row.voices && row.voices.length > 0) {
......@@ -497,18 +520,17 @@
{
field: 'name',
title: '联系人姓名',
showOverflow: 'tooltip',
},
{
field: 'kinship',
title: '与债权人关系',
},
{
field: 'code',
title: '号码类型',
showOverflow: 'tooltip',
},
{
field: 'phone',
title: '号码',
showOverflow: 'tooltip',
slots: {
default: ({ row }) => {
return <>{row.phone + ' ' + (row.status === 'Y' ? '有效' : '无效')}</>;
......@@ -518,6 +540,7 @@
{
field: 'code',
title: '',
fixed: 'right',
slots: {
default: ({ row, rowIndex }) => {
return (
......@@ -576,33 +599,41 @@
{
field: 'caseId',
title: '案件ID',
showOverflow: 'tooltip',
},
{
field: 'product',
title: '产品',
showOverflow: 'tooltip',
},
{
field: 'loanPlatform.name',
title: '借款机构',
showOverflow: 'tooltip',
},
{
field: 'commissionAmount',
title: '委案金额',
showOverflow: 'tooltip',
},
{
field: 'sumReductionAmount',
title: '累计减免金额',
showOverflow: 'tooltip',
},
{
field: 'sumRepayAmount',
title: '累计还款金额',
showOverflow: 'tooltip',
},
{
field: 'remainingAmount',
title: '剩余待还金额',
showOverflow: 'tooltip',
},
{
field: 'code',
fixed: 'right',
title: '',
slots: {
default: ({ row, rowIndex }) => {
......@@ -657,40 +688,48 @@
{
field: 'caseId',
title: '案件ID',
showOverflow: 'tooltip',
width: 80,
},
{
field: 'loans.loanPlatform.name',
showOverflow: 'tooltip',
title: '借款机构',
},
{
field: 'totalRepayAmount',
showOverflow: 'tooltip',
title: '还款总额',
width: 80,
},
{
field: 'applyDate',
title: '分期申请时间',
showOverflow: 'tooltip',
width: 115,
},
{
field: 'effectiveTime',
title: '分期生效时间',
showOverflow: 'tooltip',
width: 115,
},
{
field: 'totalPeriod',
showOverflow: 'tooltip',
title: '还款期数',
width: 80,
},
{
field: 'firstApplyDate',
title: '首期还款日',
showOverflow: 'tooltip',
width: 100,
},
{
field: 'remainingAmount',
title: '剩余待还金额',
showOverflow: 'tooltip',
width: 110,
},
],
......@@ -702,14 +741,17 @@
{
field: 'period',
title: '期次',
showOverflow: 'tooltip',
},
{
field: 'playApplyDate',
title: '到期日',
showOverflow: 'tooltip',
},
{
field: 'repayStatus',
title: '状态',
showOverflow: 'tooltip',
slots: {
default: ({ row }) => {
return <>{row.repayStatus ? (row.repayStatus === 'over' ? '已还款' : '待还款') : ''}</>;
......@@ -719,10 +761,12 @@
{
field: 'applyAmount',
title: '金额',
showOverflow: 'tooltip',
},
{
field: 'code',
title: '操作',
fixed: 'right',
slots: {
default: ({ row, rowIndex }) => {
return (
......@@ -783,30 +827,37 @@
{
field: 'caseId',
title: '案件ID',
showOverflow: 'tooltip',
},
{
field: 'reduceAmount',
title: '减免金额',
showOverflow: 'tooltip',
},
{
field: 'totalReduceAmount',
title: '减免金额(总计)',
showOverflow: 'tooltip',
},
{
field: 'totalNumber',
title: '减免案件数',
showOverflow: 'tooltip',
},
{
field: 'remainingAmount',
title: '剩余待还金额',
showOverflow: 'tooltip',
},
{
field: 'totalPayAmount',
title: '累计还款金额',
showOverflow: 'tooltip',
},
{
field: 'reduceType',
title: '减免类型',
showOverflow: 'tooltip',
slots: {
default: ({ row }) => {
return (
......@@ -817,19 +868,23 @@
},
{
field: 'id',
showOverflow: 'tooltip',
title: '减免申请ID',
},
{
field: 'applyDate',
showOverflow: 'tooltip',
title: '减免截止时间',
},
{
field: 'inEffectDate',
showOverflow: 'tooltip',
title: '减免生效时间',
},
{
field: 'code',
title: '操作',
fixed: 'right',
slots: {
default: ({ row, rowIndex }) => {
return (
......@@ -1016,7 +1071,7 @@
line-height: 43px;
border-bottom: 1px solid rgba(0, 0, 0, 0.06);
margin-bottom: 10px;
margin-top: 10px;
margin-left: 10px;
}
.box-content {
padding-right: 40px;
......
......@@ -31,9 +31,9 @@
<div>
<div class="flex items-center">
<el-button type="danger" @click="checkData" :disabled="!form.path">检查</el-button>
<span class="ml-2" v-if="checkObj.check">
<span class="mr-2 text-gray-400">通过{{ checkObj.result.success }}</span>
<span class="text-gray-400">失败{{ checkObj.result.error }}</span>
<span class="ml-2">
<span class="mr-2 text-gray-400">通过{{ checkObj?.result?.success || 0 }}</span>
<span class="text-gray-400">失败{{ checkObj?.result?.error || 0 }}</span>
</span>
</div>
<!-- 进度条 -->
......@@ -44,6 +44,7 @@
@click="openError"
>下载检查结果</div
>
<div v-else class="mt-2 text-xs text-red-500"> *检查文件后才可以提交 </div>
</div>
</div>
<div class="flex-1 importwrapper">
......@@ -136,40 +137,48 @@
{
field: 'code',
title: '导入编号',
showOverflow: 'tooltip',
search: { el: 'input', props: { clearable: true } },
},
{
field: 'contractNo',
title: '委案合同',
showOverflow: 'tooltip',
search: { el: 'input', props: { clearable: true } },
},
{
field: 'code',
title: '资产类型',
enum: options,
showOverflow: 'tooltip',
search: { el: 'select', props: { filterable: true } },
fieldNames: { label: 'genderLabel', value: 'genderValue' },
},
{
field: 'totalCaseNum',
showOverflow: 'tooltip',
title: '案件总数',
},
{
field: 'totalAmount',
showOverflow: 'tooltip',
title: '案件总金额',
},
{
field: 'totalBorrowerNum',
showOverflow: 'tooltip',
title: '客户总数',
},
{
field: 'discount',
title: '折扣',
showOverflow: 'tooltip',
width: 80,
},
{
field: 'totalPengNum',
title: '撞库次数',
showOverflow: 'tooltip',
width: 100,
slots: {
default: ({ row }) => {
......@@ -186,6 +195,7 @@
{
field: 'action',
title: '文件地址',
showOverflow: 'tooltip',
width: 200,
slots: {
default: ({ row }) => {
......@@ -201,6 +211,8 @@
},
{
field: 'createTime',
width: 140,
showOverflow: 'tooltip',
title: '创建日期',
search: {
el: 'date-picker',
......
......@@ -34,13 +34,16 @@
const config = reactive({
columns: [
{ type: 'checkbox', width: 50 },
{ field: 'id', title: '资管公司ID' },
{ field: 'orgName', title: '公司名称', search: { el: 'input' } },
{ field: 'id', title: '资管公司ID', showOverflow: 'tooltip' },
{ field: 'orgName', title: '公司名称', showOverflow: 'tooltip', search: { el: 'input' } },
{
field: 'arealist',
enum: citydata,
showOverflow: 'tooltip',
title: '所属区域',
fieldNames: { label: 'label', value: 'value' },
showOverflow: 'tooltip',
search: { el: 'cascader', props: { clearable: true, checkStrictly: true } },
slots: {
default: ({ row }) => {
......@@ -57,17 +60,24 @@
{
field: 'maxStagesNum',
title: '是否共案处理',
showOverflow: 'tooltip',
slots: {
default: ({ row }) => {
return <ElTag>{row.mergerCase == 'Y' ? '是' : '否'}</ElTag>;
},
},
},
{ field: 'offender', title: '负责人', search: { el: 'input' } },
{ field: 'offenderPhone', title: '负责人手机', search: { el: 'input' } },
{ field: 'offender', showOverflow: 'tooltip', title: '负责人', search: { el: 'input' } },
{
field: 'offenderPhone',
showOverflow: 'tooltip',
title: '负责人手机',
search: { el: 'input' },
},
{
field: 'status',
title: '状态',
showOverflow: 'tooltip',
width: 80,
slots: {
default: ({ row }) => {
......@@ -79,11 +89,12 @@
},
},
},
{ field: 'createBy', title: '创建人' },
{ field: 'createTime', title: '创建时间' },
{ field: 'createBy', showOverflow: 'tooltip', title: '创建人' },
{ field: 'createTime', showOverflow: 'tooltip', title: '创建时间', width: 140 },
{
width: 200,
title: '操作',
fixed: 'right',
slots: {
default: ({ row }) => (
<>
......
......@@ -75,6 +75,7 @@
field: 'action',
title: '操作',
width: 200,
fixed: 'right',
slots: {
default: ({ row }) => {
return (
......
......@@ -49,6 +49,7 @@
{
width: 200,
title: '操作',
fixed: 'right',
slots: {
default: ({ row }) => (
<>
......
......@@ -35,6 +35,7 @@
{
width: 280,
title: '操作',
fixed: 'right',
slots: {
default: ({ row }) => (
<>
......
......@@ -57,6 +57,7 @@
{
width: 200,
title: '操作',
fixed: 'right',
slots: {
default: ({ row }) => (
<>
......
......@@ -32,25 +32,34 @@
const socketStore = useSocketStore();
const config = reactive({
columns: [
{ field: 'title', minWidth: 200, title: '消息标题', search: { el: 'input' } },
{
field: 'title',
minWidth: 200,
showOverflow: 'tooltip',
title: '消息标题',
search: { el: 'input', labelWidth: 65 },
},
{
field: 'content',
title: '消息内容',
showOverflow: 'tooltip',
width: 160,
search: { el: 'input', props: { clearable: true } },
search: { el: 'input', props: { clearable: true }, labelWidth: 65 },
},
{
field: 'sender.username',
title: '发送人名称',
showOverflow: 'tooltip',
width: 160,
search: { el: 'input', props: { clearable: true }, key: 'senderName' },
search: { el: 'input', props: { clearable: true }, key: 'senderName', labelWidth: 65 },
},
{
field: 'status',
title: '状态',
showOverflow: 'tooltip',
width: 100,
enum: statusOpt,
search: { el: 'select', props: { filterable: true }, span: 1 },
search: { el: 'select', props: { filterable: true }, span: 1, labelWidth: 65 },
fieldNames: { label: 'label', value: 'value' },
slots: {
default: ({ row }) => {
......@@ -64,15 +73,17 @@
},
{
field: 'sendTime',
showOverflow: 'tooltip',
title: '发送时间',
width: 170,
},
{
field: 'messageType',
width: 100,
showOverflow: 'tooltip',
title: '消息类型',
enum: messageTypeOpt,
search: { el: 'select', props: { filterable: true }, span: 1 },
search: { el: 'select', props: { filterable: true }, span: 1, labelWidth: 65 },
fieldNames: { label: 'label', value: 'value' },
slots: {
default: ({ row }) => {
......@@ -90,8 +101,9 @@
field: 'sendType',
width: 100,
title: '发送方式',
showOverflow: 'tooltip',
enum: sendTypeOpt,
search: { el: 'select', props: { filterable: true }, span: 1 },
search: { el: 'select', props: { filterable: true }, span: 1, labelWidth: 65 },
fieldNames: { label: 'label', value: 'value' },
slots: {
default: ({ row }) => {
......@@ -105,8 +117,9 @@
field: 'serviceType',
width: 100,
title: '业务类型',
showOverflow: 'tooltip',
enum: serviceTypeOpt,
search: { el: 'select', props: { filterable: true }, span: 1 },
search: { el: 'select', props: { filterable: true }, span: 1, labelWidth: 65 },
fieldNames: { label: 'label', value: 'value' },
slots: {
default: ({ row }) => {
......
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