批量发起签章

This commit is contained in:
liuxi 2025-01-03 15:31:02 +08:00
parent e7f5bc0e4f
commit 8082d63f3f
6 changed files with 128 additions and 53 deletions

View File

@ -64,20 +64,30 @@
<el-table-column prop="pkgName" label="案件包名称" show-overflow-tooltip ></el-table-column> <el-table-column prop="pkgName" label="案件包名称" show-overflow-tooltip ></el-table-column>
<el-table-column prop="caseNo" label="案件编号" width="280" show-overflow-tooltip ></el-table-column> <el-table-column prop="caseNo" label="案件编号" width="280" show-overflow-tooltip ></el-table-column>
<el-table-column prop="documentType" label="文书类型" show-overflow-tooltip ></el-table-column> <el-table-column prop="documentType" label="文书类型" show-overflow-tooltip ></el-table-column>
<el-table-column prop="status" label="签章状态" show-overflow-tooltip ></el-table-column> <el-table-column prop="status" label="签章状态" show-overflow-tooltip>
<el-table-column prop="failureReason" label="失败原因" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="操作人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="planStartTime" label="操作时间" show-overflow-tooltip >
<template slot-scope="scope"> <template slot-scope="scope">
<span >{{ scope.row.planStartTime | formaDate("yyyy-MM-dd hh:mm:ss") }}</span> <span>{{ scope.row.status.desc }}</span>
</template>
</el-table-column>
<el-table-column prop="failureReason" label="失败原因" show-overflow-tooltip ></el-table-column>
<el-table-column prop="status" label="是否自动送达" show-overflow-tooltip>
<template slot-scope="scope">
<span>{{ scope.row.autoServed === 1 ? '是':'否' }}</span>
</template>
</el-table-column>
<el-table-column prop="createByName" label="操作人" show-overflow-tooltip ></el-table-column>
<el-table-column label="操作时间" show-overflow-tooltip >
<template slot-scope="scope">
<span >{{ scope.row.createAt | formaDate("yyyy-MM-dd hh:mm:ss") }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="180"> <el-table-column label="操作" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="flex-row align-items-center"> <div class="flex-row align-items-center">
<el-button size="mini" @click="handleDelete(scope)">重试</el-button> <el-button size="mini" v-if="scope.row.status.code !== 4 && scope.row.status.code !== 2" @click="handleAgain(scope.row)">重试</el-button>
<el-button size="mini" @click="handleBackCase(scope)">取消</el-button> <el-button size="mini" v-if="scope.row.status.code !== 4 && scope.row.status.code !== 2" @click="handleCancel(scope.row)">取消</el-button>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@ -102,6 +112,7 @@
</template> </template>
<script> <script>
import api from "@/services/eventTracingApi"; import api from "@/services/eventTracingApi";
import caseManagementapi from "@/services/caseManagement";
export default { export default {
components: { components: {
@ -167,9 +178,33 @@ import api from "@/services/eventTracingApi";
} }
}) })
}, },
handleDetail(scope){ handleAgain(row) {
this.DialogDetail = scope.row this.$confirm("确定重试?", "提示", {
} confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
if(!this.$clickThrottle()) { return }//
caseManagementapi.traceSeal_retry({id: row.id}).then(res => {
this.getList(1);
this.$message.success("成功");
})
}).catch(() => {});
},
handleCancel(row) {
this.$confirm("确定取消?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
if(!this.$clickThrottle()) { return }//
caseManagementapi.traceSeal_cancel({id: row.id}).then(res => {
this.getList(1);
this.$message.success("成功");
})
}).catch(() => {});
},
} }
}; };
</script> </script>

View File

@ -81,8 +81,8 @@
<el-table-column label="操作" width="150"> <el-table-column label="操作" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="flex-row align-items-center"> <div class="flex-row align-items-center">
<el-button size="mini" @click="handleRetry(scope.row)" v-if="scope.row.status.code !== 4">重试</el-button> <el-button size="mini" @click="handleRetry(scope.row)" v-if="scope.row.status.code !== 4 && scope.row.status.code !== 2">重试</el-button>
<el-button size="mini" @click="handleCancel(scope.row)" v-if="scope.row.status.code !== 4">取消</el-button> <el-button size="mini" @click="handleCancel(scope.row)" v-if="scope.row.status.code !== 4 && scope.row.status.code !== 2">取消</el-button>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>

