Merge branch 'main' into 'stg'

Main

See merge request cloud-mediate/mediate-manage-web!11
This commit is contained in:
刘翕 2025-02-11 08:27:15 +00:00
commit b898d4b1ec
9 changed files with 81 additions and 14 deletions

View File

@ -54,7 +54,7 @@
<div class="flex-row"> <div class="flex-row">
<el-button size="small" type="primary" @click="handleImport">增量导入案件</el-button> <el-button size="small" type="primary" @click="handleImport">增量导入案件</el-button>
<el-button size="small" :disabled="tableData.length==0 ? true: false" @click="handleExport">导出错误案件</el-button> <el-button size="small" :disabled="tableData.length==0 ? true: false" @click="handleExport">导出错误案件</el-button>
<!-- <el-button size="small" @click="handleDelete">清空错误案件</el-button> --> <el-button size="small" @click="handleDelete">清空错误案件</el-button>
</div> </div>
</div> </div>
@ -165,7 +165,7 @@ import cpkapi from "@/services/casePackageManagement";
}, },
// //
getCasepkgError_headers(){ getCasepkgError_headers(){
cpkapi.postcase_pkg_error_headers({id:this.queryParam.pkgId}).then(res => { cpkapi.postcase_pkg_error_headers({id:this.queryParam.id}).then(res => {
if (!res.code) { if (!res.code) {
this.Error_headers = res; this.Error_headers = res;
} }
@ -197,7 +197,18 @@ import cpkapi from "@/services/casePackageManagement";
}) })
}, },
handleDelete(){ handleDelete(){
this.$confirm("此操作将清空此案件包错误案件, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
if(!this.$clickThrottle()) { return }//
cpkapi.postcase_pkg_error_clean({ id: this.queryParam.id }).then((res) => {
this.$message.success("清空此案件包错误案件成功");
this.getCasepkgList()
});
}).catch(() => {});
}, },
// //
hanldeReset() { hanldeReset() {

View File

@ -75,8 +75,8 @@
<el-table-column label="操作" width="160"> <el-table-column label="操作" width="160">
<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)">进入外呼队列</el-button> <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" @click="handleBackCase(scope)">取消</el-button> <!-- <el-button size="mini" v-if="scope.row.notCalledCount != 0" @click="handleBackCase(scope)">取消</el-button> -->
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@ -188,7 +188,7 @@ import { size } from "lodash";
}, },
// //
handleEnterqueue(row){ handleEnterqueue(row){
this.$router.push({path: '/mediation-page', query: {sourcePage: 'home', caseId: row.caseId}})
} }
} }
}; };

View File

