This commit is contained in:
张运江 2025-02-27 16:33:39 +08:00
commit bf06677cad
21 changed files with 84 additions and 49 deletions

View File

@ -204,8 +204,14 @@ export default {
// - // -
async handleRelevance(item) { async handleRelevance(item) {
try { try {
voiceCall.caseMatch({caseId: item.id, callingSessionId: this.acceptDialog.sessionId, phone: this.incomingCallPhone}).then(res => { let mainCaseId = null
// console.log(res,'---') if(item.jointDebt == 1){
mainCaseId = item.mainCaseId
}
else{
mainCaseId = item.id
}
voiceCall.caseMatch({caseId: mainCaseId, callingSessionId: this.acceptDialog.sessionId, phone: this.incomingCallPhone}).then(res => {
this.$router.push(`/mediation-page?sourcePage=sourcePage&caseId=${item.id}`); this.$router.push(`/mediation-page?sourcePage=sourcePage&caseId=${item.id}`);
}) })
} catch (error) { } catch (error) {

View File

@ -139,7 +139,7 @@ let formaDate = (value, fmt) => {
let secondsToMinutes = (value) => { let secondsToMinutes = (value) => {
if(value == 0 || value == ''|| value == null){return ''} if(value == 0 || value == ''|| value == null){return '0秒'}
const minutes = Math.floor(value / 60); const minutes = Math.floor(value / 60);
const seconds = value % 60; const seconds = value % 60;
if(minutes > 0) if(minutes > 0)

View File

@ -33,7 +33,7 @@
</el-table-column> </el-table-column>
<el-table-column label="沟通时长" show-overflow-tooltip > <el-table-column label="沟通时长" show-overflow-tooltip >
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.linkedType == 1">通话{{scope.linkedDuration}}</span> <span v-if="scope.row.linkedType == 1">通话{{itemrecord.linkedDuration | secondsToMinutes}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="mediator" label="操作人" show-overflow-tooltip ></el-table-column> <el-table-column prop="mediator" label="操作人" show-overflow-tooltip ></el-table-column>

View File

@ -335,7 +335,7 @@
<el-table :data="fileList" :height="300"> <el-table :data="fileList" :height="300">
<el-table-column type="index" label="序号" width="55"></el-table-column> <el-table-column type="index" label="序号" width="55"></el-table-column>
<el-table-column prop="materialType" label="材料类型" show-overflow-tooltip></el-table-column> <el-table-column prop="materialType" label="材料类型" show-overflow-tooltip></el-table-column>
<el-table-column prop="name" label="文件名称" show-overflow-tooltip></el-table-column> <!-- <el-table-column prop="name" label="文件名称" show-overflow-tooltip></el-table-column> -->
<el-table-column prop="createBy" label="上传人" show-overflow-tooltip></el-table-column> <el-table-column prop="createBy" label="上传人" show-overflow-tooltip></el-table-column>
<el-table-column label="上传时间" show-overflow-tooltip> <el-table-column label="上传时间" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
@ -381,9 +381,9 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="handleBy" label="操作人" show-overflow-tooltip></el-table-column> <el-table-column prop="handleBy" label="操作人" show-overflow-tooltip></el-table-column>
<el-table-column label="操作时间" show-overflow-tooltip > <el-table-column label="操作时间" width="230" >
<template slot-scope="scope"> <template slot-scope="scope">
<span >{{ scope.row.handleTime | formaDate("yyyy-MM-dd hh:mm:ss") }}</span> <span style="width: 100%;display: block;">{{ scope.row.handleTime | formaDate("yyyy-MM-dd hh:mm:ss") }}</span>
</template> </template>
</el-table-column> </el-table-column>
@ -466,7 +466,7 @@ export default {
H: '' H: ''
}], }],
caseId: '', caseId: '',
baseInfo: {}, baseInfo: {debtorEntityList:[],casePkg:{}},
fileList: [], fileList: [],
fileType: [{label: '身份证件', value: 1}, {label: '金融许可证', value: 2}, { fileType: [{label: '身份证件', value: 1}, {label: '金融许可证', value: 2}, {
label: '营业执照', label: '营业执照',
@ -510,8 +510,7 @@ export default {
if (this.$route.query.caseId != undefined) { if (this.$route.query.caseId != undefined) {
this.caseId = this.$route.query.caseId; this.caseId = this.$route.query.caseId;
this.getCaseInfoById();// this.getCaseInfoById();//
this.getmediate_record()
this.getCaseLogsList()
} }
}, },
methods: { methods: {
@ -588,16 +587,18 @@ export default {
} else { } else {
this.caseId = res.id.toString() this.caseId = res.id.toString()
} }
this.getmediate_record()
this.getCaseLogsList()
this.getCoobligation()
this.getFileCaseList()
this.getLitigantByCaseId()
this.getplanlist()
this.getProofList()
this.getWritCaseList()
} }
}) })
this.getCoobligation()
this.getFileCaseList()
this.getLitigantByCaseId()
this.getplanlist()
this.getProofList()
this.getWritCaseList()
}, },
// //
@ -667,7 +668,12 @@ export default {
// //
getProofList() { getProofList() {
this.ProofList = [] this.ProofList = []
api.gettraceProof_list({caseId: this.caseId}).then(res => { let data_json = {caseId: this.caseId}
if(this.baseInfo.jointDebt == 1){
data_json ={mainCaseId: this.baseInfo.mainCaseId}
}
api.gettraceProof_list(data_json).then(res => {
if (!res.code) { if (!res.code) {
res.forEach(item =>{ res.forEach(item =>{
if(item.status.code == 2){ this.ProofList.push(item)} if(item.status.code == 2){ this.ProofList.push(item)}

View File

@ -75,8 +75,8 @@
<el-table-column label="操作" width="200"> <el-table-column label="操作" width="200">
<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" v-if="scope.row.status.code == 1" @click="handleEnterqueue(scope.row)">进入外呼队列</el-button> <el-button size="mini" v-if="scope.row.status.code == 1 && scope.row.notCalledCount >0" @click="handleEnterqueue(scope.row)">进入外呼队列</el-button>
<el-button size="mini" v-if="scope.row.status.code == 1" @click="handleBackCase(scope.row)">取消</el-button> <el-button size="mini" v-if="scope.row.status.code == 1 && scope.row.notCalledCount >0" @click="handleBackCase(scope.row)">取消</el-button>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>

View File

@ -3,7 +3,7 @@
<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>
<span v-if="this.DialogDetail.id != undefined" class="f-weight500 f16 cursor-pointer" @click="$emit('update:DialogDetail', null)"><i class="el-icon-back"></i>返回</span> <span v-if="this.DialogDetail.id != undefined" class="f-weight500 f16 cursor-pointer border-solid-lighter-1 p-8 border-radius-8" @click="$emit('update:DialogDetail', null)"><i class="el-icon-back"></i>返回</span>
</div> </div>
<el-collapse-transition> <el-collapse-transition>
<el-row :gutter="56"> <el-row :gutter="56">

View File

@ -3,7 +3,7 @@
<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>
<span v-if="this.DialogDetail.id != undefined" class="f-weight500 f16 cursor-pointer" @click="$emit('update:DialogDetail', null)"><i class="el-icon-back"></i>返回</span> <span v-if="this.DialogDetail.id != undefined" class="f-weight500 f16 cursor-pointer border-solid-lighter-1 p-8 border-radius-8" @click="$emit('update:DialogDetail', null)"><i class="el-icon-back"></i>返回</span>
</div> </div>
<el-collapse-transition> <el-collapse-transition>
<el-row :gutter="56"> <el-row :gutter="56">

View File

@ -3,7 +3,7 @@
<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>
<span v-if="this.DialogDetail.id != undefined" class="f-weight500 f16 cursor-pointer" @click="$emit('update:DialogDetail', null)"><i class="el-icon-back"></i>返回</span> <span v-if="this.DialogDetail.id != undefined" class="f-weight500 f16 cursor-pointer border-solid-lighter-1 p-8 border-radius-8" @click="$emit('update:DialogDetail', null)"><i class="el-icon-back"></i>返回</span>
</div> </div>
<el-collapse-transition> <el-collapse-transition>
<el-row :gutter="56"> <el-row :gutter="56">

View File

@ -3,7 +3,7 @@
<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>
<span v-if="this.DialogDetail.id != undefined" class="f-weight500 f16 cursor-pointer" @click="$emit('update:DialogDetail', null)"><i class="el-icon-back"></i>返回</span> <span v-if="this.DialogDetail.id != undefined" class="f-weight500 f16 cursor-pointer border-solid-lighter-1 p-8 border-radius-8" @click="$emit('update:DialogDetail', null)"><i class="el-icon-back"></i>返回</span>
</div> </div>
<el-collapse-transition> <el-collapse-transition>
<el-row :gutter="56"> <el-row :gutter="56">

View File

@ -22,7 +22,7 @@
</div> </div>
</el-col> </el-col>
<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" style="width:100px">签字有效时间</span> <span class="tabs__search-criteria-title flex-shrink-0 pr-16" style="width:100px">签字有效时间</span>
<el-select v-model="ObjectInfo.deadNum" <el-select v-model="ObjectInfo.deadNum"
@ -34,7 +34,7 @@
<el-option label="5天" value="5"></el-option> <el-option label="5天" value="5"></el-option>
</el-select> </el-select>
</div> </div>
</el-col> </el-col> -->
</el-row> </el-row>

View File

@ -457,6 +457,8 @@ export default {
this.mediaterecordpm.caseId = this.caseId this.mediaterecordpm.caseId = this.caseId
this.eventDialog.caseId = this.caseId this.eventDialog.caseId = this.caseId
this.eventDialog.jointDebt = this.thisCaseInfo.jointDebt
this.eventDialog.mainCaseId = this.thisCaseInfo.mainCaseId
this.getCaseInfoById();// this.getCaseInfoById();//
this.getAgentList() this.getAgentList()

View File

@ -488,6 +488,7 @@ export default {
}, },
methods: { methods: {
handleBeforeUnload(event) { handleBeforeUnload(event) {
console.log(this.sessionId,'this.sessionId')
// //
if(this.calling){ if(this.calling){
window.tccc.Call.hungUp({sessionId: this.sessionId}) window.tccc.Call.hungUp({sessionId: this.sessionId})
@ -600,7 +601,14 @@ export default {
// }) // })
}, },
handleBack() { handleBack() {
// this.$route.query.sourcePage == 'mediationManagement' if(this.timerInterval) { //
clearInterval(this.timerInterval); //
}
if (this.videoCallInterval) {
clearInterval(this.videoCallInterval)
}
this.handleBeforeUnload()
setTimeout(() => {
if(this.timerInterval) { // if(this.timerInterval) { //
clearInterval(this.timerInterval); // clearInterval(this.timerInterval); //
} }
@ -610,7 +618,10 @@ export default {
if(this.calling){ if(this.calling){
window.tccc.Call.hungUp({sessionId: this.sessionId}) window.tccc.Call.hungUp({sessionId: this.sessionId})
} }
this.$router.push('/mediation-management') this.$router.push('/mediation-management')
}, 500);
// this.$route.query.sourcePage == 'mediationManagement'
// this.$router.push('/mediation-management')
}, },
// //
getmediate_record() { getmediate_record() {
@ -625,10 +636,12 @@ export default {
handleChangeMediation(resultStatus){ handleChangeMediation(resultStatus){
let data={ let data={
id:this.caseId, id:this.caseId,
mediateStatus:resultStatus mediateStatus:resultStatus,
caseStatus:this.baseInfo.caseStatus
} }
let resultmsg = '成功' let resultmsg = '成功'
if(resultStatus == 4){resultmsg = '失败'} if(resultStatus == 6){resultmsg = '失败'}
this.$confirm("请确定是否将案件标记为"+resultmsg+"?", "提示", { this.$confirm("请确定是否将案件标记为"+resultmsg+"?", "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
@ -751,7 +764,7 @@ export default {
this.startTimer() this.startTimer()
} }
} catch (err) { } catch (err) {
this.$message.error('呼叫失败' + err.message) this.$message.error('呼叫失败,请确定是否已分配坐席!')
console.log('呼叫失败',err.message) console.log('呼叫失败',err.message)
this.calling = false this.calling = false
this.callingFail() this.callingFail()
@ -834,9 +847,9 @@ export default {
this.isMute = true this.isMute = true
this.$message.success('已静音') this.$message.success('已静音')
} catch (err) { } catch (err) {
// console.log(err,'errerrerrerr') console.log(err,'静音失败')
// //
this.$message.error('静音失败') this.$message.error('静音失败')
} }
}, },
// //

View File

@ -235,7 +235,12 @@ import api from "@/services/caseManagement";
}) })
}, },
getProofList(){ getProofList(){
api.gettraceProof_list({caseId:this.eventDialog.caseId}).then(async res => { let data_json = {caseId: this.eventDialog.caseId}
if(this.eventDialog.jointDebt == 1){
data_json ={mainCaseId: this.eventDialog.mainCaseId}
}
api.gettraceProof_list(data_json).then(async res => {
if(!res.code){ if(!res.code){
await this.getpreviewfull(res) await this.getpreviewfull(res)
} }

View File

@ -50,7 +50,7 @@
</div> </div>
<!-- 电话 --> <!-- 电话 -->
<div v-if="itemrecord.linkedWay == 1" class="flex-row align-items-center pt-6"> <div v-if="itemrecord.linkedWay == 1" class="flex-row align-items-center pt-6">
<div v-if="itemrecord.linkedType == 1">通话{{itemrecord.linkedDuration}}</div> <div v-if="itemrecord.linkedType == 1">通话{{itemrecord.linkedDuration | secondsToMinutes}}</div>
<el-divider v-if="itemrecord.linkedType == 1" direction="vertical"></el-divider> <el-divider v-if="itemrecord.linkedType == 1" direction="vertical"></el-divider>
<div class="text-center cursor-pointer" v-for="(item,index) in itemrecord.files" :key="index" @click="handleCaseShowFile(item)"> <div class="text-center cursor-pointer" v-for="(item,index) in itemrecord.files" :key="index" @click="handleCaseShowFile(item)">
<i class="f14 el-icon-video-play"></i> 播放录音 {{index > 0 ? index : ''}} <i class="f14 el-icon-video-play"></i> 播放录音 {{index > 0 ? index : ''}}
@ -122,9 +122,8 @@
<div class="timeline-layout-w-records mt-8 mb-8"> <div class="timeline-layout-w-records mt-8 mb-8">
<div class="flex-column align-items-start"> <div class="flex-column align-items-start">
<div> <div>
<span v-for="(itemperson,index) in itemrecord.linkedPersonInfo" :key="index"> <span v-for="(itemperson,index) in itemrecord.linkedPersonInfo" :key="index" style="float: left;margin-bottom: 2px;">
{{ itemperson.name}} {{ itemperson.name}}
{{ itemrecord.linkedWay == 1 ? itemperson.phone :''}}
<el-tag class="mr-8" size="small" effect="plain" style="height: 22px;">{{itemperson.type}}</el-tag> <el-tag class="mr-8" size="small" effect="plain" style="height: 22px;">{{itemperson.type}}</el-tag>
</span> </span>
</div> </div>

View File

@ -58,11 +58,15 @@
<a class="color-86909C f12 pt-6 pb-6">{{item.handleBy}}&nbsp;&nbsp;{{ $util.formatDate(item.handleTime, 'YYYY-MM-DD HH:mm:ss')}}</a> <a class="color-86909C f12 pt-6 pb-6">{{item.handleBy}}&nbsp;&nbsp;{{ $util.formatDate(item.handleTime, 'YYYY-MM-DD HH:mm:ss')}}</a>
<div class="flex-row align-items-center color-86909C" v-if="(item.signList.length > 0 || item.unsignList.length > 0)&&(item.signStatus != null && (item.signStatus.code != 1))"> <div class="flex-row align-items-center color-86909C" v-if="(item.signList.length > 0 || item.unsignList.length > 0)&&(item.signStatus != null && (item.signStatus.code != 1))">
<div>签字</div> <div>签字</div>
<div style="width: 240px; display: block;"> <div style="width: 240px; display: block;padding-top: 4px;">
<div class="flex-row" v-for="(item1, index1) in item.unsignList" :key="index1" style="float: left;margin-bottom: 5px;"> <div class="flex-row" v-for="(item1, index1) in item.unsignList" :key="index1" style="float: left;margin-bottom: 5px;">
<el-tag v-if="item1.signStatus.code == 2" class="ml-4" size="small" type="success" effect="plain">{{item1.signName}}</el-tag> <el-tag v-if="item1.signStatus.code == 2" class="ml-4" size="small" type="success" effect="plain">{{item1.signName}}</el-tag>
<el-tag v-if="item1.signStatus.code == 0" class="ml-4" size="small" type="info" effect="plain">{{item1.signName}}</el-tag> <el-tag v-if="item1.signStatus.code == 0" class="ml-4" size="small" type="info" effect="plain">{{item1.signName}}</el-tag>
</div> </div>
<div class="flex-row" v-for="(item1, index1) in item.signList" :key="index1" style="float: left;margin-bottom: 5px;">
<el-tag v-if="item1.signStatus.code == 3" class="ml-4" size="small" type="success" effect="plain">{{item1.signName}}</el-tag>
<el-tag v-if="item1.signStatus.code == 0" class="ml-4" size="small" type="info" effect="plain">{{item1.signName}}</el-tag>
</div>
</div> </div>
<!-- <el-tag class="ml-4" size="small" type="success" effect="plain" <!-- <el-tag class="ml-4" size="small" type="success" effect="plain"

View File

@ -3,7 +3,7 @@
<div class="flex-row justify-content-between align-items-center pb-16 border-b-solid-lighter-1" <div class="flex-row justify-content-between align-items-center pb-16 border-b-solid-lighter-1"
v-for="(item, index) in missedCallData.list" :key="index"> v-for="(item, index) in missedCallData.list" :key="index">
<div class="width70"> <div class="width70">
<div class="color-000 f-weight600 f16">{{item.contact}}</div> <div class="color-000 f-weight600 f16">{{item.phone}}</div>
<div class="f12">来电时间:{{ formatDate(item.createAt, 'YYYY-MM-DD HH:mm:ss') }}</div> <div class="f12">来电时间:{{ formatDate(item.createAt, 'YYYY-MM-DD HH:mm:ss') }}</div>
</div> </div>
<el-button size="small" type="primary" @click="handleMissedCallCase(item)">查看相关案件</el-button> <el-button size="small" type="primary" @click="handleMissedCallCase(item)">查看相关案件</el-button>

View File

@ -14,12 +14,12 @@
<el-col :span="24"> <el-col :span="24">
<div class="mb-24 officelist"> <div class="mb-24 officelist">
<el-checkbox-group v-model="ObjectInfo.fileTypes"> <el-checkbox-group v-model="ObjectInfo.fileTypes">
<el-checkbox border v-for="(item,index) in officeOptions" :label="item.type" :key="index" :disabled="item.documentStaus.code != 2 ? true : false">{{ item.documentType.desc }}</el-checkbox> <el-checkbox border v-for="(item,index) in officeOptions" :label="item.type" :key="index" :disabled="item.documentStaus.code == 2 ? ((item.signStatus != null && (item.signStatus.code == 0 ||item.signStatus.code == 2 || item.signStatus.code == 3)) ? true :false) : true">{{ item.documentType.desc }}</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</div> </div>
<!-- :disabled="item.documentStaus.code != 2 ? true : false" --> <!-- :disabled="item.documentStaus.code != 2 ? true : false" -->
</el-col> </el-col>
<el-col :span="24"> <!-- <el-col :span="24">
<div class="flex-row-center align-items-center height-40"> <div class="flex-row-center align-items-center height-40">
<span class="tabs__search-criteria-title flex-shrink-0 pr-16" style="width:100px">签字有效时间</span> <span class="tabs__search-criteria-title flex-shrink-0 pr-16" style="width:100px">签字有效时间</span>
<el-select v-model="ObjectInfo.deadNum" size="small" <el-select v-model="ObjectInfo.deadNum" size="small"
@ -31,7 +31,7 @@
<el-option label="5天" value="5"></el-option> <el-option label="5天" value="5"></el-option>
</el-select> </el-select>
</div> </div>
</el-col> </el-col> -->
</el-row> </el-row>
</el-collapse-transition> </el-collapse-transition>
</div> </div>

View File

@ -328,11 +328,11 @@ const caseManagementApi = {
}, },
// 今日呼叫统计 // 今日呼叫统计
callingTodayCount: data => { callingTodayCount: data => {
return service.service.post(`${apiAdmin}api/trace/calling/todayCount`, data) return service.service.post(`${apiAdmin}api/trace/calling/todayCount`, data, {hideLoading:true})
}, },
// 当前调解员案件列表 // 当前调解员案件列表
callingCaseList: data => { callingCaseList: data => {
return service.service.post(`${apiAdmin}api/trace/calling/caseList`, data) return service.service.post(`${apiAdmin}api/trace/calling/caseList`, data, {hideLoading:true})
}, },

View File

@ -6,7 +6,7 @@ const systemLogApi = {
//========================start::用户管理====================================== //========================start::用户管理======================================
// 用户管理 // 用户管理
getUserList: data => { getUserList: data => {
return service.service.post(`${apiAdmin}system/user/getUserList`, data) return service.service.post(`${apiAdmin}system/user/getUserList`, data, {hideLoading:true})
}, },
// 删除用户管理 // 删除用户管理
deleteUserById: data => { deleteUserById: data => {

View File

@ -19,7 +19,7 @@ const api = {
}, },
// 呼叫未接列表 // 呼叫未接列表
notAnswerList: data => { notAnswerList: data => {
return service.service.post(`${apiAdmin}call/notAnswerList`, data) return service.service.post(`${apiAdmin}call/notAnswerList`, data,{hideLoading:true})
}, },
} }
export default api; export default api;

View File

@ -2,7 +2,7 @@
/* 防止重复点击 */ /* 防止重复点击 */
let clickTimer = 0 let clickTimer = 0
function clickThrottle(interval = 1500) { function clickThrottle(interval = 500) {
let now = +new Date(); // 获取当前时间的时间戳 let now = +new Date(); // 获取当前时间的时间戳
let timer = clickTimer; // 记录触发事件的事件戳 let timer = clickTimer; // 记录触发事件的事件戳