Merge branch 'main' into 'stg'

Main

See merge request cloud-mediate/mediate-manage-web!27
This commit is contained in:
刘翕 2025-02-17 09:14:05 +00:00
commit af55d18e35
11 changed files with 65 additions and 27 deletions

View File

@ -188,7 +188,7 @@ import { size } from "lodash";
}, },
// //
handleEnterqueue(row){ handleEnterqueue(row){
this.$router.push({path: '/mediation-page', query: {sourcePage: 'home'}}) this.$router.push({path: '/mediation-page', query: {sourcePage: 'home', queue: true}})
} }
} }
}; };

View File

@ -66,13 +66,14 @@
<el-table-column prop="bookingEndTime" label="预约结束时间" show-overflow-tooltip></el-table-column> <el-table-column prop="bookingEndTime" 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">
<span> <span v-if="$util.getTimeContrast(scope.row.bookingEndTime)">
{{ scope.row.status.code == 0 ? '未开始': '' }} {{ scope.row.status.code == 0 ? '未开始': '' }}
{{ scope.row.status.code == 1 ? '进行中': '' }} {{ scope.row.status.code == 1 ? '进行中': '' }}
{{ scope.row.status.code == 2 ? '已结束': '' }} {{ scope.row.status.code == 2 ? '已结束': '' }}
{{ scope.row.status.code == 3 ? '视频失败': '' }} {{ scope.row.status.code == 3 ? '视频失败': '' }}
{{ scope.row.status.code == 4 ? '已取消': '' }} {{ scope.row.status.code == 4 ? '已取消': '' }}
</span> </span>
<span v-else>已过期</span>
</template> </template>
</el-table-column> </el-table-column>
@ -86,7 +87,7 @@
<el-table-column label="操作" width="240"> <el-table-column label="操作" width="240">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="flex-row align-items-center"> <div class="flex-row align-items-center" v-if="$util.getTimeContrast(scope.row.bookingEndTime)">
<!-- 只有进行中 快开始的时候才能进入视频间 --> <!-- 只有进行中 快开始的时候才能进入视频间 -->
<el-button size="mini" v-if="scope.row.status.code == 0 || scope.row.status.code == 1 " @click="handleDelete(scope.row)">进入视频间</el-button> <el-button size="mini" v-if="scope.row.status.code == 0 || scope.row.status.code == 1 " @click="handleDelete(scope.row)">进入视频间</el-button>
<el-button size="mini" v-if="scope.row.status.code == 0" @click="VideoDialog={id:scope.row.id, bookingTime:scope.row.bookingTime}">修改</el-button> <el-button size="mini" v-if="scope.row.status.code == 0" @click="VideoDialog={id:scope.row.id, bookingTime:scope.row.bookingTime}">修改</el-button>

View File