@ -14,11 +14,42 @@
<SideMenu/> <SideMenu/>
</div> </div>
<div class="mr-8 flex-row cursor-pointer layou-header-right-box" @mouseover="showInfo=true" style=""> <div class="flex-row align-items-center">
<!-- <el-badge :value="1" :max="99" class="item"> <!-- <el-badge :value="1" :max="99" class="item">
<el-avatar size="medium" icon="el-icon-user-solid"></el-avatar> <el-avatar size="medium" icon="el-icon-user-solid"></el-avatar>
</el-badge> --> </el-badge> -->
<el-avatar size="medium" :src="userInfo.headUrl?userInfo.headUrl:defaultHeadUrl"></el-avatar> <div class="mr-8 cursor-pointer layou-header-right-box " @mouseover="showInfo=true">
<el-avatar size="medium" :src="userInfo.headUrl?userInfo.headUrl:defaultHeadUrl" ></el-avatar>
</div>
<el-dropdown @command="handleCommand">
<span class="el-dropdown-link" style="color: white;">
{{agentStatusName}}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="free">空闲</el-dropdown-item>
<el-dropdown-item command="busy">忙碌</el-dropdown-item>
<el-dropdown-item command="arrange">话后整理</el-dropdown-item>
<el-dropdown-item command="notReady">示忙</el-dropdown-item>
<el-dropdown-item command="rest">小休</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<!-- <div class="flex-row justify-content-between align-items-center border-t-solid-lighter-1 p-16 cursor-pointer">
<div class="f16 color-text-regular">坐席状态</div>
<div class="f16 color-text-secondary">
<el-dropdown @click="handleClick">
<span class="el-dropdown-link">
{{agentStatusName}}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="free">空闲</el-dropdown-item>
<el-dropdown-item command="busy">忙碌</el-dropdown-item>
<el-dropdown-item command="arrange">话后整理</el-dropdown-item>
<el-dropdown-item command="notReady">示忙</el-dropdown-item>
<el-dropdown-item command="rest">小休</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div> -->
</div> </div>
@ -44,6 +75,7 @@
<div class="f16 color-text-regular">个人信息</div> <div class="f16 color-text-regular">个人信息</div>
<div class="f16 color-text-secondary">查看信息<i class="el-icon-arrow-right"></i></div> <div class="f16 color-text-secondary">查看信息<i class="el-icon-arrow-right"></i></div>
</div> </div>
<div class="border-t-solid-lighter-1 p-16 f16 color-1960F4 text-center cursor-pointer" <div class="border-t-solid-lighter-1 p-16 f16 color-1960F4 text-center cursor-pointer"
@click="handleLoginOut()">退出登录 @click="handleLoginOut()">退出登录
</div> </div>
@ -255,6 +287,9 @@ export default {
}, },
userInfo: {}, userInfo: {},
defaultHeadUrl: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',// defaultHeadUrl: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',//
agentStatus: 'free',
agentStatusName: '空闲',
} }
}, },
mounted() { mounted() {
@ -327,6 +362,21 @@ export default {
}) })
},
handleCommand(command) {
console.log(command)
this.agentStatus = command
if (command === 'free') {
this.agentStatusName = '空闲'
} else if (command === 'busy') {
this.agentStatusName = '忙碌'
} else if (command === 'arrange') {
this.agentStatusName = '话后整理'
} else if (command === 'notReady') {
this.agentStatusName = '示忙'
} else if (command === 'rest') {
this.agentStatusName = '小休'
}
}, },
// //
handleClose() { handleClose() {

View File

@ -25,7 +25,7 @@
<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.deadline" <el-select v-model="ObjectInfo.deadNum"
placeholder="请选择签字有效期限" class="width100"> placeholder="请选择签字有效期限" class="width100">
<el-option label="1天" value="1"></el-option> <el-option label="1天" value="1"></el-option>
<el-option label="2天" value="2"></el-option> <el-option label="2天" value="2"></el-option>
@ -76,6 +76,7 @@ import api from "@/services/caseManagement";
ObjectInfo:{ ObjectInfo:{
fileTypes:['MEDIATE_NOTE','MEDIATE_APPLICATION','CONFIRMATION_OF_ADDRESS'], fileTypes:['MEDIATE_NOTE','MEDIATE_APPLICATION','CONFIRMATION_OF_ADDRESS'],
deadline:'1', deadline:'1',
deadNum:'1',
caseIdList:[] caseIdList:[]
}, },
tableData:[], tableData:[],
@ -104,7 +105,7 @@ import api from "@/services/caseManagement";
let currentDate = new Date(); let currentDate = new Date();
// //
const nextDate = currentDate const nextDate = currentDate
currentDate.setDate(currentDate.getDate() + (this.ObjectInfo.deadline*1)) currentDate.setDate(currentDate.getDate() + (this.ObjectInfo.deadNum*1))
const year = nextDate.getFullYear(); const year = nextDate.getFullYear();
const month = (nextDate.getMonth() + 1).toString().padStart(2, '0'); const month = (nextDate.getMonth() + 1).toString().padStart(2, '0');
const day = nextDate.getDate().toString().padStart(2, '0'); const day = nextDate.getDate().toString().padStart(2, '0');

View File

@ -244,6 +244,7 @@ import api from "@/services/caseManagement";
}) })
}, },
async getpreviewfull(fileList) { async getpreviewfull(fileList) {
this.ProofList = []
for (const item of fileList) { for (const item of fileList) {
try { try {
item.previewUrl = await this.$fetchApi.viewFullFile({path: item.proofUrl}) item.previewUrl = await this.$fetchApi.viewFullFile({path: item.proofUrl})

View File

@ -61,7 +61,7 @@
v-for="(item,index) in litigantsOptions" v-for="(item,index) in litigantsOptions"
:key="index" :key="index"
:label="item.name+ ' ' +'('+ item.phone +')'" :label="item.name+ ' ' +'('+ item.phone +')'"
:value="item.identity" :value="item.phone"
:disabled="(item.identity == '' || item.identity == null) ? true :false" :disabled="(item.identity == '' || item.identity == null) ? true :false"
:title="(item.identity == '' || item.identity == null) ? '没有证件号码不能选择' :false"> :title="(item.identity == '' || item.identity == null) ? '没有证件号码不能选择' :false">
</el-option> </el-option>
@ -263,7 +263,7 @@ export default {
this.$refs.ruleFormRepayment.validate((valid) => { this.$refs.ruleFormRepayment.validate((valid) => {
if (valid) { if (valid) {
const resultArr = this.litigantsOptions const resultArr = this.litigantsOptions
.filter(item => this.repaymentObj.litigants.includes(item.identity)) .filter(item => this.repaymentObj.litigants.includes(item.phone))
.map(({id, name, phone, identity}) => ({id, name, phone, identity})); .map(({id, name, phone, identity}) => ({id, name, phone, identity}));
this.repaymentObj.caseId = this.eventDialog.caseId; this.repaymentObj.caseId = this.eventDialog.caseId;
// console.log(resultArr, '---resultArr' , this.repaymentObj) // console.log(resultArr, '---resultArr' , this.repaymentObj)

View File

@ -32,7 +32,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" @click="makeCall(item)"><i class="el-icon-phone"></i> 电话</a> <a class="mr-24 cursor-pointer" v-if="item.phone !=''" @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"

View File

@ -47,6 +47,10 @@ const caseManagementApi = {
postcase_pkg_error_down: data => { postcase_pkg_error_down: data => {
return service.service.post(`${apiMediate}case_pkg/imports/error/down`, data) return service.service.post(`${apiMediate}case_pkg/imports/error/down`, data)
}, },
// 清理案件包导入错误数据
postcase_pkg_error_clean: data => {
return service.service.post(`${apiMediate}case_pkg/imports/error/clean`, data)
},

View File

@ -198,7 +198,7 @@
console.log('错误处理----code:', code, '----msg----:', msg) console.log('错误处理----code:', code, '----msg----:', msg)
Message.closeAll() Message.closeAll()
// todo 不知道能否预防多个请求都返回登录失效的情况提示只有1个 // todo 不知道能否预防多个请求都返回登录失效的情况提示只有1个
if((code == 9401 || code == 9403) && store.state.token) { if(code === 9401 || code === 9403) {
// 登录过期&token存在此时有提示 // 登录过期&token存在此时有提示
Message({ message: msg, type: "error",customClass:'messageZindex' }) Message({ message: msg, type: "error",customClass:'messageZindex' })
store.state.token = ''; store.state.token = '';