案件列表相关
This commit is contained in:
parent
40e5656078
commit
293ec69226
@ -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,//分案方式;1,平均分配;2,调解中案件量最少;3,当天分案量最少;4,当月分案量最少;5,同案由调解成功率最高
|
||||||
},
|
},
|
||||||
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>
|
||||||
43
src/pages/case-management/detail/index.vue
Normal file
43
src/pages/case-management/detail/index.vue
Normal 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>
|
||||||
@ -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>
|
||||||
@ -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>
|
||||||
@ -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:[],//证据材料
|
||||||
|
|||||||
@ -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={
|
||||||
|
|||||||
@ -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",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user