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

业务审批

parent dcf0ca7f
<template>
<el-drawer
v-model="showModal"
title="分期申请"
:size="850"
:size="950"
direction="rtl"
@close="showModal = false"
:before-close="onHide"
>
<div class="h-full flex-col flex mydrawer pb-2">
<div>
<template #header="{ titleId, titleClass }">
<h4 :id="titleId" :class="titleClass">分期审批
<el-tag :type="currentDetail.flowStatus === 'pass' ? 'success' : currentDetail.flowStatus === 'fail' ? 'danger' : 'warning'">{{currentDetail.flowStatus
? FlowStatus?.find((v) => v.value === currentDetail.flowStatus)?.label
: ''}}</el-tag>
</h4>
</template>
<div class="flex">
<div class=" w-1/4 flex-shrink-0">
<p class=" font-bold mb-3">审批进程</p>
<div :class="{nopending: currentDetail.flowStatus !== 'pending'}">
<el-timeline style="max-width: 600px">
<el-timeline-item
:timestamp="currentDetail?.applyDate"
color="#234ca3"
>
<p class=" font-bold text-sm">发起人</p>
<span class="text-xs bg-gray-200 rounded-sm text-slate-900 px-2">{{currentDetail?.cpe?.username}}</span>
</el-timeline-item>
<el-timeline-item
:timestamp="currentDetail?.createTime"
:color="currentDetail.flowStatus !== 'pending' ? '#234ca3' : null"
>
<p class=" font-bold text-sm">平台审批环节</p>
<span class="text-xs bg-gray-200 rounded-sm text-slate-900 px-2">{{currentDetail?.createBy}}</span>
</el-timeline-item>
</el-timeline>
</div>
</div>
<div class="h-full w-3/4 flex-shrink-0 flex-col flex mydrawer pb-2">
<div class="w-full">
<table>
<tbody>
<tr>
<td class="label">债务人</td>
<td>{{ currentDetail?.borrower?.name }}</td>
<td class="label">身份证号</td>
<td>{{ currentDetail?.borrower?.idCard }}</td>
</tr>
<tr>
<td class="label">产品</td>
<td>
<VxeTooltip
:content="Array.from(new Set(currentDetail?.loans.map((v) => v.loanPlatform.name))).join(',')"
>
<VxeTextEllipsis
:content="Array.from(new Set(currentDetail?.loans.map((v) => v.loanPlatform.name))).join(',')"
></VxeTextEllipsis>
</VxeTooltip>
</td>
<td class="label">调解中心</td>
<td><VxeTooltip
:content="currentDetail?.tenant?.name"
>
<VxeTextEllipsis
:content="currentDetail?.tenant?.name"
></VxeTextEllipsis>
</VxeTooltip></td>
</tr>
<tr>
<td class="label">申请CPE</td>
<td>{{ currentDetail?.cpe?.username }}</td>
<td class="label">剩余待还金额</td>
<td>{{ currentDetail?.remainingAmount }}</td>
</tr>
</tbody>
<!-- Add more rows as needed -->
</table>
<ProTable
:config="config"
ref="ProTableRef"
......@@ -17,10 +82,13 @@
:showToolBar="false"
>
<template #table_top>
<p class="font-bold">关联案件:</p>
<p class="font-bold my-2">关联案件:</p>
</template>
</ProTable>
</div>
</div>
</div>
<div class="flex">
<div class="mt-3 pr-8 w-2/5">
<el-form
......@@ -41,6 +109,7 @@
<el-form-item class="w-full" label="还款总额:" prop="code">
<el-input
v-model="form.totalRepayAmount"
:disabled="currentDetail.flowStatus !== 'pending'"
placeholder="请输入"
@change="changePeriod"
/>
......@@ -101,6 +170,7 @@
<el-upload
:action="url"
:headers="{timeout:180000}"
v-if="showModal"
v-model:file-list="form.images"
disabled
list-type="picture-card"
......@@ -155,7 +225,7 @@
>
<template #table_top>
<div class="flex justify-end">
<el-button type="primary" @click="editOrConfirm" class="mr-1 my-2">{{
<el-button type="primary" @click="editOrConfirm" class="mr-1 my-2" v-if="currentDetail.flowStatus === 'pending'">{{
editFirst ? '确定' : '修改'
}}</el-button>
</div>
......@@ -166,12 +236,11 @@
</div>
</div>
</div>
</div>
<template #footer>
<div style="flex: auto">
<el-button @click="showModal = false">取消</el-button>
<el-button type="primary" @click="submitForm('fail')">不通过</el-button>
<el-button type="primary" @click="submitForm('pass')">通过</el-button>
<el-button type="primary" @click="submitForm('fail')" v-if="currentDetail.flowStatus === 'pending'">不通过</el-button>
<el-button type="primary" @click="submitForm('pass')" v-if="currentDetail.flowStatus === 'pending'">通过</el-button>
</div>
</template>
<el-dialog v-model="dialogVisible">
......@@ -183,6 +252,10 @@
import dayjs from 'dayjs';
import { computed } from 'vue';
import { reactive, ref } from 'vue';
import { Close } from '@element-plus/icons-vue';
import { VxeTextEllipsis, VxeTooltip } from 'vxe-pc-ui';
import { ElInputNumber, ElMessage } from 'element-plus';
import { changeAmount } from '@/api/property';
import { getByIdPlatforms } from '@/api/platform';
......@@ -401,36 +474,43 @@
{
field: 'caseId',
title: '案件ID',
width: 120,
showOverflow: 'tooltip',
},
{
field: 'product',
title: '产品',
width: 120,
showOverflow: 'tooltip',
},
{
field: 'loanPlatform.name',
title: '借款平台',
width: 120,
showOverflow: 'tooltip',
},
{
field: 'commissionAmount',
title: '委案金额',
width: 120,
showOverflow: 'tooltip',
},
{
field: 'sumReductionAmount',
title: '累计减免金额',
width: 120,
showOverflow: 'tooltip',
},
{
field: 'sumRepayAmount',
title: '累计还款金额',
width: 120,
showOverflow: 'tooltip',
},
{
field: 'remainingAmount',
title: '剩余待还金额',
width: 120,
showOverflow: 'tooltip',
},
],
......@@ -496,7 +576,6 @@
currentDetail.value = detail;
console.log('currentDetail', currentDetail.value, caselist);
form.totalRepayAmount = 0;
form.images = [];
form.totalPeriod = detail.totalPeriod
form.applyDate = detail.applyDate
form.firstApplyDate = detail.firstApplyDate
......@@ -592,4 +671,42 @@
font-size: 12px;
}
}
.nopending {
:deep(.el-timeline-item__tail) {
border-color: #234ca3;
}
}
table {
width: 100%;
margin-top: 10px;
border-collapse: collapse;
}
td {
border: 1px solid rgba(5, 5, 5, 0.06);
background: #fff;
color: #606268;
width: 240px;
line-height: 11px;
height: 40px;
font-size: 14px;
padding-left: 5px;
&.label {
text-align: center;
background: #f6f8ff;
font-weight: bold;
color: #909399;
}
}
</style>
<style lang="scss">
.el-drawer .el-drawer__header .el-tag--warning .el-tag__content {
color: var(--el-color-warning) !important;
}
.el-drawer .el-drawer__header .el-tag--success .el-tag__content {
color: var(--el-color-success) !important;
}
.el-drawer .el-drawer__header .el-tag--danger .el-tag__content {
color: var(--el-color-danger) !important;
}
</style>
......@@ -17,116 +17,7 @@
</el-tab-pane>
</el-tabs>
</div>
<ProTable :config="config" ref="ProTableRef" :api="getByStagesPage" :selectdList="selectdList" :paramCallback="paramCallback">
<template #left_buttons>
<!-- <el-button type="primary">下载申请 </el-button> -->
<el-button
type="primary"
@click="changeStatus"
:disabled="!selectdList || !selectdList.length"
>审批
</el-button>
<!-- <el-button type="primary">下载 </el-button>
<el-button type="primary">批量修复上传 </el-button> -->
</template>
<template #expand_content="{ row }">
<div class="expand-box">
<div class="flex">
<div class="w-2/3 pr-2">
<div>案件明细</div>
<div class="expand-table">
<div v-for="(item, index) in row.loans" :key="index">
<div class="public-header">
{{ item?.caseId }}
</div>
<table
><tbody>
<tr>
<td class="label">案件ID</td>
<td>{{ item?.caseId }}</td>
<td class="label">借款平台</td>
<td>{{ item?.loanPlatform?.name }}</td>
</tr>
<tr>
<td class="label">资管公司</td>
<td>{{ item?.manageOrg.orgName }}</td>
<td class="label">身份证</td>
<td>{{ item?.borrower?.idCard }}</td>
</tr>
<tr>
<td class="label">手机号</td>
<td>{{ item?.borrower?.phone }}</td>
<td class="label">折扣</td>
<td>{{ item?.discount }}</td>
</tr>
<tr>
<td class="label">累计还款金额</td>
<td>{{ item?.sumRepayAmount }}</td>
<td class="label">累计减免金额</td>
<td>{{ item?.sumReductionAmount }}</td>
</tr>
<tr>
<td class="label">剩余待还金额</td>
<td>{{ item?.remainingAmount }}</td>
<td class="label">CPE</td>
<td>{{ item?.cpe?.username }}</td>
</tr>
<tr>
<td class="label">分派CPE日期</td>
<td>{{ item?.cpeDate }}</td>
<td class="label">本金余额</td>
<td>{{ item?.principalBalance }}</td>
</tr>
<tr>
<td class="label">手续费</td>
<td>{{ item?.commission }}</td>
</tr>
<tr>
<td class="label">委案金额</td>
<td>{{ item?.commissionAmount }}</td>
<td class="label">案件状态</td>
<td>
{{
item?.caseStatus
? CaseStatus.find((v) => v.value === item?.caseStatus)?.label
: ''
}}</td
>
</tr>
<tr>
<td class="label">跟进结果</td>
<td>{{
item?.followStatus
? FollowStatus.find((v) => v.value === item?.followStatus)?.label
: ''
}}</td>
<td class="label">跟进状态</td>
<td>{{
item?.phoneResultStatus
? PhoneResultStatus.find((v) => v.value === item?.phoneResultStatus)
.label
: ''
}}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="flex-1">
<div>分期明细</div>
<div class="expand-table">
<ProTable
:config="splitDeConfig"
:data="row.byStagesRecords"
:showPagination="false"
:showToolBar="false"
/>
</div>
</div>
</div>
</div>
</template>
<ProTable :config="config" ref="ProTableRef" :api="getByStagesPage" :paramCallback="paramCallback">
</ProTable>
<vxe-modal
resize
......@@ -263,15 +154,10 @@
],
toolbarConfig: { enabled: false },
});
const changeStatus = async () => {
if (selectdList.value.length > 1) {
showModal.value = true;
} else {
const changeStatus = async (row) => {
splitDrawerRef.value.openModal(
JSON.parse(JSON.stringify(selectdList.value[0]))
JSON.parse(JSON.stringify(row))
);
}
};
const submitForm = async (type) => {
const ids = selectdList.value.map((v) => v.id).join(',');
......@@ -299,8 +185,8 @@
const config = computed(() => {
return {
columns: [
{ type: 'checkbox', width: 60, fixed: 'left' },
{ type: 'expand', width: 80, slots: { content: 'expand_content' } },
// { type: 'checkbox', width: 60, fixed: 'left' },
// { type: 'expand', width: 80, slots: { content: 'expand_content' } },
{
field: 'caseId',
title: '案件ID',
......@@ -334,7 +220,7 @@
width: 90,
},
{
title: 'CPE',
title: '发起人',
showOverflow: 'tooltip',
width: 60,
slots: {
......@@ -469,6 +355,22 @@
},
},
},
{
field: 'code',
title: '操作',
width: 120,
slots: {
default: ({ row, rowIndex }) => {
return (
<>
<ElButton type="primary" onClick={() => changeStatus(row)}>
{row.flowStatus === 'pending' ? '查看并审核' : '查看'}
</ElButton>
</>
);
},
},
}
],
onCheckboxChange: onCheckboxChange,
onCheckboxAll: onCheckboxAll,
......
......@@ -17,96 +17,7 @@
</el-tab-pane>
</el-tabs>
</div>
<ProTable :config="config" ref="ProTableRef" :api="getReducePage" :selectdList="selectdList" :paramCallback="paramCallback">
<template #left_buttons>
<!-- <el-button type="primary">下载申请 </el-button> -->
<el-button
type="primary"
@click="changeStatus"
:disabled="!selectdList || !selectdList.length"
>审批
</el-button>
<!-- <el-button type="primary">下载 </el-button>
<el-button type="primary">批量修复上传 </el-button> -->
</template>
<template #expand_content="{ row }">
<div class="expand-box">
<div>案件明细</div>
<div class="expand-table">
<div v-for="(item, index) in row.reduceRecords" :key="index">
<div class="public-header">
{{ item?.loan?.caseId }}
</div>
<table
><tbody>
<tr>
<td class="label">案件ID</td>
<td>{{ item?.loan?.caseId }}</td>
<td class="label">借款平台</td>
<td>{{ item?.loan?.loanPlatform?.name }}</td>
<td class="label">资管公司</td>
<td>{{ item?.loan?.manageOrg.orgName }}</td>
</tr>
<tr>
<td class="label">身份证</td>
<td>{{ item?.loan?.borrower?.idCard }}</td>
<td class="label">手机号</td>
<td>{{ item?.loan?.borrower?.phone }}</td>
<td class="label">折扣</td>
<td>{{ item?.loan?.discount }}</td>
<td class="label">委案金额</td>
<td>{{ item?.loan?.commissionAmount }}</td>
</tr>
<tr>
<td class="label">累计还款金额</td>
<td>{{ item?.loan?.sumRepayAmount }}</td>
<td class="label">累计减免金额</td>
<td>{{ item?.loan?.sumReductionAmount }}</td>
<td class="label">减免金额</td>
<td>{{ item?.reduceAmount }}</td>
<td class="label">剩余待还金额</td>
<td>{{ item?.loan?.remainingAmount }}</td>
</tr>
<tr>
<td class="label">CPE</td>
<td>{{ item?.loan?.cpe?.username }}</td>
<td class="label">分派CPE日期</td>
<td>{{ item?.loan?.cpeDate }}</td>
<td class="label">本金余额</td>
<td>{{ item?.loan?.principalBalance }}</td>
<td class="label">案件状态</td>
<td>
{{
item?.loan?.caseStatus
? CaseStatus?.find((v) => v.value === item?.loan?.caseStatus)?.label
: ''
}}</td
>
</tr>
<tr>
<td class="label">手续费</td>
<td>{{ item?.loan?.commission }}</td>
<td class="label">跟进结果</td>
<td>{{
item?.loan?.followStatus
? FollowStatus?.find((v) => v.value === item?.loan?.followStatus)?.label
: ''
}}</td>
<td class="label">跟进状态</td>
<td>{{
item?.loan?.phoneResultStatus
? PhoneResultStatus?.find(
(v) => v.value === item?.loan?.phoneResultStatus
)?.label
: ''
}}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</template>
<ProTable :config="config" ref="ProTableRef" :api="getReducePage" :paramCallback="paramCallback">
</ProTable>
<vxe-modal
resize
......@@ -126,12 +37,17 @@
<el-button type="primary" @click="submitForm('pass')">通过</el-button>
</template>
</vxe-modal>
<reduceDrawer
ref="reduceDrawerRef"
@success="query"
></reduceDrawer>
<el-image-viewer :url-list="srcList" v-if="RefImage" @close="RefImage = false" />
</div>
</template>
<script setup name="systemLog" lang="jsx">
import { computed } from 'vue';
import reduceDrawer from './components/reduceDrawer.vue';
import { reactive, ref } from 'vue';
import { getReducePage,getReduceTotal, flowStatusByIds } from '@/api/property';
import { onMounted } from 'vue';
......@@ -142,6 +58,7 @@
import { Download } from '@element-plus/icons-vue';
import { getAppEnvConfig } from '@/utils/env';
const envs = getAppEnvConfig();
const reduceDrawerRef = ref();
const { PhoneResultStatus, ReduceType, FlowStatus, FollowStatus, CaseStatus } = useDict("PhoneResultStatus","ReduceType", "FlowStatus", "FollowStatus", "CaseStatus");
const downloadfile = inject('download');
......@@ -159,6 +76,11 @@
const name = item.slice(item.lastIndexOf('/') + 1, item.length);
downloadfile('/sys/static/' + item, {}, name);
};
const changeStatus = async (row) => {
reduceDrawerRef.value.openModal(
JSON.parse(JSON.stringify(row))
);
};
const paramCallback = (param) => {
const obj = JSON.parse(JSON.stringify(param));
obj['flowStatus'] = activeName.value;
......@@ -201,9 +123,6 @@
selectdList.value = [];
}
};
const changeStatus = async () => {
showModal.value = true;
};
const handleClick = () => {
setTimeout(() => {
query();
......@@ -235,8 +154,8 @@
const config = computed(() => {
return {
columns: [
{ type: 'checkbox', width: 60, fixed: 'left' },
{ type: 'expand', width: 40, slots: { content: 'expand_content' } },
// { type: 'checkbox', width: 60, fixed: 'left' },
// { type: 'expand', width: 40, slots: { content: 'expand_content' } },
{
field: 'caseId',
title: '案件ID',
......@@ -287,9 +206,9 @@
width: 120,
},
{
title: 'CPE',
title: '发起人',
showOverflow: 'tooltip',
width: 60,
width: 70,
slots: {
default: ({ row }) => {
if (row.cpe?.username) {
......@@ -372,6 +291,7 @@
field: 'applyDate',
title: '减免截止时间',
showOverflow: 'tooltip',
width: 120,
search: {
el: 'date-picker',
labelWidth: 90,
......@@ -381,6 +301,7 @@
{
field: 'inEffectDate',
title: '减免生效时间',
width: 120,
showOverflow: 'tooltip',
search: {
el: 'date-picker',
......@@ -388,6 +309,22 @@
props: { type: 'datetime', valueFormat: 'YYYY-MM-DD HH:mm:ss' },
},
},
{
field: 'code',
title: '操作',
width: 120,
slots: {
default: ({ row, rowIndex }) => {
return (
<>
<ElButton type="primary" onClick={() => changeStatus(row)}>
{row.flowStatus === 'pending' ? '查看并审核' : '查看'}
</ElButton>
</>
);
},
},
}
],
onCheckboxChange: onCheckboxChange,
onCheckboxAll: onCheckboxAll,
......
......@@ -40,7 +40,7 @@
esc-closable
>
<div class="w-full px-3 h-full overflow-auto flex-col flex mytable">
是否审批通过选中的数据?
是否审批通过{{currentRow ? `借款人${currentRow?.borrower?.name}, 还款金额${currentRow?.realRepayAmount}`: '选中'}}的数据?
</div>
<template #footer>
<el-button type="default" @click="showModal = false">取消</el-button>
......@@ -62,6 +62,7 @@
const { RepayType, FlowStatus } = useDict("RepayType", "FlowStatus");
const ProTableRef = ref();
const showModal = ref(false);
const currentRow = ref(null);
const activeName = ref('pending');
const tabs = ref([]);
const selectdList = ref([]);
......@@ -116,7 +117,12 @@
}, 500)
return obj;
};
const changeStatus = async () => {
const changeStatus = async (row) => {
if (row.id) {
currentRow.value = row
} else {
currentRow.value = null
}
showModal.value = true;
};
const submitForm = async (type) => {
......@@ -160,7 +166,7 @@
}
},
},
width: 80,
width: 180,
},
{
field: 'borrower.name',
......@@ -172,7 +178,7 @@
{
title: 'CPE',
showOverflow: 'tooltip',
width: 60,
width: 80,
slots: {
default: ({ row }) => {
if (row.reduce && row.reduce.reduceRecords) {
......@@ -220,6 +226,7 @@
{
field: 'realRepayAmount',
title: '实际还款金额',
width: 140,
showOverflow: 'tooltip',
search: { el: 'input', labelWidth: 90 },
},
......@@ -232,7 +239,7 @@
labelWidth: 90,
props: { type: 'datetime', valueFormat: 'YYYY-MM-DD HH:mm:ss' },
},
width: 115,
width: 140,
},
{
field: 'reduce.totalPayAmount',
......@@ -255,7 +262,7 @@
);
},
},
width: 80,
width: 100,
},
{
field: 'loanPlatform',
......@@ -284,6 +291,23 @@
},
},
},
{
field: 'code',
title: '操作',
width: 120,
visible: activeName.value === 'pending' ? true : false,
slots: {
default: ({ row, rowIndex }) => {
return (
<>
<ElButton type="primary" onClick={() => changeStatus(row)}>
审批
</ElButton>
</>
);
},
},
}
],
onCheckboxChange: onCheckboxChange,
onCheckboxAll: onCheckboxAll,
......
......@@ -29,6 +29,7 @@
<template #left_buttons>
<el-button
type="primary"
v-if="activeName === 'un_audit'"
@click="audit"
v-permission="'send_audio'"
:disabled="!selectdList || selectdList.length === 0"
......
......@@ -238,7 +238,7 @@
import dayjs from 'dayjs';
import { computed } from 'vue';
import { reactive, ref } from 'vue';
import { ElInputNumber, ElMessage } from 'element-plus';
import { ElInputNumber, ElMessage, ElTag } from 'element-plus';
import { Upload } from '@element-plus/icons-vue';
import { getAppEnvConfig } from '@/utils/env';
import { saveTrackRecord } from '@/api/property';
......@@ -397,9 +397,9 @@
const config = reactive({
minHeight: 200,
checkboxConfig: {
checkMethod: ({ row }) => {
return props.mergerCase !== 'Y';
},
// checkMethod: ({ row }) => {
// return props.mergerCase !== 'Y';
// },
},
columns: [
{ type: 'checkbox', width: 60, fixed: 'left' },
......@@ -408,6 +408,17 @@
title: '案件ID',
showOverflow: 'tooltip',
},
{
field: 'mergerCase',
title: '是否共案处理',
showOverflow: 'tooltip',
width: 100,
slots: {
default: ({ row }) => {
return <ElTag>{row.mergerCase == 'Y' ? '是' : '否'}</ElTag>;
},
},
},
{
field: 'product',
title: '产品',
......
......@@ -125,7 +125,7 @@
import { computed } from 'vue';
import { reactive, ref } from 'vue';
import { saveReduce } from '@/api/property';
import { ElMessage } from 'element-plus';
import { ElMessage, ElTag } from 'element-plus';
import { Download, ZoomIn } from '@element-plus/icons-vue';
import { onMounted } from 'vue';
import { watch } from 'vue';
......@@ -233,9 +233,9 @@
};
const config = reactive({
checkboxConfig: {
checkMethod: ({ row }) => {
return props.mergerCase !== 'Y';
},
// checkMethod: ({ row }) => {
// return props.mergerCase !== 'Y';
// },
},
minHeight: 200,
columns: [
......@@ -246,6 +246,17 @@
showOverflow: 'tooltip',
title: '案件ID',
},
{
field: 'mergerCase',
title: '是否共案处理',
showOverflow: 'tooltip',
width: 100,
slots: {
default: ({ row }) => {
return <ElTag>{row.loan.mergerCase == 'Y' ? '是' : '否'}</ElTag>;
},
},
},
{
field: 'loan.product',
width: 100,
......
......@@ -26,7 +26,7 @@
<td class="label">减免生效时间</td>
<td>{{ currentInfo.inEffectDate }}</td>
<td class="label">应还金额</td>
<td colspan="5">{{ currentInfo.totalPayAmount }}</td>
<td colspan="5">{{ Decimal(currentInfo.remainingAmount).sub(currentInfo.totalReduceAmount) }}</td>
</tr>
<!-- Add more rows as needed -->
</table>
......@@ -188,9 +188,10 @@
<script setup lang="jsx" name="allocationModal">
import { computed } from 'vue';
import dayjs from 'dayjs';
import Decimal from 'decimal.js';
import { reactive, ref } from 'vue';
import { getAppEnvConfig } from '@/utils/env';
import { ElMessage } from 'element-plus';
import { ElMessage,ElTag } from 'element-plus';
import { useDict } from '@/hooks/useDict';
const { PhoneResultStatus, RepayType, FlowStatus, FollowStatus, AuditStatus, CaseStatus } = useDict("PhoneResultStatus","RepayType", "FlowStatus", "FollowStatus","AuditStatus", "CaseStatus");
import { saveRepayRecord } from '@/api/property';
......@@ -216,7 +217,7 @@
const radio = ref(0);
const validaterealRepayAmount = (rule, value, callback) => {
if (
Number(value) !== Number(currentInfo.value.totalPayAmount) &&
Number(value) !== Number(Decimal(currentInfo.value.remainingAmount).sub(currentInfo.value.totalReduceAmount)) &&
currentType.value === '结清减免还款'
) {
callback(new Error('*金额必须等于应还金额'));
......
......@@ -178,7 +178,7 @@
import dayjs from 'dayjs';
import { computed } from 'vue';
import { reactive, ref } from 'vue';
import { ElInputNumber, ElMessage } from 'element-plus';
import { ElInputNumber, ElMessage, ElTag } from 'element-plus';
import { savebyStages } from '@/api/property';
import { getByIdPlatforms } from '@/api/platform';
import { getAppEnvConfig } from '@/utils/env';
......@@ -373,9 +373,9 @@
};
const config = reactive({
checkboxConfig: {
checkMethod: ({ row }) => {
return props.mergerCase !== 'Y';
},
// checkMethod: ({ row }) => {
// return props.mergerCase !== 'Y';
// },
},
minHeight: 200,
columns: [
......@@ -385,6 +385,17 @@
title: '案件ID',
showOverflow: 'tooltip',
},
{
field: 'mergerCase',
title: '是否共案处理',
showOverflow: 'tooltip',
width: 100,
slots: {
default: ({ row }) => {
return <ElTag>{row.mergerCase == 'Y' ? '是' : '否'}</ElTag>;
},
},
},
{
field: 'product',
title: '产品',
......
......@@ -378,7 +378,7 @@
},
},
enum: () => getTenantPage({ current: 1, size: 999999999, status: 'enable' }),
search: authButtonListGet.includes('allcation_for_tenant') ? { el: 'select', props: { filterable: true }, key: 'tenant', labelWidth: 105 } : null,
search: authButtonListGet.includes('allcation_for_tenant') ? { el: 'select', props: { filterable: true }, key: 'tenant', labelWidth: 90 } : null,
fieldNames: { label: 'name', value: 'id' },
title: '调解中心',
width: 100,
......
......@@ -211,18 +211,21 @@
{
field: 'code',
title: '导入批次',
width: 100,
showOverflow: 'tooltip',
search: { el: 'input', props: { clearable: true } },
},
{
field: 'maxStagesNum',
title: '分期最大期数',
width: 120,
showOverflow: 'tooltip',
search: { el: 'input', props: { clearable: true } },
},
{
field: 'minAmount',
title: '最低分期金额',
width: 120,
showOverflow: 'tooltip',
search: { el: 'input', props: { clearable: true } },
},
......@@ -230,7 +233,7 @@
field: 'mergerCase',
title: '是否共案处理',
showOverflow: 'tooltip',
width: 100,
width: 110,
slots: {
default: ({ row }) => {
return <ElTag>{row.mergerCase == 'Y' ? '是' : '否'}</ElTag>;
......@@ -241,6 +244,7 @@
field: 'code',
title: '资产类型',
enum: options,
width: 100,
showOverflow: 'tooltip',
search: { el: 'select', props: { filterable: true } },
fieldNames: { label: 'genderLabel', value: 'genderValue' },
......@@ -248,16 +252,19 @@
{
field: 'totalCaseNum',
showOverflow: 'tooltip',
width: 100,
title: '案件总数',
},
{
field: 'totalAmount',
showOverflow: 'tooltip',
width: 120,
title: '案件总金额',
},
{
field: 'totalBorrowerNum',
showOverflow: 'tooltip',
width: 100,
title: '客户总数',
},
{
......@@ -287,7 +294,7 @@
field: 'action',
title: '文件地址',
showOverflow: 'tooltip',
width: 200,
width: 80,
slots: {
default: ({ row }) => {
return (
......@@ -317,7 +324,7 @@
code: '',
maxStagesNum: '',
minAmount: '',
mergerCase: 'N',
mergerCase: 'Y',
discount: '',
});
const upload = reactive({
......
......@@ -29,6 +29,7 @@
<template #left_buttons>
<el-button
type="primary"
v-if="activeName === 'un_audit'"
@click="audit"
v-permission="'send_audio'"
:disabled="!selectdList || selectdList.length === 0"
......
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