View File

@ -13,12 +13,12 @@
<div class="flex-row-center align-items-center height-40 mb-24"> <div class="flex-row-center align-items-center height-40 mb-24">
<span class="tabs__search-criteria-title flex-shrink-0 pr-16">短信模板</span> <span class="tabs__search-criteria-title flex-shrink-0 pr-16">短信模板</span>
<el-select v-model="ObjectInfo.scene" <el-select v-model="ObjectInfo.scene"
placeholder="请选择还款方式" placeholder="请选择短信模板"
class="width100" @change="smsChange"> class="width100" @change="smsChange">
<el-option <el-option
v-for="item in smsOptions" v-for="item in smsOptions"
:key="item.template" :key="item.template"
:label="item.template" :label="item.name"
:value="item.template"> :value="item.template">
</el-option> </el-option>
</el-select> </el-select>

View File

@ -16,9 +16,9 @@
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<div class="mb-24 officelist"> <div class="mb-24 officelist">
<el-radio-group v-model="ObjectInfo.delivery"> <el-radio-group v-model="ObjectInfo.autoServed">
<el-radio label="1" border>自动送达</el-radio> <el-radio :label="1" border>自动送达</el-radio>
<el-radio label="2" border>不自动送达可单独发起送达</el-radio> <el-radio :label="0" border>不自动送达可单独发起送达</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
@ -52,12 +52,9 @@ import api from "@/services/caseManagement";
}, },
data() { data() {
return { return {
officeOptions:[{label:'调解告知书',value:'1'},{label:'调解申请书',value:'2'},
{label:'送达地址确认书',value:'3'},{label:'调解笔录',value:'4'},{label:'调解协议',value:'5'}],
ObjectInfo:{ ObjectInfo:{
methodIds:['调解告知书','调解申请书','送达地址确认书'], ids:this.eventTraDialog.caseids,
users:'', autoServed:0
content:''
}, },
tableData:[], tableData:[],
total:0, total:0,
@ -68,12 +65,12 @@ import api from "@/services/caseManagement";
}, },
methods: { methods: {
smsChange(){ handleSubmit(){
let jsonData = this.smsOptions.find(item=>{ api.traceSeal_launch(this.ObjectInfo).then((res) => {
return this.ObjectInfo.methodId == item.value this.$parent.getCaseInfoList(1)
}) this.handleClose()
this.ObjectInfo.users = jsonData.users this.$message.success("发起批量签章成功");
this.ObjectInfo.content = jsonData.content });
}, },
handleClose() { handleClose() {

View File

@ -56,29 +56,26 @@
<div class="case-detail-des flex-column mb-16 p-16 border-radius-8" v-for="(proofitem,index) in ProofList" :key="index"> <div class="case-detail-des flex-column mb-16 p-16 border-radius-8" v-for="(proofitem,index) in ProofList" :key="index">
<div class="flex-column justify-content-between"> <div class="flex-column justify-content-between">
<el-form v-if="updateRow != index" label-width="130px"> <el-form v-if="updateRow != index" label-width="130px">
<div class="flex-row justify-content-between mb-8"> <div class="flex-column justify-content-between m-8">
<div class="pt-8 flex-column"> <div class="flex-column">
<span class="color-86909C">上传者{{ proofitem.uploaderName }}<a></a></span> <div class="flex-row certImagecont">
<span class="color-86909C mt-8">上传时间<a>{{ proofitem.createAt }}</a></span> <span class="color-86909C certImage">
<span class="color-86909C mt-8">凭证金额<a>{{ proofitem.amount }}</a></span> <el-image
<span class="color-86909C mt-8">还款日期<a>{{ proofitem.paybackTime | formaDate('yyyy-MM-dd hh:mm:ss') }}</a></span> :src="`/mediate/minio/preview/${proofitem.proofUrl}`"
<span class="color-86909C mt-8">备注说明<a>{{ proofitem.remark }}</a></span> :preview-src-list="[`/mediate/minio/preview/${proofitem.proofUrl}`]">
<span class="color-86909C flex-row mt-8">还款凭证 </el-image>
<a> </span>
<upload-file :file-list="[{url: proofitem.proofUrl}]" :max-count="1" <div class="flex-column ml-16">
:readOnly="true" <span class="color-86909C">上传者{{ proofitem.uploaderName }}<a></a></span>
:show-file-name="true" <span class="color-86909C mt-8">上传时间<a>{{ proofitem.createAt }}</a></span>
uploadName="支持图片大小不超过10M" </div>
accept=".jpg,.png,.jpeg" </div>
:span="6" <span class="color-86909C mt-8 pt12-pb10">凭证金额<a>{{ proofitem.amount }}</a></span>
:fileSize="10" <span class="color-86909C mt-8 pt12-pb10 bgColor-F7F8FA">还款日期<a>{{ proofitem.paybackTime | formaDate('yyyy-MM-dd hh:mm:ss') }}</a></span>
@handleUploadFile="handleUploadFile"> <span class="color-86909C mt-8 pt12-pb10">备注说明<a>{{ proofitem.remark }}</a></span>
</upload-file>
</a>
</span>
</div> </div>
<div> <div class="mt-8">
<el-popover v-if="proofitem.status.code == 1" <el-popover v-if="proofitem.status.code == 1"
placement="left" placement="left"
width="400" width="400"
title="凭证效验" title="凭证效验"
@ -116,10 +113,10 @@
<el-button type="primary" @click="handleSubmitEffect(proofitem,('ruleFormEffect'+index))" size="small">保存</el-button> <el-button type="primary" @click="handleSubmitEffect(proofitem,('ruleFormEffect'+index))" size="small">保存</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-button type="primary" size="small" slot="reference">效验</el-button> <span slot="reference" class="color-86909C"><i class="el-icon-medal"></i>&nbsp;效验</span>
</el-popover> </el-popover>
<el-button v-if="proofitem.status.code != 1" size="small" @click="updateClick(index,proofitem)">编辑</el-button> <span class="color-86909C ml-16" v-if="proofitem.status.code != 1" @click="updateClick(index,proofitem)"><i class="el-icon-edit"></i>&nbsp;编辑</span>
<el-button v-if="proofitem.status.code != 1" size="small" @click="DeleteClick(proofitem)">删除</el-button> <span class="color-86909C ml-16" v-if="proofitem.status.code != 1" @click="DeleteClick(proofitem)"><i class="el-icon-delete"></i>&nbsp;删除</span>
</div> </div>
</div> </div>
</el-form> </el-form>
@ -339,6 +336,39 @@ import api from "@/services/caseManagement";
border:solid 1px #E5E6EB; border:solid 1px #E5E6EB;
.el-form-item{margin-bottom: 13px;} .el-form-item{margin-bottom: 13px;}
.inputpaddingtop2{padding-top:3px} .inputpaddingtop2{padding-top:3px}
.certImagecont{
padding: 10px;
border-radius: 8px;
background-color: #F2F3F5;
}
.bgColor-F7F8FA{
background-color: #F7F8FA;
}
.pt12-pb10{
padding: 12px 10px;
}
// span:nth-child(even) {
// background-color: #F7F8FA;
// }
.certImage{
width: 60px; height: 60px; text-align: center;line-height: 60px;
.el-image{
max-width: 100%;
max-height: 100%;
}
}
}
}
</style>
<style lang="scss">
.case-repayment-certificate{
.case-detail-des{
.el-image__inner{
max-width: 60px;
max-height: 60px;
}
} }
} }
</style> </style>

View File

@ -190,6 +190,19 @@ const caseManagementApi = {
return service.service.post(`${apiAdmin}cases/caseInfo/updateCaseStatus`, data) return service.service.post(`${apiAdmin}cases/caseInfo/updateCaseStatus`, data)
}, },
// 批量发起签章
traceSeal_launch: data => {
return service.service.post(`${apiAdmin}api/trace/traceSeal/launch`, data)
},
// 批量重试
traceSeal_retry: data => {
return service.service.post(`${apiAdmin}api/trace/traceSeal/retry`, data)
},
// 批量取消
traceSeal_cancel: data => {
return service.service.post(`${apiAdmin}api/trace/traceSeal/cancel`, data)
},
//========================end::案件管理====================================== //========================end::案件管理======================================
} }
export default caseManagementApi; export default caseManagementApi;