@ -186,7 +186,7 @@
<!-- 联系人信息 --> <!-- 联系人信息 -->
<div v-if="leftActive == 2" class="case-contact-person"> <div v-if="leftActive == 2" class="case-contact-person">
<contactPerson :caseId="caseId" @startOutboundCall="startOutboundCall" /> <contactPerson :caseId="caseId" @startOutboundCall="startOutboundCall" @updateCaseInfoById="updateCaseInfoById" />
</div> </div>
@ -448,6 +448,9 @@ export default {
// } // }
}, },
methods: { methods: {
updateCaseInfoById(){
this.$emit('updateCaseInfoById');
},
handlerMouseenter(val) { handlerMouseenter(val) {
this.leftActive = val this.leftActive = val
if (val !== 1) this.singlesmsvisible = false if (val !== 1) this.singlesmsvisible = false

View File

@ -113,7 +113,7 @@
</div> </div>
<!-- 中间数据 --> <!-- 中间数据 -->
<LayoutContentNew ref="layoutContent" :caseId="caseId" @startOutboundCall="startOutboundCall" /> <LayoutContentNew ref="layoutContent" :caseId="caseId" @startOutboundCall="startOutboundCall" @updateCaseInfoById="getCaseInfoById" />
</div> </div>
@ -228,7 +228,7 @@
v-model="singlejointlyvisible" v-model="singlejointlyvisible"
title="案件协办" title="案件协办"
trigger="click"> trigger="click">
<singleJointlyPopover :caseId="caseId" :singlejointlyvisible.sync="singlejointlyvisible" @handleSubmit="getCaseInfoById()"/> <singleJointlyPopover :caseId="caseId" :assistMediatorId="baseInfo.assistMediatorId" :singlejointlyvisible.sync="singlejointlyvisible" @handleSubmit="getCaseInfoById()"/>
<span slot="reference" class="flex-row justify-content-between align-items-center cursor-pointer bottom-case-btn"> <span slot="reference" class="flex-row justify-content-between align-items-center cursor-pointer bottom-case-btn">
<i class="f24 el-icon-s-management color-4E5969"></i> <i class="f24 el-icon-s-management color-4E5969"></i>
<a class="pl-4 f14">协办</a> <a class="pl-4 f14">协办</a>
@ -487,6 +487,7 @@ export default {
// //
async getCaseInfoById() { async getCaseInfoById() {
// this.$loading(true) // this.$loading(true)
this.sendPhones = []
await api.getCaseInfoById(this.caseId).then(res => { await api.getCaseInfoById(this.caseId).then(res => {
if (!res.code) { if (!res.code) {
this.baseInfo = res this.baseInfo = res
@ -510,9 +511,11 @@ export default {
} }
} }
// this.$loading.close() this.$loading().close();
this.eventDialog.caseId = this.caseId this.eventDialog.caseId = this.caseId
// this.getmediate_record() // this.getmediate_record()
}).catch(err => {
this.$loading().close();
}) })
}, },
// //
@ -523,6 +526,11 @@ export default {
if(this.queue || this.index === 0) return if(this.queue || this.index === 0) return
this.index-- this.index--
this.caseId = String(this.queueList[this.index].caseId) this.caseId = String(this.queueList[this.index].caseId)
this.$loading({
lock: true,
text: '加载中...',
target: 'body'
});
this.getCaseInfoById() this.getCaseInfoById()
// api.getFrontCaseById({id: this.caseId}).then(res => { // api.getFrontCaseById({id: this.caseId}).then(res => {
// if (!res.code) { // if (!res.code) {
@ -533,7 +541,7 @@ export default {
}, },
// //
getNextCaseById() { getNextCaseById() {
if (!this.$clickThrottle()) { if (!this.$clickThrottle(1000)) {
return return
}// }//
if(this.queue || this.index >= this.queueList.length - 1) return if(this.queue || this.index >= this.queueList.length - 1) return
@ -541,6 +549,11 @@ export default {
this.caseId = String(this.queueList[this.index].caseId) this.caseId = String(this.queueList[this.index].caseId)
console.log('下一个案件id: ' + this.caseId, this.index, this.queueList) console.log('下一个案件id: ' + this.caseId, this.index, this.queueList)
this.$loading({
lock: true,
text: '加载中...',
target: 'body'
});
this.getCaseInfoById() this.getCaseInfoById()
// api.getNextCaseById({id: this.caseId}).then(res => { // api.getNextCaseById({id: this.caseId}).then(res => {

View File

@ -75,11 +75,12 @@
<span class="color-86909C mt-8 pt12-pb10">备注说明<a>{{ proofitem.remark }}</a></span> <span class="color-86909C mt-8 pt12-pb10">备注说明<a>{{ proofitem.remark }}</a></span>
</div> </div>
<div class="mt-8"> <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="凭证效验"
trigger="click"> trigger="click"
v-model="proofitem.visible">
<el-form class="mt-8" :ref="`ruleFormEffect${index}`" <el-form class="mt-8" :ref="`ruleFormEffect${index}`"
:model="proofitem" :model="proofitem"
:rules="rulesClientRepayment" :rules="rulesClientRepayment"
@ -110,7 +111,8 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label=""> <el-form-item label="">
<el-button type="primary" @click="handleSubmitEffect(proofitem,('ruleFormEffect'+index))" size="small">保存</el-button> <el-button type="primary" @click="handleSubmitEffect(proofitem,('ruleFormEffect'+index),index)" size="small">保存</el-button>
<el-button type="primary" @click="proofitem.visible = false" size="small">取消</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="reference" class="color-86909C cursor-pointer"><i class="el-icon-medal"></i>&nbsp;效验</span> <span slot="reference" class="color-86909C cursor-pointer"><i class="el-icon-medal"></i>&nbsp;效验</span>
@ -235,12 +237,7 @@ import api from "@/services/caseManagement";
getProofList(){ getProofList(){
api.gettraceProof_list({caseId:this.eventDialog.caseId}).then(async res => { api.gettraceProof_list({caseId:this.eventDialog.caseId}).then(async res => {
if(!res.code){ if(!res.code){
// this.ProofList = res
// this.ProofList.forEach(item =>{
// item.mediaPath = [item.proofUrl]
// })
await this.getpreviewfull(res) await this.getpreviewfull(res)
console.log(this.ProofList,'this.ProofList')
} }
}) })
}, },
@ -250,6 +247,7 @@ import api from "@/services/caseManagement";
try { try {
item.previewUrl = await this.$fetchApi.viewFullFile({path: item.proofUrl}) item.previewUrl = await this.$fetchApi.viewFullFile({path: item.proofUrl})
item.mediaPath = [item.proofUrl] item.mediaPath = [item.proofUrl]
item.visible = false
this.ProofList.push(item); this.ProofList.push(item);
} catch (error) { } catch (error) {
console.error(`调用接口失败,错误:`, error); console.error(`调用接口失败,错误:`, error);
@ -270,14 +268,14 @@ import api from "@/services/caseManagement";
this.fileList = [{url: proofitem.proofUrl,fileName:'上传'}] this.fileList = [{url: proofitem.proofUrl,fileName:'上传'}]
}, },
// //
handleSubmitEffect(proofitem,formName){ handleSubmitEffect(proofitem,formName,indexnum){
this.$refs[formName][0].validate((valid) => { this.$refs[formName][0].validate((valid) => {
if (valid){ if (valid){
proofitem.createAt =undefined proofitem.createAt =undefined
proofitem.createBy =undefined proofitem.createBy =undefined
proofitem.delFlag =undefined proofitem.delFlag =undefined
proofitem.planId =undefined proofitem.planId =undefined
proofitem.status =undefined // proofitem.status =undefined
proofitem.updateAt =undefined proofitem.updateAt =undefined
proofitem.updateBy =undefined proofitem.updateBy =undefined
proofitem.uploaderName =undefined proofitem.uploaderName =undefined
@ -285,6 +283,10 @@ import api from "@/services/caseManagement";
proofitem.proofUrl =undefined proofitem.proofUrl =undefined
api.gettraceProof_valid(proofitem).then(res => { api.gettraceProof_valid(proofitem).then(res => {
if(!res.code){ if(!res.code){
this.ProofList.forEach((item,index) =>{
if(index == indexnum){item.visible = false}
})
this.getProofList() this.getProofList()
} }
}) })

View File

@ -24,14 +24,21 @@
<div class="mr-8 color-000 f-weight600 f16"> <div class="mr-8 color-000 f-weight600 f16">
{{item.bookingTime}} {{item.bookingTime}}
</div> </div>
<el-tag size="small" :type="queryCondition.type?'success':''">{{ queryCondition.type ? '已视频' : '待视频' }}</el-tag>
<el-tag v-if="$util.getTimeContrast(item.bookingEndTime)" size="small" :type="queryCondition.type?'success':''">{{ queryCondition.type ? '已视频' : '待视频' }}</el-tag>
<el-tag v-else size="small" type="warning">已过期</el-tag>
</div> </div>
<div class="flex-row align-items-center"> <div class="flex-row align-items-center">
<div class="f16 mr-8 cursor-pointer"
v-if="item.roomId && item.sdkAppId && item.userId && item.userSig && (item.status.code === 0 || item.status.code === 1)" <div v-if="$util.getTimeContrast(item.bookingEndTime)" >
@click="handleVideoCall(item)"> <div class="f16 mr-8 cursor-pointer"
<i class="el-icon-video-camera"></i> v-if="item.roomId && item.sdkAppId && item.userId && item.userSig && (item.status.code === 0 || item.status.code === 1)"
@click="handleVideoCall(item)">
<i class="el-icon-video-camera"></i>
</div>
</div> </div>
<div class="f16 mr-8 cursor-pointer" <div class="f16 mr-8 cursor-pointer"
v-if="item.status.code === 0 && timeComparison(item.bookingTime)" v-if="item.status.code === 0 && timeComparison(item.bookingTime)"
@click="VideoEditDialog={id:item.id, bookingTime:item.bookingTime}"> @click="VideoEditDialog={id:item.id, bookingTime:item.bookingTime}">

View File

@ -50,7 +50,7 @@
</div> </div>
</el-card> </el-card>
<contactPersonDialog v-if="contactAddObj" :eventDialog.sync="contactAddObj" /> <contactPersonDialog v-if="contactAddObj" :eventDialog.sync="contactAddObj" @updateCaseInfoById="updateCaseInfoById"/>
</div> </div>
</template> </template>
@ -83,6 +83,9 @@ export default {
this.handleTab('被申请人') this.handleTab('被申请人')
}, },
methods: { methods: {
updateCaseInfoById(){
this.$emit('updateCaseInfoById');
},
handleTab(item) { handleTab(item) {
this.personnelTypeActive = item; this.personnelTypeActive = item;
this.getList(); this.getList();

View File

@ -255,6 +255,9 @@ export default {
this.$parent.getList(); this.$parent.getList();
this.handleClose(); this.handleClose();
this.$message.success("操作成功"); this.$message.success("操作成功");
this.$emit('updateCaseInfoById');
this.$parent.getCaseInfoById();
}); });
} }
}); });

View File

@ -87,7 +87,7 @@
<div class="hx-1-content" v-if="rightActive == 1"> <div class="hx-1-content" v-if="rightActive == 1">
<div class="f12 pl-16 pt-16 pb-6">人物画像</div> <div class="f12 pl-16 pt-16 pb-6">人物画像</div>
<el-scrollbar :style="'height:'+`${CommunicationcontentHeight}`+'px'"> <el-scrollbar :style="'height:'+`${CommunicationcontentHeight}`+'px'">
<div class="p-16" :class="portraitInfo.gender == 'Male' ? 'personghximg':'personghximgw'"> <div class="p-16" :class="(portraitInfo.gender == 'Male'||portraitInfo.gender == '') ? 'personghximg':'personghximgw'">
<!-- 基本信息 --> <!-- 基本信息 -->
<div class="position_info character-info theme-blue"> <div class="position_info character-info theme-blue">
<div class="character-info-title">基本信息</div> <div class="character-info-title">基本信息</div>
@ -97,7 +97,7 @@
</div> </div>
<div class="character-info-details flex-row"> <div class="character-info-details flex-row">
<div class="character-info-details-label">性别</div> <div class="character-info-details-label">性别</div>
<div class="character-info-details-text">{{portraitInfo.gender == 'Male' ?'男':'女'}}</div> <div class="character-info-details-text">{{(portraitInfo.gender == 'Male' || portraitInfo.gender == '') ?'男':'女'}}</div>
</div> </div>
<div class="character-info-details flex-row"> <div class="character-info-details flex-row">
<div class="character-info-details-label">电话</div> <div class="character-info-details-label">电话</div>
@ -217,7 +217,7 @@
<div ref="targetPerson" class="f16 mt-16"><a class="dot"></a>身份信息</div> <div ref="targetPerson" class="f16 mt-16"><a class="dot"></a>身份信息</div>
<div class="person-info flex-column mt-16"> <div class="person-info flex-column mt-16">
<span>姓名<a class="color-000">{{portraitInfo.name}}</a></span> <span>姓名<a class="color-000">{{portraitInfo.name}}</a></span>
<span>性别<a class="color-000">{{portraitInfo.gender == 'Male' ? '男':'女'}}</a></span> <span>性别<a class="color-000">{{(portraitInfo.gender == 'Male' || portraitInfo.gender == '') ? '男':'女'}}</a></span>
<span>年龄<a class="color-000">{{portraitInfo.age}}</a></span> <span>年龄<a class="color-000">{{portraitInfo.age}}</a></span>
<span>手机号码<a class="color-000">{{portraitInfo.phoneNumber}}</a></span> <span>手机号码<a class="color-000">{{portraitInfo.phoneNumber}}</a></span>
<span>身份证号<a class="color-000">{{portraitInfo.idCardNumber}}</a></span> <span>身份证号<a class="color-000">{{portraitInfo.idCardNumber}}</a></span>

View File

@ -40,6 +40,10 @@ import api from "@/services/caseManagement";
type: String, type: String,
default: () => {}, default: () => {},
}, },
assistMediatorId: {
type: String,
default: () => {},
},
}, },
data() { data() {
return { return {
@ -57,6 +61,7 @@ import api from "@/services/caseManagement";
}; };
}, },
mounted () { mounted () {
this.ObjectInfo.assistMediatorId = this.assistMediatorId
this.getuserList() this.getuserList()
}, },
methods: { methods: {

View File

@ -374,6 +374,7 @@ const util = {
// 和当前时间对比,判断是否大于当前时间 // 和当前时间对比,判断是否大于当前时间
getTimeContrast(timeString) { getTimeContrast(timeString) {
const timedate = moment(timeString); const timedate = moment(timeString);
console.log(timedate > new Date(),'timedate > new Date()')
return timedate > new Date() return timedate > new Date()
}, },