Merge branch 'main' into 'stg'

Main

See merge request cloud-mediate/mediate-manage-web!2
This commit is contained in:
刘翕 2025-02-07 10:20:06 +00:00
commit 9a0476c704
13 changed files with 63 additions and 32 deletions

View File

@ -4,7 +4,7 @@
<div v-if="zoomActive" class="cover"></div> <div v-if="zoomActive" class="cover"></div>
<div v-if="zoomActive" class="big-layout"> <div v-if="zoomActive" class="big-layout">
<div class="big-header flex-row justify-content-end"> <div class="big-header flex-row justify-content-end">
<div class="big-header-btn bg-color-light flex-row align-items-center border-radius-4 cursor-pointer" <div class="big-header-btn flex-row align-items-center cursor-pointer"
@click="toggleZoom"> @click="toggleZoom">
<span class="mr-4">{{ zoomActive ? '缩小' : '放大' }}</span> <span class="mr-4">{{ zoomActive ? '缩小' : '放大' }}</span>
<svg-icon <svg-icon
@ -98,11 +98,11 @@
</div> </div>
</div> </div>
<!-- --> <!-- -->
<div v-else class="small-layout flex-row justify-content-between align-items-center pl-32 pr-32"> <div v-else class="small-layout flex-row justify-content-between align-items-center pl-24 pr-24">
<div class="f24 f-weight600 mr-16">{{ incomingCallPhone }}</div> <div class="f24 f-weight600 pr-16 mr-16 small-layout-phone">{{ incomingCallPhone }}</div>
<div class="mr-16 cursor-pointer" v-if="!answerSts" @click="handleAccept"><svg-icon icon-class="up-telephone" className="tabs-svg-phone" /></div> <div class="mr-16 cursor-pointer" v-if="!answerSts" @click="handleAccept"><svg-icon icon-class="up-telephone" className="tabs-svg-phone" /></div>
<div class="mr-16 cursor-pointer" @click="handleHungUp"><svg-icon icon-class="hang-telephone" className="tabs-svg-phone" /></div> <div class="mr-16 cursor-pointer" @click="handleHungUp"><svg-icon icon-class="hang-telephone" className="tabs-svg-phone" /></div>
<div class="big-header-btn bg-color-light flex-row align-items-center border-radius-4 cursor-pointer" <div class="big-header-btn flex-row align-items-center cursor-pointer"
@click="toggleZoom"> @click="toggleZoom">
<span class="mr-4">{{ zoomActive ? '缩小' : '放大' }}</span> <span class="mr-4">{{ zoomActive ? '缩小' : '放大' }}</span>
<svg-icon :icon-class="zoomActive ? `zoom-1` : 'zoom-2'" className="tabs-svg-zoom" /> <svg-icon :icon-class="zoomActive ? `zoom-1` : 'zoom-2'" className="tabs-svg-zoom" />
@ -244,8 +244,9 @@ export default {
.big-header{ .big-header{
.big-header-btn{ .big-header-btn{
background-color: #e4e7ed; background-color: rgba(242, 243, 245, 1);
padding: 6px 10px; padding: 9px 14px;
border-radius: 16px;
.tabs-svg{ .tabs-svg{
width: 16px; width: 16px;
height: 16px; height: 16px;
@ -286,20 +287,27 @@ export default {
position: absolute; position: absolute;
top: 0; top: 0;
left: 50%; left: 50%;
height: 56px; height: 72px;
width: 460px; width: 460px;
margin-left: -230px; margin-left: -230px;
.small-layout{ .small-layout{
height: 56px; height: 72px;
border-radius: 16px; border-radius: 16px;
background-color: #dcdfe6; background-color: #ffffff;
border: 1px solid #E5E6EB;
box-shadow: 0 8px 16px 0 rgba(0,0,0,.1);
.small-layout-phone{
line-height: 34px;
border-right: 1px solid rgba(229, 230, 235, 1);
}
.tabs-svg-phone{ .tabs-svg-phone{
width: 40px; width: 40px;
height: 40px; height: 40px;
} }
.big-header-btn{ .big-header-btn{
background-color: #ffffff; background-color: rgba(242, 243, 245, 1);
padding: 6px 10px; padding: 9px 14px;
border-radius: 16px;
.tabs-svg{ .tabs-svg{
width: 16px; width: 16px;
height: 16px; height: 16px;

View File

@ -331,15 +331,17 @@ import apipack from "@/services/casePackageManagement";
return false return false
} }
// console.log(this.caseAllocationDialog.choosecaseIds,'datadatadatadata')
this.$refs.ruleForm.validate((valid) => { this.$refs.ruleForm.validate((valid) => {
if(valid) { if(valid) {
let data = { let data = {
id:this.caseAllocationDialog.ObjectInfo.id, caseIds:this.caseAllocationDialog.choosecaseIds,
dispatchType:this.queryParam.dispatchType, dispatchType:this.queryParam.dispatchType,
userList:chooseUser userList:chooseUser
} }
apipack.postpkgdispatchCase(data).then(res => { apipack.postpkgdispatchCase(data).then(res => {
this.$message({ this.$message({
showClose: true, showClose: true,

View File

@ -193,6 +193,8 @@ import apipk from "@/services/casePackageManagement";
apipk.CasePkgimport(data).then(res => { apipk.CasePkgimport(data).then(res => {
this.handleClose() this.handleClose()
this.$parent.getCaseInfoList(1) this.$parent.getCaseInfoList(1)
this.$message.success("批量导入案件成功,导入错误案件请在错误修复里面进行查看!");
}) })
} }

View File

@ -61,7 +61,8 @@
v-model="baseInfo.planStartTime" v-model="baseInfo.planStartTime"
type="date" type="date"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择委案日期"> placeholder="选择委案日期"
:picker-options="pickerOptions">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -116,6 +117,12 @@ import apipk from "@/services/casePackageManagement";
}, },
data() { data() {
return { return {
pickerOptions: {
disabledDate(v) {
return v.getTime() < new Date().getTime();// - 86400000
}
},
baseInfo:{ baseInfo:{
pkgName:'',// pkgName:'',//
entrustingAgencyName:'',// entrustingAgencyName:'',//
@ -164,6 +171,7 @@ import apipk from "@/services/casePackageManagement";
apipk.CasePkgimport(data).then(res => { apipk.CasePkgimport(data).then(res => {
this.handleClose() this.handleClose()
this.$parent.getCaseInfoList(1) this.$parent.getCaseInfoList(1)
this.$message.success("批量导入案件成功,导入错误案件请在错误修复里面进行查看!");
}) })
} }

View File

@ -122,7 +122,7 @@ export default {
if(!this.$clickThrottle()) { return }// if(!this.$clickThrottle()) { return }//
let caseIdList = this.eventTraDialog.caseids; let caseIdList = this.eventTraDialog.caseids;
caseManagement.smsBatchSend({...this.ObjectInfo, caseIdList: caseIdList}).then(res => { caseManagement.smsBatchSend({...this.ObjectInfo, caseIdList: caseIdList}).then(res => {
this.$parent.getCaseInfoList(1) this.$parent.getCaseInfoList(this.eventTraDialog.current)
this.handleClose() this.handleClose()
this.$message.success("发送成功"); this.$message.success("发送成功");
}) })

View File

@ -86,7 +86,7 @@ export default {
if(!this.$clickThrottle()) { return }// if(!this.$clickThrottle()) { return }//
let caseIdList = this.eventTraDialog.caseids; let caseIdList = this.eventTraDialog.caseids;
caseManagement.traceServedBatchCreate({...this.ObjectInfo, caseIdList: caseIdList}).then(res => { caseManagement.traceServedBatchCreate({...this.ObjectInfo, caseIdList: caseIdList}).then(res => {
this.$parent.getCaseInfoList(1) this.$parent.getCaseInfoList(this.eventTraDialog.current)
this.handleClose() this.handleClose()
this.$message.success("发送成功"); this.$message.success("发送成功");
}) })

View File

@ -95,7 +95,7 @@ export default {
...this.ObjectInfo, ...this.ObjectInfo,
} }
caseManagement.traceGenerateBatchCreate(dataJson).then(res => { caseManagement.traceGenerateBatchCreate(dataJson).then(res => {
this.$parent.getCaseInfoList(1) this.$parent.getCaseInfoList(this.eventTraDialog.current)
this.handleClose() this.handleClose()
this.$message.success("成功"); this.$message.success("成功");
}) })

View File

@ -67,7 +67,7 @@ import api from "@/services/caseManagement";
methods: { methods: {
handleSubmit(){ handleSubmit(){
api.traceSeal_launch(this.ObjectInfo).then((res) => { api.traceSeal_launch(this.ObjectInfo).then((res) => {
this.$parent.getCaseInfoList(1) this.$parent.getCaseInfoList(this.eventTraDialog.current)
this.handleClose() this.handleClose()
this.$message.success("发起批量签章成功"); this.$message.success("发起批量签章成功");
}); });

View File

@ -114,7 +114,7 @@ import api from "@/services/caseManagement";
api.traceSignBatchCreate(this.ObjectInfo).then((res) => { api.traceSignBatchCreate(this.ObjectInfo).then((res) => {
this.$message.success("批量发起签字成功"); this.$message.success("批量发起签字成功");
this.handleClose() this.handleClose()
this.$parent.getCaseInfoList() this.$parent.getCaseInfoList(this.eventTraDialog.current)
}); });
}, },

View File

@ -517,35 +517,35 @@ import { values } from "lodash";
this.$message.warning(`请至少选中一个调解案件!`) this.$message.warning(`请至少选中一个调解案件!`)
return return
} }
this.officeDeliveryIdsDialog={titile:'批量文书送达',caseids:this.selectionData} this.officeDeliveryIdsDialog={titile:'批量文书送达',caseids:this.selectionData,current:this.queryParam.current}
}, },
handleOfficeSeal(){ handleOfficeSeal(){
if(this.selectionData.length == 0 ){ if(this.selectionData.length == 0 ){
this.$message.warning(`请至少选中一个调解案件!`) this.$message.warning(`请至少选中一个调解案件!`)
return return
} }
this.officeSealIdsDialog={titile:'批量文书签章',caseids:this.selectionData} this.officeSealIdsDialog={titile:'批量文书签章',caseids:this.selectionData,current:this.queryParam.current}
}, },
handleOfficeWrite(){ handleOfficeWrite(){
if(this.selectionData.length == 0 ){ if(this.selectionData.length == 0 ){
this.$message.warning(`请至少选中一个调解案件!`) this.$message.warning(`请至少选中一个调解案件!`)
return return
} }
this.officeWriteIdsDialog={titile:'批量文书签字',caseids:this.selectionData} this.officeWriteIdsDialog={titile:'批量文书签字',caseids:this.selectionData,current:this.queryParam.current}
}, },
handleOffice(){ handleOffice(){
if(this.selectionData.length == 0 ){ if(this.selectionData.length == 0 ){
this.$message.warning(`请至少选中一个调解案件!`) this.$message.warning(`请至少选中一个调解案件!`)
return return
} }
this.officeIdsDialog={titile:'批量文书生成',caseids:this.selectionData} this.officeIdsDialog={titile:'批量文书生成',caseids:this.selectionData,current:this.queryParam.current}
}, },
handleSMSSend(){ handleSMSSend(){
if(this.selectionData.length == 0 ){ if(this.selectionData.length == 0 ){
this.$message.warning(`请至少选中一个调解案件!`) this.$message.warning(`请至少选中一个调解案件!`)
return return
} }
this.smsIdsDialog={titile:'批量发送短信',caseids:this.selectionData} this.smsIdsDialog={titile:'批量发送短信',caseids:this.selectionData,current:this.queryParam.current}
}, },
// tab // tab
handleTabClick(tab){ handleTabClick(tab){

View File

@ -84,7 +84,7 @@
</div> </div>
<div class="case-debt-info-call flex-row justify-content-between align-items-center"> <div class="case-debt-info-call flex-row justify-content-between align-items-center">
<div class="flex-row align-items-center cursor-pointer"> <div class="flex-row align-items-center cursor-pointer" @click="startOutboundCall">
<div class="f32 color-1960F4 mr-8"><i class="el-icon-phone"></i></div> <div class="f32 color-1960F4 mr-8"><i class="el-icon-phone"></i></div>
<div>呼叫被申请人</div> <div>呼叫被申请人</div>
</div> </div>
@ -132,7 +132,7 @@
<!-- 联系人信息 --> <!-- 联系人信息 -->
<div v-if="leftActive == 2" class="case-contact-person"> <div v-if="leftActive == 2" class="case-contact-person">
<contactPerson :caseId="caseId" /> <contactPerson :caseId="caseId" @startOutboundCall="startOutboundCall" />
</div> </div>
@ -194,7 +194,7 @@
</div> </div>
<el-scrollbar :style="'height:'+`${MediationrecordHeight}`+'px;padding:2px'"> <el-scrollbar :style="'height:'+`${MediationrecordHeight}`+'px;padding:2px 2px 25px 2px'">
<el-timeline class="padding-0"> <el-timeline class="padding-0">
<el-timeline-item v-for="(item,index) in communicationRecord" :key="index" :timestamp="item.recordDate" placement="top" type="primary"> <el-timeline-item v-for="(item,index) in communicationRecord" :key="index" :timestamp="item.recordDate" placement="top" type="primary">
<el-card shadow="never" class="mt-8" v-for="(itemrecord,index) in item.records" :key="index"> <el-card shadow="never" class="mt-8" v-for="(itemrecord,index) in item.records" :key="index">
@ -480,6 +480,13 @@ export default {
openRecordDialog(obj) { openRecordDialog(obj) {
this.visiblemediatRecord = true; this.visiblemediatRecord = true;
this.visiblemediatRecordObj = obj; this.visiblemediatRecordObj = obj;
},
startOutboundCall(phone, contactId) {
let params = {
phone: phone || null,
contactId: contactId || null
}
this.$emit('startOutboundCall', params)
} }
} }
}; };

View File

@ -113,7 +113,7 @@
</div> </div>
<!-- 中间数据 --> <!-- 中间数据 -->
<LayoutContentNew ref="layoutContent" :caseId="caseId" /> <LayoutContentNew ref="layoutContent" :caseId="caseId" @startOutboundCall="startOutboundCall" />
</div> </div>
@ -641,9 +641,11 @@ export default {
} }
}, },
// //
async startOutboundCall() { async startOutboundCall(phone, contactId) {
// this.phoneNumber = this.queue ? this.queueList[this.index].phone : this.baseInfo.phone // this.phoneNumber = this.queue ? this.queueList[this.index].phone : this.baseInfo.phone
if (this.calling) return
this.phoneNumber = '13982024318' this.phoneNumber = '13982024318'
if (contactId) this.contactId=contactId
console.log('进入呼叫电话:', this.phoneNumber) console.log('进入呼叫电话:', this.phoneNumber)
try { try {
@ -676,7 +678,7 @@ export default {
// //
async callingFail () { async callingFail () {
try { try {
let res = await api.callingSuccess({caseId: this.caseId,contactId: this.contactId}) let res = await api.callingFail({caseId: this.caseId,contactId: this.contactId})
} catch (err) { } } catch (err) { }
}, },
// //

View File

@ -31,7 +31,7 @@
</div> </div>
</div> </div>
<div class="color-86909C mt-8 ml-8 f16"> <div class="color-86909C mt-8 ml-8 f16">
<a class="mr-24 cursor-pointer"><i class="el-icon-phone"></i> 电话</a> <a class="mr-24 cursor-pointer" @click="makeCall(item)"><i class="el-icon-phone"></i> 电话</a>
<el-popover v-if="item.role == 'DEBTOR' && item.type =='本人'" <el-popover v-if="item.role == 'DEBTOR' && item.type =='本人'"
placement="top" placement="top"
@ -149,7 +149,9 @@ export default {
}); });
}).catch(() => {}); }).catch(() => {});
}, },
makeCall(item) {}, makeCall(item) {
this.$emit('startOutboundCall', {phone: item.phone, contactId: item.id})
},
sendMessages(item) {} sendMessages(item) {}
} }
} }