案件列表相关

This commit is contained in:
liuxi 2024-12-04 18:19:00 +08:00
parent 40e5656078
commit 293ec69226
7 changed files with 312 additions and 259 deletions

View File

@ -17,9 +17,8 @@
<div class="flex-row align-items-center"> <div class="flex-row align-items-center">
<div class="mr-8 flex-shrink-0">区域</div> <div class="mr-8 flex-shrink-0">区域</div>
<div class="width100"> <div class="width100">
<el-select v-model="deptIds" <el-select v-model="deptId"
size="medium" size="medium"
multiple
clearable placeholder="请选择区域" clearable placeholder="请选择区域"
@change="handleChangeDept" @change="handleChangeDept"
class="width100"> class="width100">
@ -38,7 +37,7 @@
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
<el-scrollbar class="bor bg-color-light min-height250"> <el-scrollbar class="bor bg-color-light min-height350">
<div class="department-wrap"> <div class="department-wrap">
<div v-for="(item,inx) in peopleList" :key="inx" class="department-wrap-list"> <div v-for="(item,inx) in peopleList" :key="inx" class="department-wrap-list">
<div class="department-dept"> <div class="department-dept">
@ -60,28 +59,18 @@
label-width="120px" label-width="120px"
class="demo-ruleForm"> class="demo-ruleForm">
<el-row :gutter="20" type="flex" align="middle"> <el-row :gutter="20" type="flex" align="middle">
<el-col :span="12"> <el-col :span="24">
<el-form-item label="选择开始日期" prop="planStartTime"> <el-form-item label="分配方式" prop="dispatchType" label-width="80px">
<el-date-picker <template>
v-model="queryParam.planStartTime" <el-radio v-model="queryParam.dispatchType" :label="1">平均分配</el-radio>
type="date" <el-radio v-model="queryParam.dispatchType" :label="2">调解中案件量最少</el-radio>
placeholder="选择日期" <el-radio v-model="queryParam.dispatchType" :label="3">当天分案量最少</el-radio>
@change="handleChangeDate" <el-radio v-model="queryParam.dispatchType" :label="4">当月分案量最少</el-radio>
> <el-radio v-model="queryParam.dispatchType" :label="5">同案由调解成功率最高</el-radio>
</el-date-picker> </template>
</el-form-item> </el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="选择结束日期" prop="planEndTime">
<el-date-picker
v-model="queryParam.planEndTime"
type="date"
placeholder="选择日期"
@change="handleChangeDate"
>
</el-date-picker>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
</div> </div>
@ -98,6 +87,7 @@
</template> </template>
<script> <script>
import api from "@/services/caseManagement"; import api from "@/services/caseManagement";
import apipack from "@/services/casePackageManagement";
export default { export default {
components: { components: {
@ -112,49 +102,35 @@ import api from "@/services/caseManagement";
}, },
data() { data() {
return { return {
deptIds:[],//id deptId:[],//id
queryParam:{ queryParam:{
planStartTime:'', id:'',//ID
planEndTime:'', dispatchType:1,//12345
}, },
userList:[], userList:[],
rulesClient: { rulesClient: {
planStartTime: [ dispatchType: [
{ required: true, message: '请选择开始日期', trigger: 'change',}, { required: true, message: '请选择分案方式', trigger: 'change',},
], ],
planEndTime: [
{ required: true, message: '请选择结束日期', trigger: 'change',},
],
}, },
peopleList:[ peopleList:[
{departmentId:1,departmentName:'调解一部12人', {deptId:1,name:'调解一部',count:10,
child:[ values:[
{id:1,name:'张三' }, {id:1,deptId:1,realName:'张三' },
{id:2,name:'张三' }, {id:2,deptId:1,realName:'张三' },
{id:3,name:'张三' }, {id:3,deptId:1,realName:'张三' },
{id:4,name:'张三' }, {id:4,deptId:1,realName:'张三' },
{id:5,name:'里面' }, {id:5,deptId:1,realName:'里面' },
] ]
}, }
{departmentId:2,departmentName:'调解二部12人',
child:[
{id:1,name:'张三' },
{id:2,name:'张三' },
{id:3,name:'张三' },
{id:4,name:'张三' },
{id:5,name:'里面' },
]
},
], ],
departmentOptions:[],// departmentOptions:[],//
isIndeterminate:true,
checkedAll:[], checkedAll:[],
chooseChecked:[], chooseChecked:[],
}; };
}, },
mounted () { mounted () {
// console.log(this.caseAllocationDialog.choosecaseIds,'choosecaseIds')
this.getDeptList();// this.getDeptList();//
}, },
methods: { methods: {
@ -164,194 +140,179 @@ import api from "@/services/caseManagement";
companyId: this.$store.state.userinfo.companyId, companyId: this.$store.state.userinfo.companyId,
current: 1, current: 1,
size: 500, size: 500,
pid:0
} }
api.getDeptList(data).then(res => { api.getDeptList(data).then(res => {
if (!res.code) { if (!res.code) {
this.departmentOptions = res.records; this.departmentOptions = res.records;
this.deptIds = [this.departmentOptions[0].id] this.deptId = this.departmentOptions[0].id
this.getUserByDeptList() this.getByDeptList()
} }
}) })
}, },
handleChangeDept(e){ handleChangeDept(e){
this.checkedAll=[] this.checkedAll=[]
this.chooseChecked=[] this.chooseChecked=[]
// console.log(this.deptIds,'this.deptIds') this.getByDeptList()
if(this.deptIds.length>0)this.getUserByDeptList()
this.peopleList=[] this.peopleList=[]
}, },
// id // id
getUserByDeptList(){ getByDeptList(){
let data = { api.getDeptList({companyId:this.$store.state.userinfo.companyId,current:1,size:500,pid:this.deptId}).then(res => {
ids:this.deptIds if (!res.code)
} {
api.getUserByDeptList(data).then(res => { let deptList = []
if (!res.code) { res.records.forEach(item =>{
// this.peopleList = res; let userlist = []
let selectDept=[]; api.getUserByDeptList({ids:[item.id]}).then(res => {
this.deptIds.forEach((dept)=>{
this.departmentOptions.forEach((item)=>{ res.forEach(item =>{
if(item.id == dept){ userlist.push({
selectDept.push(item)
}
})
})
// console.log('selectDept',selectDept)
this.peopleList =[];
let list = []
selectDept.forEach((opt)=>{
let values= [];
res.forEach((item)=>{
if(item.deptId == opt.id){
values.push({
id:item.id, id:item.id,
realName:item.realName, realName:item.realName,
checked:false checked:false
}) })
})
}
}) })
list.push({
deptId:opt.id, deptList.push({
name:opt.name, deptId:item.id,
count:opt.count, name:item.name,
count:item.count,
checked:false, checked:false,
values:values values:userlist
}) })
}) })
this.peopleList = list this.peopleList = deptList
// console.log('',this.peopleList)
} }
}) })
}, },
handleCheckChange(type,a=0,chooseItem,deptId,event){ handleCheckChange(type,a=0,chooseItem,deptId,event){
// console.log(chooseItem,event,a,'this.peopleList') // console.log(chooseItem,event,a,'this.peopleList')
let self = this let self = this
if(type==2){// if(type==2){//
let index = 0; let index = 0;
self.peopleList[a].values.map((item)=>{ self.peopleList[a].values.map((item)=>{
if(self.checkedAll.indexOf(item.id)>-1){ if(self.checkedAll.indexOf(item.id)>-1){
index+=1 index+=1
}
})
if(index>0){
if(self.checkedAll.indexOf(self.peopleList[a].deptId)<0){
self.checkedAll.push(self.peopleList[a].deptId)
}
}else{
if(self.checkedAll.indexOf(self.peopleList[a].deptId)>0){
self.checkedAll.splice(self.checkedAll.indexOf(self.peopleList[a].deptId),1)
}
} }
})
if(event) if(index>0){
{ if(self.checkedAll.indexOf(self.peopleList[a].deptId)<0){
if(this.chooseChecked.length==0){self.chooseChecked.push({deptId:deptId,child:[]})} self.checkedAll.push(self.peopleList[a].deptId)
this.chooseChecked.forEach((item,index) => {
let haveDeptId = self.chooseChecked.find(citem=>{
return citem.deptId===deptId
})
if(haveDeptId != undefined)
{
if(item.deptId==deptId)
{
item.child.push({deptId:deptId,id:chooseItem.id,realName:chooseItem.realName})
}
}
else
{
self.chooseChecked.push({deptId:deptId,child:[{deptId:deptId,id:chooseItem.id,realName:chooseItem.realName}]})
}
});
} }
else }else{
{ if(self.checkedAll.indexOf(self.peopleList[a].deptId)>0){
this.chooseChecked.forEach((item,index) => { self.checkedAll.splice(self.checkedAll.indexOf(self.peopleList[a].deptId),1)
item.child.forEach((itemchild,index) => {
if(itemchild.id==chooseItem.id)
{
item.child.splice(index,1)
}
});
});
} }
}
let childnum = this.chooseChecked.find(item=>{ if(event)
return item.deptId === deptId {
}).child.length; if(this.chooseChecked.length==0){self.chooseChecked.push({deptId:deptId,child:[]})}
this.chooseChecked.forEach((item,index) => {
let allchildnum = this.peopleList.find(item=>{ let haveDeptId = self.chooseChecked.find(citem=>{
return item.deptId === deptId return citem.deptId===deptId
}).values.length; })
if(childnum != allchildnum)
{
if(self.checkedAll.indexOf(deptId)>-1){
self.checkedAll.splice(self.checkedAll.indexOf(deptId),1)
}
}
else
{
if(self.checkedAll.indexOf(deptId)<0){
self.checkedAll.push(deptId)
}
}
}else{
if(self.checkedAll.indexOf(self.peopleList[a].deptId)>-1){
self.peopleList[a].values.map((item)=>{
if(self.checkedAll.findIndex((n)=> n==item.id)<0){
self.checkedAll.push(item.id)
// self.checkedAll.push({id:item.id,realName:item.realName,deptId:self.peopleList[a].deptId})
}
})
}else{
self.peopleList[a].values.map((item)=>{
if(self.checkedAll.findIndex((n)=> n==item.id)>-1){
self.checkedAll.splice(self.checkedAll.findIndex((n)=> n==item.id),1)
}
})
}
let haveDeptId=self.chooseChecked.find(citem=>{
return citem.deptId === deptId
})
if(event)
{
if(haveDeptId == undefined)
{
let addchild=[]
self.peopleList.forEach((item,index) => {
if(item.deptId==deptId)
{
item.values.forEach((item,index) => {
addchild.push({deptId:deptId,id:item.id,realName:item.realName})
});
}
});
self.chooseChecked.push({deptId:deptId,child:addchild})
}
}
else
{
if(haveDeptId != undefined) if(haveDeptId != undefined)
{ {
self.chooseChecked.forEach((item,index) => { if(item.deptId==deptId)
if(item.deptId==deptId) {
{ item.child.push({deptId:deptId,id:chooseItem.id,realName:chooseItem.realName})
self.chooseChecked.splice(index,1) }
}
});
} }
else
{
self.chooseChecked.push({deptId:deptId,child:[{deptId:deptId,id:chooseItem.id,realName:chooseItem.realName}]})
}
});
}
else
{
this.chooseChecked.forEach((item,index) => {
item.child.forEach((itemchild,index) => {
if(itemchild.id==chooseItem.id)
{
item.child.splice(index,1)
}
});
});
}
let childnum = this.chooseChecked.find(item=>{
return item.deptId === deptId
}).child.length;
let allchildnum = this.peopleList.find(item=>{
return item.deptId === deptId
}).values.length;
if(childnum != allchildnum)
{
if(self.checkedAll.indexOf(deptId)>-1){
self.checkedAll.splice(self.checkedAll.indexOf(deptId),1)
} }
} }
// console.log(this.checkedAll,self.chooseChecked,'checkedAll') else
}, {
if(self.checkedAll.indexOf(deptId)<0){
self.checkedAll.push(deptId)
}
}
handleCheckedCitiesChange(){ }else{
if(self.checkedAll.indexOf(self.peopleList[a].deptId)>-1){
self.peopleList[a].values.map((item)=>{
if(self.checkedAll.findIndex((n)=> n==item.id)<0){
self.checkedAll.push(item.id)
// self.checkedAll.push({id:item.id,realName:item.realName,deptId:self.peopleList[a].deptId})
}
})
}else{
self.peopleList[a].values.map((item)=>{
if(self.checkedAll.findIndex((n)=> n==item.id)>-1){
self.checkedAll.splice(self.checkedAll.findIndex((n)=> n==item.id),1)
}
})
}
let haveDeptId=self.chooseChecked.find(citem=>{
return citem.deptId === deptId
})
if(event)
{
if(haveDeptId == undefined)
{
let addchild=[]
self.peopleList.forEach((item,index) => {
if(item.deptId==deptId)
{
item.values.forEach((item,index) => {
addchild.push({deptId:deptId,id:item.id,realName:item.realName})
});
}
});
self.chooseChecked.push({deptId:deptId,child:addchild})
}
}
else
{
if(haveDeptId != undefined)
{
self.chooseChecked.forEach((item,index) => {
if(item.deptId==deptId)
{
self.chooseChecked.splice(index,1)
}
});
}
}
}
// console.log(this.checkedAll,self.chooseChecked,'checkedAll')
}, },
handleSubmit(){ handleSubmit(){
if(!this.$clickThrottle()) { return }// if(!this.$clickThrottle()) { return }//
let chooseUser=[] let chooseUser=[]
@ -360,26 +321,26 @@ import api from "@/services/caseManagement";
chooseUser.push({deptId:item.deptId,id:item.id,realName:item.realName}) chooseUser.push({deptId:item.deptId,id:item.id,realName:item.realName})
}); });
}); });
if(chooseUser.length == 0)
if(chooseUser.length==0)
{ {
this.$message({ this.$message({
showClose: true, showClose: true,
message: '请先选择调解员!', message: '请先选择调解员!',
type: 'warning' type: 'warning'
}); });
return false
} }
this.$refs.ruleForm.validate((valid) => { this.$refs.ruleForm.validate((valid) => {
if(valid) { if(valid) {
let data = { let data = {
...this.queryParam, id:this.caseAllocationDialog.ObjectInfo.id,
dispatchType:this.queryParam.dispatchType,
userList:chooseUser userList:chooseUser
} }
api.dispatchCase(data).then(res => { apipack.postpkgdispatchCase(data).then(res => {
this.$message({ this.$message({
showClose: true, showClose: true,
message: '调解案件分配成功!', message: '调解案件分配成功!',
@ -427,6 +388,6 @@ import api from "@/services/caseManagement";
margin-bottom:0; margin-bottom:0;
} }
} }
.min-height250{min-height: 250px;} .min-height350{min-height: 350px;}
.department-dept ::v-deep .el-checkbox__label {color: $color-000000} .department-dept ::v-deep .el-checkbox__label {color: $color-000000}
</style> </style>

View File

@ -0,0 +1,43 @@
<template>
<div class="layout-content-wrap">
<div class="navigation-bar flex-row mb-16">
<img src="../../../assets/image/Link.png" height="22" alt="">
<a>/</a>
<a>案件包列表</a><a>/</a>
<a>案件列表</a><a>/</a>
<a>案件详情</a>
</div>
<div class="layout-tabs-content-box background-color-fff border-radius-4">
<div class="pt-8 border-b-solid-lighter-1">
</div>
<!-- table -->
<div class="pt-8">
</div>
</div>
</div>
</template>
<script>
import api from "@/services/caseManagement";
export default {
components: {
},
data() {
return {
}
},
}
</script>
<style scoped lang="scss">
.el-badge{
top: 3px;
}
</style>

View File

@ -24,7 +24,7 @@
<el-col :span="6"> <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.financialOrgName" <el-input v-model.trim="queryParam.pkgName"
clearable placeholder="请输入案件包名称" clearable placeholder="请输入案件包名称"
@keydown.enter.native="handleSearch"> @keydown.enter.native="handleSearch">
</el-input> </el-input>
@ -51,7 +51,7 @@
<el-col :span="6"> <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-select v-model="queryParam.resultStatus" <el-select v-model="queryParam.mediatorId"
clearable placeholder="请选择案件状态" clearable placeholder="请选择案件状态"
@keydown.enter.native="handleSearch" @keydown.enter.native="handleSearch"
class="width100"> class="width100">
@ -203,13 +203,10 @@
<div class="height-56 flex-row align-items-center justify-content-between"> <div class="height-56 flex-row align-items-center justify-content-between">
<div class="f22 color-text-primary">案件列表</div> <div class="f22 color-text-primary">案件列表</div>
<div class="flex-row"> <div class="flex-row">
<!-- <el-button size="small" @click="handleImport">导入</el-button>
<el-button size="small" @click="handleImport">导入</el-button> <el-button size="small" @click="handleBatchDelete">删除</el-button>-->
<el-button size="small" @click="handleBatchDelete">删除</el-button> <el-button size="small" @click="handleAddForm">案件办结</el-button>
<el-button size="small" @click="handleAddForm">新增</el-button> <el-button size="small" type="primary" @click="handleCaseAllocation">案件分配</el-button>
<el-button size="small" type="primary" @click="handleCaseAllocation">案件分配</el-button>
</div> </div>
</div> </div>
<div class="height-56 flex-row align-items-center justify-content-between" style="height: 22px;margin-left: 10px;margin-top: -10px;margin-bottom: 5px"> <div class="height-56 flex-row align-items-center justify-content-between" style="height: 22px;margin-left: 10px;margin-top: -10px;margin-bottom: 5px">
@ -230,7 +227,7 @@
<el-table-column prop="pkgName" label="操作" show-overflow-tooltip > <el-table-column prop="pkgName" label="操作" show-overflow-tooltip >
<template slot-scope="scope"> <template slot-scope="scope">
<div class="table-row flex-column justify-content-between"> <div class="table-row flex-column justify-content-between">
<div class="flex-row"> <div class="flex-row pt-8">
<span> <span>
<el-checkbox-group v-model="selectionData"> <el-checkbox-group v-model="selectionData">
<!-- 此处的label是复选框右边显示的值也是选中后的值如果要一行的数据直接使用row即可 --> <!-- 此处的label是复选框右边显示的值也是选中后的值如果要一行的数据直接使用row即可 -->
@ -238,72 +235,76 @@
<el-checkbox :disabled="scope.row.disabled" :key="scope.row.id" :label="scope.row.id"></el-checkbox> <el-checkbox :disabled="scope.row.disabled" :key="scope.row.id" :label="scope.row.id"></el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</span> </span>
<span class="f-weight500">被申请人{{scope.row.name}}</span> <span class="f-weight500 color-000 f16">被申请人{{scope.row.creditorName}}</span>
</div> </div>
<div class="flex-row justify-content-between table-span-one"> <div class="flex-row justify-content-between table-span-one">
<span class=""> <span class="">
<p>案件号</p> <p>案件号</p>
<p class="color-000">2321312313131</p> <p class="color-000">{{ scope.row.caseNo }}</p>
</span> </span>
<span> <span>
<p>申请人</p> <p>申请人</p>
<p class="color-000">2321312313131</p> <p class="color-000">{{ scope.row.financialOrgName }}</p>
</span> </span>
<span> <span>
<p>最新跟进时间</p> <p>最新跟进时间</p>
<p class="color-000">2321312313131</p> <p class="color-000">{{ scope.row.updateAt }}</p>
</span> </span>
<span> <span>
<p>逾期金额</p> <p>逾期金额()</p>
<p class="color-000">2321312313131</p> <p class="color-000">{{ scope.row.moneyAmount }}</p>
</span> </span>
<span> <span>
<p>委案日期</p> <p>委案日期</p>
<p class="color-000">2321312313131</p> <p class="color-000">{{ scope.row.createAt }}</p>
</span> </span>
<span> <span>
<p>所属调解员</p> <p>所属调解员</p>
<p class="color-000">2321312313131</p> <p class="color-000">{{ scope.row.mediatorName }}</p>
</span>
<span style=" text-align: right;">
<el-button size="mini" class="case-btn" @click="jumpUrl(`/case-detail?dataKey=casepack&caseId=${scope.row.id}`)">查看详情</el-button>
<el-button size="mini" class="case-btn" @click="handleDelete(scope)">删除</el-button>
</span> </span>
</div> </div>
<div class="flex-row justify-content-between case-bg"> <div class="flex-row justify-content-between case-bg">
<span> <span class="cursor-pointer">
<p>短信</p> <p>短信</p>
<p class="color-000"><a class="color-274ea4">成功1</a>/发送1</p> <p class="color-000"><a class="color-274ea4">成功1</a>/发送1</p>
</span> </span>
<span> <span class="cursor-pointer">
<p>外呼</p> <p>外呼</p>
<p class="color-000"><a class="color-274ea4">接通0</a>/外呼0</p> <p class="color-000"><a class="color-274ea4">接通0</a>/外呼0</p>
</span> </span>
<span> <span class="cursor-pointer">
<p>调解视频</p> <p>调解视频</p>
<p class="color-000"><a class="color-274ea4">结束0</a>/预约0</p> <p class="color-000"><a class="color-274ea4">结束0</a>/预约0</p>
</span> </span>
<span> <span class="cursor-pointer">
<p>文书</p> <p>文书</p>
<p class="color-000">0</p> <p class="color-000">0</p>
</span> </span>
<span> <span class="cursor-pointer">
<p>文书签署</p> <p>文书签署</p>
<p class="color-000"><a class="color-274ea4">成功0</a>/发起0</p> <p class="color-000"><a class="color-274ea4">成功0</a>/发起0</p>
</span> </span>
<span> <span class="cursor-pointer">
<p>文书送达</p> <p>文书送达</p>
<p class="color-000">0</p> <p class="color-000">0</p>
</span> </span>
<span> <span class="cursor-pointer">
<p>还款计划</p> <p>还款计划</p>
<p class="color-000"><a class="color-274ea4">已设置</a></p> <p class="color-000"><a class="color-274ea4">已设置</a></p>
</span> </span>
<span> <span class="cursor-pointer">
<p>还款凭证</p> <p>还款凭证</p>
<p class="color-000"><a class="color-274ea4">已填0</a></p> <p class="color-000"><a class="color-274ea4">已填0</a></p>
</span> </span>
</div> </div>
<div class="flex-row justify-content-end"> <!-- <div class="flex-row justify-content-end">
<span><el-button size="mini" class="case-btn" @click="handleEdit(scope)">查看详情</el-button></span> <span><el-button size="mini" class="case-btn" @click="handleEdit(scope)">查看详情</el-button></span>
<span><el-button size="mini" class="case-btn" @click="handleEdit(scope)">删除</el-button></span> <span><el-button size="mini" class="case-btn" @click="handleDelete(scope)">删除</el-button></span>
</div> </div> -->
</div> </div>
</template> </template>
@ -332,7 +333,7 @@
<!-- 编辑 --> <!-- 编辑 -->
<!-- <editCaseDrawer v-if="editCaseDrawer" :editCaseDrawer.sync="editCaseDrawer"/> --> <!-- <editCaseDrawer v-if="editCaseDrawer" :editCaseDrawer.sync="editCaseDrawer"/> -->
<!-- 案件分配--> <!-- 案件分配-->
<!-- <caseAllocationDialog v-if="caseAllocationDialog" :caseAllocationDialog.sync="caseAllocationDialog" /> --> <caseAllocationDialog v-if="caseAllocationDialog" :caseAllocationDialog.sync="caseAllocationDialog" />
</div> </div>
</template> </template>
<script> <script>
@ -343,7 +344,7 @@ import { values } from "lodash";
// importCaseDialog: () => import('./components/importCaseDialog'),// // importCaseDialog: () => import('./components/importCaseDialog'),//
// addCaseDialog: () => import('./components/addCaseDialog'),// // addCaseDialog: () => import('./components/addCaseDialog'),//
// editCaseDrawer: () => import('./components/editCaseDrawer'),// // editCaseDrawer: () => import('./components/editCaseDrawer'),//
// caseAllocationDialog: () => import('./components/caseAllocationDialog'),// caseAllocationDialog: () => import('./components/caseAllocationDialog'),//
}, },
data() { data() {
return { return {
@ -369,6 +370,7 @@ import { values } from "lodash";
queryDate: '', queryDate: '',
activeUsage: '', activeUsage: '',
queryParam: { queryParam: {
pkgId:'',
financialOrgName:'',// financialOrgName:'',//
caseNo: '',// caseNo: '',//
productTypeId: '',//id productTypeId: '',//id
@ -405,9 +407,9 @@ import { values } from "lodash";
selectionData: { selectionData: {
handler(v) { handler(v) {
if (this.enabledDataList.length) { if (this.enabledDataList.length) {
let checkedCount = v.length; let checkedCount = v.length;
this.isCheck = checkedCount === this.enabledDataList.length; this.isCheck = checkedCount === this.enabledDataList.length;
this.indeterminate = checkedCount > 0 && checkedCount < this.enabledDataList.length; this.indeterminate = checkedCount > 0 && checkedCount < this.enabledDataList.length;
} }
}, },
immediate: true immediate: true
@ -415,7 +417,9 @@ import { values } from "lodash";
}, },
created() { created() {
if (this.$route.query.dataKey != undefined) {
this.queryParam.pkgId = this.$route.query.pkgId;
}
this.getCaseInfoList(1) this.getCaseInfoList(1)
}, },
computed:{ computed:{
@ -431,6 +435,9 @@ import { values } from "lodash";
} }
}, },
methods: { methods: {
jumpUrl (url) {
this.$router.push(url);
},
// //
handleCheckAllChange(value){ handleCheckAllChange(value){
@ -492,9 +499,23 @@ import { values } from "lodash";
}, },
// //
handleCaseAllocation(){ handleCaseAllocation(){
this.caseAllocationDialog={
title:'案件分配', if(this.selectionData.length > 0){
this.caseAllocationDialog={
title:'案件分配',
choosecaseIds:this.selectionData
}
} }
else
{
this.$message({
showClose: true,
message: '请选择需要分案的案件!',
type: 'warning'
});
return false
}
}, },
// //
handleEdit(scope){ handleEdit(scope){
@ -624,7 +645,6 @@ import { values } from "lodash";
margin: 0 5px; margin: 0 5px;
} }
} }
} }
</style> </style>
@ -633,5 +653,7 @@ import { values } from "lodash";
.el-table tr { .el-table tr {
background-color: #f7f8fa63 !important; background-color: #f7f8fa63 !important;
} }
.el-checkbox{line-height: 10px;margin-top: -3px;}
.el-checkbox .el-checkbox__label{width: 0px;overflow: hidden;}
} }
</style> </style>

View File

@ -37,7 +37,7 @@
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
<el-scrollbar class="bor bg-color-light min-height250"> <el-scrollbar class="bor bg-color-light min-height350">
<div class="department-wrap"> <div class="department-wrap">
<div v-for="(item,inx) in peopleList" :key="inx" class="department-wrap-list"> <div v-for="(item,inx) in peopleList" :key="inx" class="department-wrap-list">
<div class="department-dept"> <div class="department-dept">
@ -387,6 +387,6 @@ import apipack from "@/services/casePackageManagement";
margin-bottom:0; margin-bottom:0;
} }
} }
.min-height250{min-height: 250px;} .min-height350{min-height: 350px;}
.department-dept ::v-deep .el-checkbox__label {color: $color-000000} .department-dept ::v-deep .el-checkbox__label {color: $color-000000}
</style> </style>

View File

@ -42,6 +42,18 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row type="flex" align="middle">
<el-col :span="24">
<el-form-item label="案件来源" prop="channel">
<el-input
v-model.trim="baseInfo.channel"
placeholder="请输入案件来源"
clearable
maxlength="25"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" align="middle"> <el-row type="flex" align="middle">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="委案日期" prop="planStartTime"> <el-form-item label="委案日期" prop="planStartTime">
@ -110,6 +122,7 @@ import apipk from "@/services/casePackageManagement";
planStartTime:'',// planStartTime:'',//
months:1,// months:1,//
fileInfo:null, fileInfo:null,
channel:'',
}, },
rulesClient: { rulesClient: {
@ -122,9 +135,13 @@ import apipk from "@/services/casePackageManagement";
months: [ months: [
{ required: true, message: '请输入委案期限', trigger: 'change',}, { required: true, message: '请输入委案期限', trigger: 'change',},
], ],
channel: [
{ required: true, message: '请输入案件来源', trigger: 'change',},
],
fileInfo: [ fileInfo: [
{ required: true, message: '请上传文件', trigger: 'change',}, { required: true, message: '请上传文件', trigger: 'change',},
] ],
}, },
financialProductsTypeOptions:[],// financialProductsTypeOptions:[],//
fileList:[],// fileList:[],//

View File

@ -109,7 +109,7 @@
<!-- <el-table-column type="selection" width="55" ></el-table-column> --> <!-- <el-table-column type="selection" width="55" ></el-table-column> -->
<el-table-column prop="pkgName" label="案件包名称" show-overflow-tooltip ></el-table-column> <el-table-column prop="pkgName" label="案件包名称" show-overflow-tooltip ></el-table-column>
<el-table-column prop="entrustingAgencyName" label="委案机构" show-overflow-tooltip ></el-table-column> <el-table-column prop="entrustingAgencyName" label="委案机构" show-overflow-tooltip ></el-table-column>
<!-- <el-table-column prop="resultStatus" 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 > <el-table-column prop="planStartTime" label="委案时间" show-overflow-tooltip >
<template slot-scope="scope"> <template slot-scope="scope">
<span >{{ scope.row.planStartTime | formaDate("yyyy-MM-dd") }}</span> <span >{{ scope.row.planStartTime | formaDate("yyyy-MM-dd") }}</span>
@ -126,7 +126,7 @@
<el-table-column label="操作" width="370"> <el-table-column label="操作" width="370">
<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" @click="handleEdit(scope)">查看</el-button> <el-button size="mini" @click="jumpUrl(`/case-management?dataKey=casepack&pkgId=${scope.row.id}`)">查看</el-button>
<el-button size="mini" @click="handleCaseAllocation(scope)">案件分配</el-button> <el-button size="mini" @click="handleCaseAllocation(scope)">案件分配</el-button>
<el-button size="mini" @click="handleEdit(scope)">预设还款方案</el-button> <el-button size="mini" @click="handleEdit(scope)">预设还款方案</el-button>
<el-button size="mini" v-if="scope.row.assignTotal == 0" @click="handleDelete(scope)">删除</el-button> <el-button size="mini" v-if="scope.row.assignTotal == 0" @click="handleDelete(scope)">删除</el-button>
@ -226,6 +226,9 @@ import api from "@/services/casePackageManagement";
} }
}, },
methods: { methods: {
jumpUrl (url) {
this.$router.push(url);
},
// //
handleImport(){ handleImport(){
this.importCaseDialog={ this.importCaseDialog={

View File

@ -37,6 +37,13 @@ const routes = [
component: () => import("@/pages/case-management"), component: () => import("@/pages/case-management"),
meta: { title: "案件管理", icon: 'menu-case-management' }, meta: { title: "案件管理", icon: 'menu-case-management' },
}, },
{
path: "/case-detail",
name: "/case-management/detail",
component: () => import("@/pages/case-management/detail"),
meta: { title: "案件详情", icon: 'menu-case-management' },
},
{ {
path: "/statistical-analysis", path: "/statistical-analysis",
name: "/statistical-analysis", name: "/statistical-analysis",