批量发起签章

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="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="status" label="签章状态" show-overflow-tooltip ></el-table-column>
<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 >
<el-table-column prop="status" label="签章状态" show-overflow-tooltip>
<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>
</el-table-column>
<el-table-column label="操作" width="180">
<template slot-scope="scope">
<div class="flex-row align-items-center">
<el-button size="mini" @click="handleDelete(scope)">重试</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="handleAgain(scope.row)">重试</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>
</template>
</el-table-column>
@ -102,6 +112,7 @@
</template>
<script>
import api from "@/services/eventTracingApi";
import caseManagementapi from "@/services/caseManagement";
export default {
components: {
@ -167,9 +178,33 @@ import api from "@/services/eventTracingApi";
}
})
},
handleDetail(scope){
this.DialogDetail = scope.row
}
handleAgain(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>

View File

@ -81,8 +81,8 @@
<el-table-column label="操作" width="150">
<template slot-scope="scope">
<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="handleCancel(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 && scope.row.status.code !== 2">取消</el-button>
</div>
</template>
</el-table-column>

View File

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

View File

@ -16,9 +16,9 @@
</el-col>
<el-col :span="24">
<div class="mb-24 officelist">
<el-radio-group v-model="ObjectInfo.delivery">
<el-radio label="1" border>自动送达</el-radio>
<el-radio label="2" border>不自动送达可单独发起送达</el-radio>
<el-radio-group v-model="ObjectInfo.autoServed">
<el-radio :label="1" border>自动送达</el-radio>
<el-radio :label="0" border>不自动送达可单独发起送达</el-radio>
</el-radio-group>
</div>
@ -52,12 +52,9 @@ import api from "@/services/caseManagement";
},
data() {
return {
officeOptions:[{label:'调解告知书',value:'1'},{label:'调解申请书',value:'2'},
{label:'送达地址确认书',value:'3'},{label:'调解笔录',value:'4'},{label:'调解协议',value:'5'}],
ObjectInfo:{
methodIds:['调解告知书','调解申请书','送达地址确认书'],
users:'',
content:''
ids:this.eventTraDialog.caseids,
autoServed:0
},
tableData:[],
total:0,
@ -68,12 +65,12 @@ import api from "@/services/caseManagement";
},
methods: {
smsChange(){
let jsonData = this.smsOptions.find(item=>{
return this.ObjectInfo.methodId == item.value
})
this.ObjectInfo.users = jsonData.users
this.ObjectInfo.content = jsonData.content
handleSubmit(){
api.traceSeal_launch(this.ObjectInfo).then((res) => {
this.$parent.getCaseInfoList(1)
this.handleClose()
this.$message.success("发起批量签章成功");
});
},
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="flex-column justify-content-between">
<el-form v-if="updateRow != index" label-width="130px">
<div class="flex-row justify-content-between mb-8">
<div class="pt-8 flex-column">
<span class="color-86909C">上传者{{ proofitem.uploaderName }}<a></a></span>
<span class="color-86909C mt-8">上传时间<a>{{ proofitem.createAt }}</a></span>
<span class="color-86909C mt-8">凭证金额<a>{{ proofitem.amount }}</a></span>
<span class="color-86909C mt-8">还款日期<a>{{ proofitem.paybackTime | formaDate('yyyy-MM-dd hh:mm:ss') }}</a></span>
<span class="color-86909C mt-8">备注说明<a>{{ proofitem.remark }}</a></span>
<span class="color-86909C flex-row mt-8">还款凭证
<a>
<upload-file :file-list="[{url: proofitem.proofUrl}]" :max-count="1"
:readOnly="true"
:show-file-name="true"
uploadName="支持图片大小不超过10M"
accept=".jpg,.png,.jpeg"
:span="6"
:fileSize="10"
@handleUploadFile="handleUploadFile">
</upload-file>
</a>
</span>
<div class="flex-column justify-content-between m-8">
<div class="flex-column">
<div class="flex-row certImagecont">
<span class="color-86909C certImage">
<el-image
:src="`/mediate/minio/preview/${proofitem.proofUrl}`"
:preview-src-list="[`/mediate/minio/preview/${proofitem.proofUrl}`]">
</el-image>
</span>
<div class="flex-column ml-16">
<span class="color-86909C">上传者{{ proofitem.uploaderName }}<a></a></span>
<span class="color-86909C mt-8">上传时间<a>{{ proofitem.createAt }}</a></span>
</div>
</div>
<span class="color-86909C mt-8 pt12-pb10">凭证金额<a>{{ proofitem.amount }}</a></span>
<span class="color-86909C mt-8 pt12-pb10 bgColor-F7F8FA">还款日期<a>{{ proofitem.paybackTime | formaDate('yyyy-MM-dd hh:mm:ss') }}</a></span>
<span class="color-86909C mt-8 pt12-pb10">备注说明<a>{{ proofitem.remark }}</a></span>
</div>
<div>
<el-popover v-if="proofitem.status.code == 1"
<div class="mt-8">
<el-popover v-if="proofitem.status.code == 1"
placement="left"
width="400"
title="凭证效验"
@ -116,10 +113,10 @@
<el-button type="primary" @click="handleSubmitEffect(proofitem,('ruleFormEffect'+index))" size="small">保存</el-button>
</el-form-item>
</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-button v-if="proofitem.status.code != 1" size="small" @click="updateClick(index,proofitem)">编辑</el-button>
<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="updateClick(index,proofitem)"><i class="el-icon-edit"></i>&nbsp;编辑</span>
<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>
</el-form>
@ -339,6 +336,39 @@ import api from "@/services/caseManagement";
border:solid 1px #E5E6EB;
.el-form-item{margin-bottom: 13px;}
.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>

View File

@ -190,6 +190,19 @@ const caseManagementApi = {
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::案件管理======================================
}
export default caseManagementApi;