发送短信、文书送达

This commit is contained in:
tdg930622 2024-12-30 17:12:25 +08:00
parent 040927f417
commit 327b218be9
5 changed files with 512 additions and 371 deletions

View File

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<el-dialog :visible="true" width="1300px" class="dialog-case-record" append-to-body :close-on-click-modal="false" <el-dialog :visible="true" width="1300px" class="dialog-case-record" :close-on-click-modal="false"
@close="handleClose()"> @close="handleClose()">
<div class="dialog-content dialog-case-trace"> <div class="dialog-content dialog-case-trace">

View File

@ -1,191 +1,231 @@
<template> <template>
<div> <div>
<div class="pt-8 border-b-solid-lighter-1"> <div class="pt-8 border-b-solid-lighter-1">
<div class="height-30 flex-row align-items-center justify-content-between mb-24"> <div class="height-30 flex-row align-items-center justify-content-between mb-24">
<div class="f18 color-text-primary">筛选</div> <div class="f18 color-text-primary">筛选</div>
</div>
<el-collapse-transition>
<el-row :gutter="56">
<el-col :span="6">
<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-input v-model.trim="queryParam.pkgName"
clearable placeholder="请输入短信接收人"
@keydown.enter.native="handleSearch">
</el-input>
</div> </div>
<el-collapse-transition> </el-col>
<el-row :gutter="56"> <el-col :span="5">
<el-col :span="6"> <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-input v-model.trim="queryParam.phone"
<el-input v-model.trim="queryParam.pkgName" clearable placeholder="请输入电话号码"
clearable placeholder="请输入短信接收人" @keydown.enter.native="handleSearch">
@keydown.enter.native="handleSearch"> </el-input>
</el-input>
</div>
</el-col>
<el-col :span="5">
<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-input v-model.trim="queryParam.phone"
clearable placeholder="请输入电话号码"
@keydown.enter.native="handleSearch">
</el-input>
</div>
</el-col>
<el-col :span="9">
<div class="justify-content-start align-items-center height-40 mb-24">
<span class="tabs__search-criteria-title flex-shrink-0 pr-16">操作时间</span>
<el-date-picker
v-model="queryDate"
type="daterange"
clearable
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
@change="handleChangeDate">
</el-date-picker>
</div>
</el-col>
<el-col :span="4">
<div class="flex-row align-items-center justify-content-end">
<el-button @click="hanldeReset">重置</el-button>
<el-button type="primary" @click="handleSearch">搜索</el-button>
</div>
</el-col>
</el-row>
</el-collapse-transition>
</div>
<!-- table -->
<div class="pt-8">
<div class="height-56 flex-row align-items-center justify-content-between">
<div class="f18 color-text-primary">明细列表</div>
<div class="flex-row">
</div>
</div> </div>
</el-col>
<div class="case-table"> <el-col :span="9">
<el-table :data="tableData" height="340" > <div class="justify-content-start align-items-center height-40 mb-24">
<el-table-column type="index" label="序号" width="55"></el-table-column> <span class="tabs__search-criteria-title flex-shrink-0 pr-16">操作时间</span>
<!-- <el-table-column prop="pkgName" label="案件包名称" show-overflow-tooltip ></el-table-column> --> <el-date-picker
<el-table-column prop="caseNo" label="案件编号" width="200" show-overflow-tooltip ></el-table-column> v-model="queryDate"
<el-table-column prop="channel" label="短信模板" show-overflow-tooltip ></el-table-column> type="daterange"
<el-table-column prop="receiver" label="短信接收人" show-overflow-tooltip ></el-table-column> clearable
<el-table-column prop="phone" label="电话号码" show-overflow-tooltip ></el-table-column> range-separator="至"
<el-table-column prop="channel" label="短信接收对象" show-overflow-tooltip ></el-table-column> start-placeholder="开始日期"
<el-table-column prop="status" label="发送状态" show-overflow-tooltip ></el-table-column> end-placeholder="结束日期"
<el-table-column prop="failureReason" label="失败原因" show-overflow-tooltip ></el-table-column> @change="handleChangeDate">
<el-table-column prop="channel" label="操作人" show-overflow-tooltip ></el-table-column> </el-date-picker>
<el-table-column prop="planStartTime" label="操作时间" show-overflow-tooltip >
<template slot-scope="scope">
<span >{{ scope.row.planStartTime | formaDate("yyyy-MM-dd hh:mm:ss") }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="150">
<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>
</div>
</template>
</el-table-column>
</el-table>
</div> </div>
</el-col>
<div class="text-center pt-16"> <el-col :span="4">
<el-pagination <div class="flex-row align-items-center justify-content-end">
@size-change="getList" <el-button @click="hanldeReset">重置</el-button>
@current-change="getList" <el-button type="primary" @click="handleSearch">搜索</el-button>
:current-page="queryParam.current"
:page-size="queryParam.size"
layout="total, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div> </div>
</div> </el-col>
</el-row>
</el-collapse-transition>
</div> </div>
<!-- table -->
<div class="pt-8">
<div class="height-56 flex-row align-items-center justify-content-between">
<div class="f18 color-text-primary">明细列表</div>
<div class="flex-row">
</div>
</div>
<div class="case-table">
<el-table :data="tableData" height="340">
<el-table-column type="index" label="序号" width="55"></el-table-column>
<!-- <el-table-column prop="pkgName" label="案件包名称" show-overflow-tooltip ></el-table-column> -->
<el-table-column prop="caseNo" label="案件编号" width="200" show-overflow-tooltip></el-table-column>
<el-table-column prop="channel" label="短信模板" show-overflow-tooltip></el-table-column>
<el-table-column prop="receiver" label="短信接收人" show-overflow-tooltip></el-table-column>
<el-table-column prop="phone" label="电话号码" show-overflow-tooltip></el-table-column>
<el-table-column prop="channel" label="短信接收对象" show-overflow-tooltip></el-table-column>
<el-table-column prop="status" label="发送状态" show-overflow-tooltip>
<template slot-scope="scope">
<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="channel" label="操作人" show-overflow-tooltip></el-table-column>
<el-table-column prop="planStartTime" label="操作时间" show-overflow-tooltip>
<template slot-scope="scope">
<span>{{ scope.row.planStartTime | formaDate("yyyy-MM-dd hh:mm:ss") }}</span>
</template>
</el-table-column>
<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>
</div>
</template>
</el-table-column>
</el-table>
</div>
<div class="text-center pt-16">
<el-pagination
@size-change="getList"
@current-change="getList"
:current-page="queryParam.current"
:page-size="queryParam.size"
layout="total, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div>
</div>
</div>
</template> </template>
<script> <script>
import api from "@/services/eventTracingApi"; import api from "@/services/eventTracingApi";
export default { import caseManagement from "@/services/caseManagement";
components: { export default {
components: {},
}, props: {
props: { DialogDetail: {
DialogDetail: { type: Object,
type: Object, default: () => {
default: () => { return {}
return {} },
}, },
}, },
}, data() {
data() { return {
return { queryDate: '',
queryDate: '', queryParam: {
queryParam:{ traceId: '',
traceId:'', phone: '',
phone:'', beginTime: '',
beginTime:'', endTime: '',
endTime:'', current: 1,
current:1, size: 10
size:10 },
}, tableData: [],
tableData:[], total: 0,
total:0,
};
},
mounted () {
console.log(this.DialogDetail,'this.DialogDetail.caseNo')
if(this.DialogDetail.caseNo !=undefined && this.DialogDetail.caseNo !=''){this.queryParam.caseNo = this.DialogDetail.caseNo}
this.queryParam.traceId = this.DialogDetail.id
this.getList(1)
},
methods: {
handleChangeDate() {
this.activeUsage = ''
if(this.queryDate === null) {
this.setDateFast()
}else {
this.queryParam.beginTime = this.$util.getDayStart(this.queryDate[0])
this.queryParam.endTime = this.$util.getDayEnd(this.queryDate[1])
}
},
//
hanldeReset() {
for (let key in this.queryParam) {
this.queryParam[key] = ''
}
this.queryParam.current = 1
this.queryParam.size = 10
},
handleSearch() {
this.queryParam.size = 10;
this.queryParam.current = 1;
this.getList(1)
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.current = val
api.posttrace_sms_detail(this.queryParam).then(res => {
if (!res.code) {
this.tableData = res.records;
this.total = res.total;
}
})
},
}
}; };
},
mounted() {
console.log(this.DialogDetail, 'this.DialogDetail.caseNo')
if (this.DialogDetail.caseNo != undefined && this.DialogDetail.caseNo != '') {
this.queryParam.caseNo = this.DialogDetail.caseNo
}
this.queryParam.traceId = this.DialogDetail.id
this.getList(1)
},
methods: {
handleChangeDate() {
this.activeUsage = ''
if (this.queryDate === null) {
this.setDateFast()
} else {
this.queryParam.beginTime = this.$util.getDayStart(this.queryDate[0])
this.queryParam.endTime = this.$util.getDayEnd(this.queryDate[1])
}
},
//
hanldeReset() {
for (let key in this.queryParam) {
this.queryParam[key] = ''
}
this.queryParam.current = 1
this.queryParam.size = 10
},
handleSearch() {
this.queryParam.size = 10;
this.queryParam.current = 1;
this.getList(1)
},
//
getList(val) {
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.current = val
api.posttrace_sms_detail(this.queryParam).then(res => {
if (!res.code) {
this.tableData = res.records;
this.total = res.total;
}
})
},
handleRetry(row) {
this.$confirm("确定重试?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
if(!this.$clickThrottle()) { return }//
caseManagement.smsRetry({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 }//
caseManagement.smsCancel({id: row.id}).then(res => {
this.getList(1);
this.$message.success("成功");
})
}).catch(() => {});
},
}
};
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.dialog-content{ .dialog-content {
padding: 16px 24px; padding: 16px 24px;
max-height:500px max-height: 500px
} }
.department-wrap{
padding: 16px 24px; .department-wrap {
max-height: 250px; padding: 16px 24px;
.department-wrap-list{ max-height: 250px;
margin-bottom:32px;
} .department-wrap-list {
.department-wrap-list:last-child{ margin-bottom: 32px;
margin-bottom:0; }
}
.department-wrap-list:last-child {
margin-bottom: 0;
}
}
.min-height350 {
min-height: 350px;
}
.department-dept ::v-deep .el-checkbox__label {
color: $color-000000
} }
.min-height350{min-height: 350px;}
.department-dept ::v-deep .el-checkbox__label {color: $color-000000}
</style> </style>

View File

@ -1,117 +1,159 @@
<template> <template>
<div> <div>
<el-dialog title="批量发送短信" :visible="true" width="600px" append-to-body :close-on-click-modal="false" <el-dialog title="批量发送短信" :visible="true" width="600px" :close-on-click-modal="false"
@close="handleClose"> @close="handleClose">
<div class="dialog-content dialog-case-batch"> <div class="dialog-content dialog-case-batch">
<div class="pt-8"> <div class="pt-8">
<div class="flex-row align-items-center justify-content-between mb-24 case-batch-num"> <div class="flex-row align-items-center justify-content-between mb-24 case-batch-num">
<span>选中<a>{{eventTraDialog.caseids.length}}</a>个案件系统将对您选择中案件进行批量发送短信</span> <span>选中<a>{{ eventTraDialog.caseids.length }}</a>个案件系统将对您选择中案件进行批量发送短信</span>
</div> </div>
<el-collapse-transition> <el-collapse-transition>
<el-row :gutter="56"> <el-row :gutter="56">
<el-col :span="24"> <el-col :span="24">
<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.methodId" <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.value" :key="item.template"
:label="item.label" :label="item.template"
:value="item.value"> :value="item.template">
</el-option> </el-option>
</el-select> </el-select>
</div>
</el-col>
<el-col :span="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>
<el-input v-model.trim="ObjectInfo.users"
clearable placeholder="请输入" disabled>
</el-input>
</div>
</el-col>
<el-col :span="24">
<div class="flex-row-center align-items-center mb-24">
<span class="tabs__search-criteria-title flex-shrink-0 pr-16">模板内容</span>
<el-input class="mt-8" type="textarea" v-model="ObjectInfo.content" :rows="4" disabled></el-input>
</div>
</el-col>
</el-row>
</el-collapse-transition>
</div> </div>
</el-col>
<!-- <el-col :span="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>-->
<!-- <el-input v-model.trim="ObjectInfo.users"-->
<!-- clearable placeholder="请输入" disabled>-->
<!-- </el-input>-->
<!-- </div>-->
<!-- </el-col>-->
<el-col :span="24">
<div class="flex-row-center align-items-center mb-24">
<span class="tabs__search-criteria-title flex-shrink-0 pr-16">模板内容</span>
<el-input class="mt-8" type="textarea" v-model="ObjectInfo.content" :rows="4" disabled></el-input>
</div>
</el-col>
</div> </el-row>
<span slot="footer" class="dialog-footer"> </el-collapse-transition>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose()">取消</el-button> <el-button @click="handleClose()">取消</el-button>
<el-button type="primary" @click="handleSubmit()">批量发送</el-button> <el-button type="primary" @click="handleSubmit()">批量发送</el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import api from "@/services/caseManagement"; import caseManagement from "@/services/caseManagement";
export default {
components: { export default {
}, components: {},
props: { props: {
eventTraDialog: { eventTraDialog: {
type: Object, type: Object,
default: () => { default: () => {
return {} return {}
}, },
}, },
}, },
data() { data() {
return { return {
smsOptions:[{label:'案件受理通知',value:'notice',users:'由被申请方接收',content:'【${signName}】您与${applyName}的${issueType}已由我中心受理调解,后续我方将组织双方共同进行调解,请您关注后续电话或者短信通知'}, smsOptions: [
{label:'还款计划通知',value:'repayment-plan',users:'由被申请方接收',content:'【${signName}】您与${applyName}的${issueType}经调解已经达成初步的方案及还款计划,您可以通过如下链接查看${smallProLink}。或者您也可以直接通过搜索微信小程序“保融通调解”进入“还款记录登记”模块进行查看。'}], // {
ObjectInfo:{ // label: '',
methodId:'notice', // template: 'notice',
users:'', // // users: '',
content:'' // content: '${signName}${applyName}${issueType}'
}, // },
tableData:[], // {
total:0, // label: '',
// template: 'repayment-plan',
// // users: '',
// content: '${signName}${applyName}${issueType}${smallProLink}'
// }
],
ObjectInfo: {
scene: '',
// users: '',
content: ''
},
tableData: [],
total: 0,
};
},
mounted () {
this.smsChange()
},
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(){
console.log(this.eventTraDialog,'eventTraDialog')
},
handleClose() {
this.$emit('update:eventTraDialog', null)
},
}
}; };
},
mounted() {
this.getSmsTemplate();
// this.smsChange();
},
methods: {
getSmsTemplate() {
caseManagement.getSmsTemplate().then(res => {
if (!res.code) {
this.smsOptions = res;
if (res.length){
this.ObjectInfo.scene = res[0].template;
this.ObjectInfo.content = res[0].content;
}
}
})
},
smsChange() {
let jsonData = this.smsOptions.find(item => {
return this.ObjectInfo.scene == item.template
})
// this.ObjectInfo.users = jsonData.users
this.ObjectInfo.content = jsonData.content
},
handleSubmit() {
// console.log(this.eventTraDialog, 'eventTraDialog')
if (!this.ObjectInfo.scene){
this.$message.warning("请选择短信模板!");
return
}
if(!this.$clickThrottle()) { return }//
let caseIdList = this.eventTraDialog.caseids;
caseManagement.smsBatchSend({...this.ObjectInfo, caseIdList: caseIdList}).then(res => {
this.$parent.getCaseInfoList(1)
this.handleClose()
this.$message.success("发送成功");
})
},
handleClose() {
this.$emit('update:eventTraDialog', null)
},
}
};
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.dialog-case-batch{ .dialog-case-batch {
padding: 16px 30px; padding: 16px 30px;
max-height:500px; max-height: 500px;
.tabs__search-criteria-title{
width: 100px; .tabs__search-criteria-title {
width: 100px;
}
.case-batch-num {
background-color: rgba(236, 238, 241, 0.8196078431);
padding: 15px 20px;
border-radius: 4px;
a {
font-size: 16px;
font-weight: 500;
color: #C66A5B;
} }
.case-batch-num{ }
background-color: rgba(236, 238, 241, 0.8196078431);
padding: 15px 20px;
border-radius: 4px;
a{font-size: 16px;font-weight: 500;color: #C66A5B;}
}
} }
</style> </style>

View File

@ -1,107 +1,133 @@
<template> <template>
<div> <div>
<el-dialog title="批量文书送达" :visible="true" width="600px" append-to-body :close-on-click-modal="false" <el-dialog title="批量文书送达" :visible="true" width="600px" append-to-body :close-on-click-modal="false"
@close="handleClose"> @close="handleClose">
<div class="dialog-content dialog-office-batch"> <div class="dialog-content dialog-office-batch">
<div class="pt-8"> <div class="pt-8">
<div class="flex-row align-items-center justify-content-between mb-16 case-batch-num"> <div class="flex-row align-items-center justify-content-between mb-16 case-batch-num">
<span>选中<a>{{eventTraDialog.caseids.length}}</a>个案件系统将对您选择的案件进行批量电子短信送达</span> <span>选中<a>{{ eventTraDialog.caseids.length }}</a>个案件系统将对您选择的案件进行批量电子短信送达</span>
</div> </div>
<el-collapse-transition> <el-collapse-transition>
<el-row :gutter="56"> <el-row :gutter="56">
<el-col :span="24"> <el-col :span="24">
<div class="flex-row-center align-items-center height-40 mb-8"> <div class="flex-row-center align-items-center height-40 mb-8">
<span class="tabs__search-criteria-title flex-shrink-0 pr-16 f18">选择文书类型多选</span> <span class="tabs__search-criteria-title flex-shrink-0 pr-16 f18">选择文书类型多选</span>
</div>
</el-col>
<el-col :span="24">
<div class="mb-24 officelist">
<el-checkbox-group v-model="ObjectInfo.methodIds">
<el-checkbox border v-for="(item,index) in officeOptions" :label="item.label" :key="index" ></el-checkbox>
</el-checkbox-group>
</div>
</el-col>
</el-row>
</el-collapse-transition>
</div> </div>
</el-col>
<el-col :span="24">
<div class="mb-24 officelist">
<el-checkbox-group v-model="ObjectInfo.documentTypes">
<el-checkbox border v-for="(item,index) in officeOptions" :label="item.value"
:key="index">{{item.label}}</el-checkbox>
</el-checkbox-group>
</div>
</el-col>
</div> </el-row>
<span slot="footer" class="dialog-footer"> </el-collapse-transition>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose()">取消</el-button> <el-button @click="handleClose()">取消</el-button>
<el-button type="primary" @click="handleSubmit()">批量送达</el-button> <el-button type="primary" @click="handleSubmit()">批量送达</el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import api from "@/services/caseManagement"; import caseManagement from "@/services/caseManagement";
export default {
components: {
},
props: {
eventTraDialog: {
type: Object,
default: () => {
return {}
},
},
},
data() {
return {
officeOptions:[{label:'调解告知书',value:'1'},{label:'调解申请书',value:'2'},
{label:'送达地址确认书',value:'3'},{label:'调解笔录',value:'4'},{label:'调解协议',value:'5'}],
ObjectInfo:{
methodIds:['调解告知书','调解申请书','送达地址确认书','调解笔录','调解协议'],
users:'',
content:''
},
tableData:[],
total:0,
}; export default {
}, components: {},
mounted () { props: {
eventTraDialog: {
}, type: Object,
methods: { default: () => {
smsChange(){ return {}
let jsonData = this.smsOptions.find(item=>{ },
return this.ObjectInfo.methodId == item.value },
}) },
this.ObjectInfo.users = jsonData.users data() {
this.ObjectInfo.content = jsonData.content return {
}, officeOptions: [
{label: '调解告知书', value: 'MEDIATE_NOTE'},
handleClose() { {label: '调解申请书', value: 'MEDIATE_APPLICATION'},
this.$emit('update:eventTraDialog', null) {label: '调解询问笔录', value: 'MEDIATE_RECORD'},
}, {label: '调解协议', value: 'MEDIATE_AGREEMENT'},
} {label: '司法申请书', value: 'JUDICATURE_APPLICATION'},
{label: '司法承诺书', value: 'JUDICATURE_PROMISE'},
{label: '送达地址确认书', value: 'CONFIRMATION_OF_ADDRESS'},
{label: '身份识别报告', value: 'VERIFY_IDD'}
],
ObjectInfo: {
documentTypes: ['MEDIATE_NOTE', 'MEDIATE_APPLICATION', 'MEDIATE_RECORD', 'MEDIATE_AGREEMENT',
'JUDICATURE_APPLICATION', 'JUDICATURE_PROMISE' , 'CONFIRMATION_OF_ADDRESS', 'VERIFY_IDD'],
servedType: 'SMS'
},
}; };
},
mounted() {
},
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() {
if (!this.ObjectInfo.documentTypes.length){
this.$message.warning("请选择文书类型!");
return
}
if(!this.$clickThrottle()) { return }//
let caseIdList = this.eventTraDialog.caseids;
caseManagement.traceServedBatchCreate({...this.ObjectInfo, caseIdList: caseIdList}).then(res => {
this.$parent.getCaseInfoList(1)
this.handleClose()
this.$message.success("发送成功");
})
},
handleClose() {
this.$emit('update:eventTraDialog', null)
},
}
};
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.dialog-office-batch{ .dialog-office-batch {
padding: 16px 30px; padding: 16px 30px;
max-height:500px; max-height: 500px;
.tabs__search-criteria-title{
width: 100%; .tabs__search-criteria-title {
width: 100%;
}
.case-batch-num {
background-color: rgba(236, 238, 241, 0.8196078431);
padding: 15px 20px;
border-radius: 4px;
a {
font-size: 16px;
font-weight: 500;
color: #C66A5B;
} }
.case-batch-num{ }
background-color: rgba(236, 238, 241, 0.8196078431);
padding: 15px 20px; .officelist {
border-radius: 4px; background-color: rgba(236, 238, 241, 0.8196078431);
a{font-size: 16px;font-weight: 500;color: #C66A5B;} padding: 20px 20px;
.el-checkbox {
width: 230px;
margin: 10px;
} }
.officelist{ }
background-color: rgba(236, 238, 241, 0.8196078431);
padding: 20px 20px;
.el-checkbox
{
width: 230px;
margin: 10px;
}
}
} }
</style> </style>

View File

@ -138,10 +138,43 @@ const caseManagementApi = {
}, },
// 短信模板
getSmsTemplate: data => {
return service.service.get(`${apiAdmin}api/trace/sms/template`, data)
},
// 发送短信
smsSend: data => {
return service.service.post(`${apiAdmin}api/trace/sms/send`, data)
},
// 重试
smsRetry: data => {
return service.service.post(`${apiAdmin}api/trace/sms/retry`, data)
},
// 取消
smsCancel: data => {
return service.service.post(`${apiAdmin}api/trace/sms/cancel`, data)
},
// 批量发送短信
smsBatchSend: data => {
return service.service.post(`${apiAdmin}api/trace/sms/batch-send`, data)
},
// 发起-文书送达
traceServedCreate: data => {
return service.service.post(`${apiAdmin}api/trace/traceServed/create`, data)
},
// 批量发起-文书送达
traceServedBatchCreate: data => {
return service.service.post(`${apiAdmin}api/trace/traceServed/batch-create`, data)
},
// 取消
traceServedBatchCancel: data => {
return service.service.post(`${apiAdmin}api/trace/traceServed/cancel`, data)
},
// 重试
traceServedBatchRetry: data => {
return service.service.post(`${apiAdmin}api/trace/traceServed/retry`, data)
},
//========================end::案件管理====================================== //========================end::案件管理======================================
} }