Commit 6a1b186b authored by 沈翠玲's avatar 沈翠玲

案件分派

parent ea98ead8
...@@ -118,7 +118,8 @@ ...@@ -118,7 +118,8 @@
props.showPagination, props.showPagination,
props.dataCallback, props.dataCallback,
props.requestError, props.requestError,
props.paramCallback props.paramCallback,
props.config
); );
// 显示搜索 // 显示搜索
...@@ -183,9 +184,6 @@ ...@@ -183,9 +184,6 @@
const _search = () => { const _search = () => {
search(); search();
if (props.config.onCheckboxAll) {
props.config.onCheckboxAll({checked: false, records: []})
}
}; };
const _reset = () => { const _reset = () => {
......
...@@ -6,7 +6,8 @@ export function useProTable( ...@@ -6,7 +6,8 @@ export function useProTable(
isPageable, isPageable,
dataCallBack, dataCallBack,
requestError, requestError,
paramCallback paramCallback,
config
) { ) {
const state = reactive({ const state = reactive({
loading: false, loading: false,
...@@ -121,6 +122,9 @@ export function useProTable( ...@@ -121,6 +122,9 @@ export function useProTable(
* */ * */
const search = () => { const search = () => {
state.pageable.current = 1; state.pageable.current = 1;
if (config.onCheckboxAll) {
config.onCheckboxAll({checked: false, records: []})
}
updatedTotalParam(); updatedTotalParam();
getTableList(); getTableList();
}; };
......
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
<div style="margin-top: 10px; margin-bottom: 10px"> <div style="margin-top: 10px; margin-bottom: 10px">
<el-radio-group v-model="radio" @change="changeRadio"> <el-radio-group v-model="radio" @change="changeRadio">
<el-radio :value="0" v-permission="'allcation_for_tenant'">分派到调解中心</el-radio> <el-radio :value="0" v-permission="'allcation_for_tenant'">分派到调解中心</el-radio>
<el-radio :value="1">分派到CPE</el-radio> <!-- <el-radio :value="1">分派到CPE</el-radio> -->
</el-radio-group> </el-radio-group>
</div> </div>
<template v-if="radio === 0 || (radio === 1 && !step)"> <template v-if="radio === 0 || (radio === 1 && !step)">
...@@ -276,7 +276,7 @@ ...@@ -276,7 +276,7 @@
const chooseIdea = (type) => { const chooseIdea = (type) => {
editRowIndex.value = -1; editRowIndex.value = -1;
currentAllBtn.value = type; currentAllBtn.value = type;
const param = { let param = {
type: currentAllBtn.value, type: currentAllBtn.value,
tenantId: currentTenant.value, tenantId: currentTenant.value,
}; };
...@@ -286,12 +286,7 @@ ...@@ -286,12 +286,7 @@
if (lonsArr.value && lonsArr.value.length) { if (lonsArr.value && lonsArr.value.length) {
param['loanIds'] = lonsArr.value.map((v) => v.id); param['loanIds'] = lonsArr.value.map((v) => v.id);
} else { } else {
param['borrowerName'] = pageParams.value.borrowerName; param = { ...param, ...pageParams.value };
param['batchCode'] = pageParams.value.batchCode;
param['borrowerIdCard'] = pageParams.value.idCard;
param['borrowerPhone'] = pageParams.value.borrowerPhone;
param['commissionAmount'] = pageParams.value.commissionAmount;
param['remainingAmount'] = pageParams.value.remainingAmount;
} }
distributeCpe(param).then((res) => { distributeCpe(param).then((res) => {
if (res.success) { if (res.success) {
...@@ -319,12 +314,7 @@ ...@@ -319,12 +314,7 @@
getTree(); getTree();
step.value = 0; step.value = 0;
if (!authButtonListGet.includes('allcation_for_tenant')) { radio.value = 0;
radio.value = 1;
} else {
radio.value = 0;
}
let p = {} let p = {}
if (lonsArr.value && lonsArr.value.length) { if (lonsArr.value && lonsArr.value.length) {
p['loanIds'] = lonsArr.value.map((v) => v.id); p['loanIds'] = lonsArr.value.map((v) => v.id);
...@@ -413,16 +403,11 @@ ...@@ -413,16 +403,11 @@
} }
} else if (radio.value === 0) { } else if (radio.value === 0) {
// chooseIdea('BORROWER'); // chooseIdea('BORROWER');
const param = {}; let param = {};
if (lonsArr.value && lonsArr.value.length) { if (lonsArr.value && lonsArr.value.length) {
param['loanIds'] = lonsArr.value.map((v) => v.id); param['loanIds'] = lonsArr.value.map((v) => v.id);
} else { } else {
param['borrowerName'] = pageParams.value.borrowerName; param = { ...pageParams.value };
param['batchCode'] = pageParams.value.batchCode;
param['borrowerIdCard'] = pageParams.value.idCard;
param['borrowerPhone'] = pageParams.value.borrowerPhone;
param['commissionAmount'] = pageParams.value.commissionAmount;
param['remainingAmount'] = pageParams.value.remainingAmount;
param['tenantId'] = null; param['tenantId'] = null;
} }
distributeLoan(currentTenant.value, param).then((res) => { distributeLoan(currentTenant.value, param).then((res) => {
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<img src="@/assets/images/caselist.svg" /> <img src="@/assets/images/caselist.svg" />
</div> </div>
<div class="title_warp"> <div class="title_warp">
<div class="items">未分派案件数</div> <div class="items">派案件数</div>
<div class="item items1">{{statisis.caseNum}}</div> <div class="item items1">{{statisis.caseNum}}</div>
</div> </div>
</div> </div>
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
<img src="@/assets/images/userlist.svg" /> <img src="@/assets/images/userlist.svg" />
</div> </div>
<div class="title_warp"> <div class="title_warp">
<div class="items">未分派CPE</div> <div class="items">在派案人</div>
<div class="item items1">{{statisis.cpeNum}}</div> <div class="item items1">{{statisis.borrowerNum}}</div>
</div> </div>
</div> </div>
<div class="item_warp"> <div class="item_warp">
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<img src="@/assets/images/money.svg" /> <img src="@/assets/images/money.svg" />
</div> </div>
<div class="title_warp"> <div class="title_warp">
<div class="items">未分派总金额数</div> <div class="items">在派金额</div>
<div class="item items1">{{statisis.amount}}</div> <div class="item items1">{{statisis.amount}}</div>
</div> </div>
</div> </div>
...@@ -89,6 +89,7 @@ ...@@ -89,6 +89,7 @@
const router = useRouter(); const router = useRouter();
const onCheckboxChange = (row) => { const onCheckboxChange = (row) => {
selectdList.value = row.records; selectdList.value = row.records;
dataValue.value = selectdList.value.length > 0 ? '对选中项操作' : '对查询结果操作'
}; };
const statisis = ref({}); const statisis = ref({});
const getStatisis = (params) => { const getStatisis = (params) => {
...@@ -160,6 +161,7 @@ ...@@ -160,6 +161,7 @@
} else { } else {
selectdList.value = []; selectdList.value = [];
} }
dataValue.value = selectdList.value.length > 0 ? '对选中项操作' : '对查询结果操作'
}; };
const config = reactive({ const config = reactive({
columns: [ columns: [
...@@ -264,7 +266,6 @@ ...@@ -264,7 +266,6 @@
showOverflow: 'tooltip', showOverflow: 'tooltip',
width: 80, width: 80,
enum: DistributeStatus, enum: DistributeStatus,
search: { el: 'select', props: { filterable: true }, labelWidth: 105 },
fieldNames: { label: 'label', value: 'value' }, fieldNames: { label: 'label', value: 'value' },
slots: { slots: {
default: ({ row }) => { default: ({ row }) => {
......
This diff is collapsed.
...@@ -66,13 +66,13 @@ ...@@ -66,13 +66,13 @@
<vxe-modal <vxe-modal
resize resize
v-model="showModal" v-model="showModal"
title="提示" title="案件收回"
height="342" height="342"
width="560" width="560"
show-footer show-footer
esc-closable esc-closable
> >
<div class="top"> <div class="top px-3">
<div class="number-box"> <div class="number-box">
<div class="number-left"> <div class="number-left">
<div class="icon-wrapper"> <div class="icon-wrapper">
...@@ -107,15 +107,18 @@ ...@@ -107,15 +107,18 @@
</div> </div>
</div> </div>
</div> </div>
<div class="w-full px-3 mt-3 overflow-auto flex-col flex mytable"> <div class="w-full mt-6 px-3 overflow-hidden flex mytable items-center">
⚠️回收处理后可重新分派<br /> <div class="font-bold pr-6">留案案件:</div>
回收:只回收未留案的案件<br /> <el-radio-group v-model="form.option">
强制回收:所有案件都会回收,留案案件会被强制回收<br /> <!-- works when >=2.6.0, recommended ✔️ not work when <2.6.0 ❌ -->
<el-radio value="withdraw">回收</el-radio>
<!-- works when <2.6.0, deprecated act as value when >=3.0.0 -->
<el-radio label="fullWithdraw">强制回收</el-radio>
</el-radio-group>
</div> </div>
<template #footer> <template #footer>
<el-button type="default" @click="showModal = false">取消</el-button> <el-button type="default" @click="showModal = false">取消</el-button>
<el-button type="primary" @click="submitForm('withdraw')">回收</el-button> <el-button type="primary" @click="submitForm1">确认</el-button>
<el-button type="danger" @click="submitForm('fullWithdraw')">强制回收</el-button>
</template> </template>
</vxe-modal> </vxe-modal>
</div> </div>
...@@ -141,6 +144,9 @@ ...@@ -141,6 +144,9 @@
const curParam = ref({}); const curParam = ref({});
const showModal = ref(false); const showModal = ref(false);
const dataValue = ref('对查询结果操作'); const dataValue = ref('对查询结果操作');
const form = reactive({
option: 'withdraw'
});
const dataOptions = [ const dataOptions = [
{ {
label: '对查询结果操作', label: '对查询结果操作',
...@@ -153,6 +159,7 @@ ...@@ -153,6 +159,7 @@
]; ];
const onCheckboxChange = (row) => { const onCheckboxChange = (row) => {
selectdList.value = row.records; selectdList.value = row.records;
dataValue.value = selectdList.value.length > 0 ? '对选中项操作' : '对查询结果操作'
}; };
const statisis = ref({}); const statisis = ref({});
const statisis1 = ref({}); const statisis1 = ref({});
...@@ -190,6 +197,7 @@ ...@@ -190,6 +197,7 @@
p = curParam.value; p = curParam.value;
} }
getStatisis1(p); getStatisis1(p);
form.option = 'withdraw'
showModal.value = true; showModal.value = true;
}; };
const submitForm = async (type) => { const submitForm = async (type) => {
...@@ -220,6 +228,9 @@ ...@@ -220,6 +228,9 @@
query(); query();
showModal.value = false; showModal.value = false;
}; };
const submitForm1 = () => {
submitForm(form.option)
}
const paramCallback = (param) => { const paramCallback = (param) => {
const obj = JSON.parse(JSON.stringify(param)); const obj = JSON.parse(JSON.stringify(param));
obj['tenant'] = 0 obj['tenant'] = 0
...@@ -249,6 +260,7 @@ ...@@ -249,6 +260,7 @@
} else { } else {
selectdList.value = []; selectdList.value = [];
} }
dataValue.value = selectdList.value.length > 0 ? '对选中项操作' : '对查询结果操作'
}; };
const onCellClick = (row) => { const onCellClick = (row) => {
router.push({ router.push({
......
...@@ -92,6 +92,7 @@ ...@@ -92,6 +92,7 @@
const RefImage = ref(false); const RefImage = ref(false);
const onCheckboxChange = (row) => { const onCheckboxChange = (row) => {
selectdList.value = row.records; selectdList.value = row.records;
dataValue.value = selectdList.value.length > 0 ? '对选中项操作' : '对查询结果操作'
}; };
// watch( // watch(
// () => AuditStatus.value, // () => AuditStatus.value,
...@@ -176,6 +177,7 @@ ...@@ -176,6 +177,7 @@
} else { } else {
selectdList.value = []; selectdList.value = [];
} }
dataValue.value = selectdList.value.length > 0 ? '对选中项操作' : '对查询结果操作'
}; };
const config = computed(() => { const config = computed(() => {
return { return {
......
...@@ -66,13 +66,13 @@ ...@@ -66,13 +66,13 @@
<vxe-modal <vxe-modal
resize resize
v-model="showModal" v-model="showModal"
title="提示" title="案件撤案"
height="342" height="342"
width="560" width="560"
show-footer show-footer
esc-closable esc-closable
> >
<div class="top"> <div class="top px-3">
<div class="number-box"> <div class="number-box">
<div class="number-left"> <div class="number-left">
<div class="icon-wrapper"> <div class="icon-wrapper">
...@@ -107,15 +107,18 @@ ...@@ -107,15 +107,18 @@
</div> </div>
</div> </div>
</div> </div>
<div class="w-full px-3 mt-3 overflow-auto flex-col flex mytable"> <div class="w-full mt-6 px-3 overflow-hidden flex mytable items-center">
⚠️撤案处理后不可重新分派<br /> <div class="font-bold pr-6">撤案案件:</div>
撤案:只撤案未留案的案件<br /> <el-radio-group v-model="form.option">
强制撤案:所有案件都会撤案,留案案件会被强制撤案<br /> <!-- works when >=2.6.0, recommended ✔️ not work when <2.6.0 ❌ -->
<el-radio value="withdraw">撤案</el-radio>
<!-- works when <2.6.0, deprecated act as value when >=3.0.0 -->
<el-radio label="fullWithdraw">强制撤案</el-radio>
</el-radio-group>
</div> </div>
<template #footer> <template #footer>
<el-button type="default" @click="showModal = false">取消</el-button> <el-button type="default" @click="showModal = false">取消</el-button>
<el-button type="primary" @click="submitForm('withdraw')">撤案</el-button> <el-button type="primary" @click="submitForm1">确认</el-button>
<el-button type="danger" @click="submitForm('fullWithdraw')">强制撤案</el-button>
</template> </template>
</vxe-modal> </vxe-modal>
</div> </div>
...@@ -141,6 +144,9 @@ ...@@ -141,6 +144,9 @@
const curParam = ref({}); const curParam = ref({});
const showModal = ref(false); const showModal = ref(false);
const dataValue = ref('对查询结果操作'); const dataValue = ref('对查询结果操作');
const form = reactive({
option: 'withdraw'
});
const dataOptions = [ const dataOptions = [
{ {
label: '对查询结果操作', label: '对查询结果操作',
...@@ -153,6 +159,7 @@ ...@@ -153,6 +159,7 @@
]; ];
const onCheckboxChange = (row) => { const onCheckboxChange = (row) => {
selectdList.value = row.records; selectdList.value = row.records;
dataValue.value = selectdList.value.length > 0 ? '对选中项操作' : '对查询结果操作'
}; };
const statisis = ref({}); const statisis = ref({});
const statisis1 = ref({}); const statisis1 = ref({});
...@@ -241,6 +248,7 @@ ...@@ -241,6 +248,7 @@
p = curParam.value; p = curParam.value;
} }
getStatisis1(p); getStatisis1(p);
form.option = 'withdraw'
showModal.value = true; showModal.value = true;
}; };
const onCheckboxAll = (flag) => { const onCheckboxAll = (flag) => {
...@@ -249,6 +257,7 @@ ...@@ -249,6 +257,7 @@
} else { } else {
selectdList.value = []; selectdList.value = [];
} }
dataValue.value = selectdList.value.length > 0 ? '对选中项操作' : '对查询结果操作'
}; };
const onCellClick = (row) => { const onCellClick = (row) => {
router.push({ router.push({
...@@ -629,6 +638,9 @@ ...@@ -629,6 +638,9 @@
onCheckboxChange: onCheckboxChange, onCheckboxChange: onCheckboxChange,
onCheckboxAll: onCheckboxAll, onCheckboxAll: onCheckboxAll,
}); });
const submitForm1 = () => {
submitForm(form.option)
}
const query = () => caseLRef.value?.search(); const query = () => caseLRef.value?.search();
......
...@@ -87,13 +87,17 @@ ...@@ -87,13 +87,17 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11"> <el-col :span="11">
<el-form-item class="w-full" label="分期最大期数:" prop="maxStagesNum" > <el-form-item class="w-full" label="是否共案处理:" prop="mergerCase">
<el-input v-model.number="form.maxStagesNum" placeholder="请输入" style="width: 100%" /> <el-radio-group v-model="form.mergerCase">
<el-radio value="Y"></el-radio>
<el-radio value="N"></el-radio>
</el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="13"> <el-col :span="13">
<el-form-item class="w-full" label="最低分期金额:" prop="minAmount"> <el-form-item class="w-full" label="最低分期金额:" prop="minAmount">
<el-input v-model="form.minAmount" placeholder="请输入" style="width: 100%" /> <el-input v-model="form.minAmount" type="number" placeholder="请输入" style="width: 100%" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11"> <el-col :span="11">
...@@ -102,11 +106,8 @@ ...@@ -102,11 +106,8 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="13"> <el-col :span="13">
<el-form-item class="w-full" label="是否共案处理:" prop="mergerCase"> <el-form-item class="w-full" label="分期最大期数:" prop="maxStagesNum" >
<el-radio-group v-model="form.mergerCase"> <el-input v-model.number="form.maxStagesNum" placeholder="请输入" style="width: 100%" />
<el-radio value="Y"></el-radio>
<el-radio value="N"></el-radio>
</el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -164,9 +165,9 @@ ...@@ -164,9 +165,9 @@
} }
} }
} }
const checkminAmount = (rule, value, callback) => { const checkmaxStagesNum = (rule, value, callback) => {
if (isNaN(Number(value))) { if (isNaN(Number(value)) || Number(value) % 1 !== 0) {
callback(new Error('请输入数字值')); callback(new Error('请输入整数值'));
} else { } else {
callback(); callback();
} }
...@@ -175,9 +176,12 @@ ...@@ -175,9 +176,12 @@
discount: [ discount: [
{ validator: checkDiscount, trigger: 'blur' }, { validator: checkDiscount, trigger: 'blur' },
], ],
minAmount: [ // minAmount: [
{ validator: checkminAmount, trigger: 'blur' }, // { validator: checkminAmount, trigger: 'blur' },
] // ],
maxStagesNum: [
{ validator: checkmaxStagesNum, trigger: 'blur' },
],
}); });
const downloadfile = inject('download'); const downloadfile = inject('download');
const formRef = ref(); const formRef = ref();
......
...@@ -104,6 +104,7 @@ ...@@ -104,6 +104,7 @@
}; };
const onCheckboxChange = (row) => { const onCheckboxChange = (row) => {
selectdList.value = row.records; selectdList.value = row.records;
dataValue.value = selectdList.value.length > 0 ? '对选中项操作' : '对查询结果操作'
}; };
const onCheckboxAll = (flag) => { const onCheckboxAll = (flag) => {
if (flag.checked) { if (flag.checked) {
...@@ -111,6 +112,7 @@ ...@@ -111,6 +112,7 @@
} else { } else {
selectdList.value = []; selectdList.value = [];
} }
dataValue.value = selectdList.value.length > 0 ? '对选中项操作' : '对查询结果操作'
}; };
const paramCallback = (param) => { const paramCallback = (param) => {
console.log('objobj', param) console.log('objobj', param)
......
...@@ -107,6 +107,7 @@ ...@@ -107,6 +107,7 @@
}; };
const onCheckboxChange = (row) => { const onCheckboxChange = (row) => {
selectdList.value = row.records; selectdList.value = row.records;
dataValue.value = selectdList.value.length > 0 ? '对选中项操作' : '对查询结果操作'
}; };
const onCheckboxAll = (flag) => { const onCheckboxAll = (flag) => {
if (flag.checked) { if (flag.checked) {
...@@ -114,6 +115,7 @@ ...@@ -114,6 +115,7 @@
} else { } else {
selectdList.value = []; selectdList.value = [];
} }
dataValue.value = selectdList.value.length > 0 ? '对选中项操作' : '对查询结果操作'
}; };
const onCellClick = (row) => { const onCellClick = (row) => {
router.push({ router.push({
......
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