人物画像

This commit is contained in:
liuxi 2025-01-08 18:23:21 +08:00
parent 38e1bc3215
commit 42da96030b
6 changed files with 23488 additions and 3951 deletions

27116
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -17,7 +17,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.pkgName" placeholder="请选择案件包" <el-select v-model="queryParam.pkgId" placeholder="请选择案件包"
class="width100" > class="width100" >
<el-option <el-option
v-for="item in CasepackageList" v-for="item in CasepackageList"
@ -52,27 +52,27 @@
<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" type="primary" @click="handleImport">导入案件</el-button> <el-button size="small" type="primary" @click="handleImport">增量导入案件</el-button>
<el-button size="small" @click="handleAddForm">导出错误案件</el-button> <el-button size="small" @click="handleExport">导出错误案件</el-button>
<el-button size="small" @click="handleDelete">清空错误案件</el-button> <el-button size="small" @click="handleDelete">清空错误案件</el-button>
</div> </div>
</div> </div>
<div > <div >
<el-table :data="tableData" :height="`${contentHeight}`" <el-table :data="tableData" :height="`${contentHeight}`" style="width: 100%"
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange">
<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 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 v-for="(item,index) in Error_headers" :key="index"
<el-table-column prop="entrustingAgencyName" label="委案机构" show-overflow-tooltip ></el-table-column> :prop="item.fieldKey" :label="item.name" show-overflow-tooltip min-width="180" ></el-table-column>
<!-- <el-table-column prop="entrustingAgencyName" label="委案机构" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="被申请人姓名" show-overflow-tooltip ></el-table-column> <el-table-column prop="channel" label="被申请人姓名" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="被申请人手机号码" show-overflow-tooltip ></el-table-column> <el-table-column prop="channel" label="被申请人手机号码" show-overflow-tooltip ></el-table-column>
<el-table-column prop="months" label="身份证号码" show-overflow-tooltip ></el-table-column> <el-table-column prop="months" label="身份证号码" show-overflow-tooltip ></el-table-column>
<el-table-column prop="caseTotal" label="金融产品名称" show-overflow-tooltip ></el-table-column> <el-table-column prop="caseTotal" label="金融产品名称" show-overflow-tooltip ></el-table-column>
<el-table-column prop="assignTotal" label="合同名称" show-overflow-tooltip ></el-table-column> <el-table-column prop="assignTotal" label="合同名称" show-overflow-tooltip ></el-table-column>
<el-table-column prop="assignTotal" label="委托时逾期天数" show-overflow-tooltip ></el-table-column> <el-table-column prop="assignTotal" label="委托时逾期天数" show-overflow-tooltip ></el-table-column>
<!-- <el-table-column prop="assignTotal" label="合同名称" show-overflow-tooltip ></el-table-column> --> <el-table-column prop="assignTotal" label="当前逾期金额" show-overflow-tooltip ></el-table-column> -->
<el-table-column prop="assignTotal" label="当前逾期金额" show-overflow-tooltip ></el-table-column>
</el-table> </el-table>
</div> </div>
@ -96,7 +96,6 @@
</template> </template>
<script> <script>
import cpkapi from "@/services/casePackageManagement"; import cpkapi from "@/services/casePackageManagement";
import api from "@/services/casePackageManagement";
export default { export default {
components: { components: {
importPackageDialog: () => import('./components/importPackageDialog'),// importPackageDialog: () => import('./components/importPackageDialog'),//
@ -113,6 +112,7 @@ import api from "@/services/casePackageManagement";
financialProductsTypeOptions:[],// financialProductsTypeOptions:[],//
departmentOptions:[],// departmentOptions:[],//
queryParam: { queryParam: {
pkgId:'',
pkgName:'',// pkgName:'',//
entrustingAgencyName: '',// entrustingAgencyName: '',//
endTime: '',// endTime: '',//
@ -130,23 +130,20 @@ import api from "@/services/casePackageManagement";
addCaseDialog:null,// addCaseDialog:null,//
editCaseDrawer:null,// editCaseDrawer:null,//
CasepackageList:[], CasepackageList:[],
Error_headers:[],
} }
}, },
created() { created() {
this.getCasepkgList() this.getCasepkgList()
this.getCaseInfoList(1)
}, },
computed:{ computed:{
// drawer // drawer
contentHeight(){ contentHeight(){
let oh = document.documentElement.clientHeight; let oh = document.documentElement.clientHeight;
if(this.showSearch){ return oh-56-348
return oh-56-48-366-32
}else{
return oh-56-48-175-32
}
} }
}, },
methods: { methods: {
@ -158,118 +155,52 @@ import api from "@/services/casePackageManagement";
cpkapi.getCasePkgQuery({current:1,size:500}).then(res => { cpkapi.getCasePkgQuery({current:1,size:500}).then(res => {
if (!res.code) { if (!res.code) {
this.CasepackageList = res.records; this.CasepackageList = res.records;
if(this.CasepackageList.length > 0){
this.queryParam.pkgId = this.CasepackageList[0].id
}
this.getCasepkgError_headers()
} }
}) })
}, },
// //
handleImport(){ getCasepkgError_headers(){
this.importCaseDialog={ cpkapi.postcase_pkg_error_headers({id:this.queryParam.pkgId}).then(res => {
title:'批量导入案件', if (!res.code) {
} this.Error_headers = res;
},
//
handleBatchDelete(){
if(this.uniqueSelection.length==0){
this.$message.warning("请先选择你要删除的列表数据");
return
}
this.$confirm("请确定是否删除这些数据?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
if(!this.$clickThrottle()) { return }//
let data = {
ids:this.uniqueSelection
} }
api.deleteCaseBatch(data).then((res) => { this.getCaseInfoList()
})
this.$message.success("成功");
this.getCaseInfoList(1)
});
}).catch(() => {});
}, },
//
handleDelete(scope){
this.$confirm("请确定是否删除此条数据?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
if(!this.$clickThrottle()) { return }//
// api.CasePkgdeleteById({id:scope.row.id}).then((res) => {
// this.$message.success("");
// this.getCaseInfoList(1)
// });
}).catch(() => {});
},
//
handleBackCase(scope){
this.$confirm("请确定是否撤回分案?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
if(!this.$clickThrottle()) { return }//
api.postpkgquash({id:scope.row.id}).then((res) => {
this.$message.success("撤回分案成功");
this.getCaseInfoList(1)
});
}).catch(() => {});
},
//
handleAddForm(){
this.addCaseDialog={
title:'新增案件',
}
},
//
handleCaseAllocation(scope){
if((scope.row.caseTotal - scope.row.assignTotal) <= 0)
{
this.$message({
showClose: true,
message: '该案件包没有待分配的案件!',
type: 'warning'
});
return false
}
this.caseAllocationDialog={
title:'案件分配',
ObjectInfo:scope.row
}
},
//
handleEdit(scope){
this.editCaseDrawer={
title:'编辑案件',
data:scope.row,
currentPage:this.queryParam.current
}
},
// //
getCaseInfoList(val){ getCaseInfoList(val){
this.queryParam.planBegin = this.queryParam.beginTime this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.current = val this.queryParam.current = val
api.getCasePkgQuery(this.queryParam).then(res => { cpkapi.postcase_pkg_error_page(this.queryParam).then(res => {
if (!res.code) { if (!res.code) {
this.tableData = res.records; this.tableData = res.records;
this.total = res.total; this.total = res.total;
} }
}) })
}, },
handleToggleSearch() { //
this.showSearch = !this.showSearch handleImport(){
this.importCaseDialog={
title:'增量导入案件',
}
},
//
handleExport(){
if(!this.$clickThrottle()) { return }//
cpkapi.postcase_pkg_error_down(this.queryParam).then(res => {
this.$util.downloadFileByBlob(res, '错误案件列表.xlsx')
})
},
handleDelete(){
}, },
// //
hanldeReset() { hanldeReset() {
@ -288,71 +219,6 @@ import api from "@/services/casePackageManagement";
this.activeUsage = item this.activeUsage = item
this.setDateFast() this.setDateFast()
}, },
handleChangeDate() {
this.activeUsage = ''
if(this.queryDate === null) {
this.setDateFast()
}else {
this.queryParam.beginTime = this.$util.getDayStart(this.queryDate[0])
this.queryParam.endTime = this.$util.getDayEnd(this.queryDate[1])
}
},
setDateFast() {
switch (this.activeUsage) {
case "今日":
let todayObj = this.$util.getToday()
this.queryParam.beginTime = todayObj.todayStart
this.queryParam.endTime = todayObj.todayEnd
break
case "昨日":
let yesterdayObj = this.$util.getYesterday()
this.queryParam.beginTime = yesterdayObj.beginTime
this.queryParam.endTime = yesterdayObj.endTime
break
case "近一周":
let rangeWeek = this.$util.getRecentWeeks()
this.queryParam.beginTime = rangeWeek.recentWeekStart
this.queryParam.endTime = rangeWeek.todayEnd
break
case "近一月":
let rangeMonth = this.$util.getRecentMonths()
this.queryParam.beginTime = rangeMonth.recentMonthStart
this.queryParam.endTime = rangeMonth.todayEnd
break
case "近半年":
let rangeMonths = this.$util.getRecentMonths(6)
console.log('近半年:', rangeMonths)
this.queryParam.beginTime = rangeMonths.recentMonthStart
this.queryParam.endTime = rangeMonths.todayEnd
break
case "近一年":
let rangeYear = this.$util.getRecentYears()
this.queryParam.beginTime = rangeYear.recentYearStart
this.queryParam.endTime = rangeYear.todayEnd
break
default:
this.queryParam.beginTime = ''
this.queryParam.endTime = ''
this.queryDate = ''
break
}
if(this.queryParam.beginTime && this.queryParam.endTime) {
this.queryDate = [this.queryParam.beginTime, this.queryParam.endTime]
}
},
handleSelectionChange(val){
console.log('获取val',val)
this.uniqueSelection = []
val.forEach((row)=>{
this.uniqueSelection.push(row.id)
})
console.log('uniqueSelection',this.uniqueSelection)
},
} }
} }
</script> </script>

View File

@ -577,7 +577,6 @@ export default {
eventDialog: {caseId: this.$route.query.caseId}, eventDialog: {caseId: this.$route.query.caseId},
leftActive: 1, leftActive: 1,
rightActive: 1, rightActive: 1,
fileList: [], fileList: [],
mediationRecord: [],// mediationRecord: [],//
baseInfo: {},// baseInfo: {},//
@ -690,13 +689,11 @@ export default {
return {cardNo: datacardno.substring(0, len), phone: dataphone.substring(0, len)}; return {cardNo: datacardno.substring(0, len), phone: dataphone.substring(0, len)};
}, },
// //
getCaseInfoById() { async getCaseInfoById() {
let _that = this let _that = this
api.getCaseInfoById(this.caseId).then(res => { await api.getCaseInfoById(this.caseId).then(res => {
console.log(res, 'res')
if (!res.code) { if (!res.code) {
this.baseInfo = res this.baseInfo = res
// //
// console.log('',res.caseFileEntityList) // console.log('',res.caseFileEntityList)
let caseFileEntityList = [] let caseFileEntityList = []

View File

@ -342,28 +342,28 @@
<script> <script>
import chinalist from 'china-location/dist/location.json'; import chinalist from 'china-location/dist/location.json';
import ChinaLocation from 'china-location'; import ChinaLocation from 'china-location';
import api from "@/services/caseManagement";
import caseMaterial from "@/services/caseMaterial";
import { forEach } from 'lodash';
export default { export default {
components: { components: {
uploadFile: () => import('@/components/uploadFile.vue'),// uploadFile: () => import('@/components/uploadFile.vue'),//
}, },
props: { props: {
eventDialog: { caseId: {
type: Object, type: String,
default: () => { default: () => {
return {} return ''
}, },
}, },
}, },
data() { data() {
return { return {
debtorEntityList:[],
portraitInfo:{}, portraitInfo:{},
initlocation: null, initlocation: null,
provinces: [], provinces: [],
rightActive: 1, rightActive: 1,
debtorProfiles:[],
}; };
}, },
computed: { computed: {
@ -393,6 +393,7 @@ export default {
}, },
mounted() { mounted() {
this.initlocation = new ChinaLocation(chinalist); this.initlocation = new ChinaLocation(chinalist);
this.getCaseInfoById()
}, },
methods: { methods: {
@ -430,36 +431,39 @@ export default {
} }
}, 100); }, 100);
}, },
//
daysAfterDate() { getCaseInfoById() {
console.log(this.mrObj.timeType,'timeType') let _that = this
// api.getCaseInfoById(this.caseId).then(res => {
let currentDate = new Date(); if (!res.code) {
// this.debtorEntityList = res.debtorEntityList
const nextDate = currentDate
currentDate.setDate(currentDate.getDate() + this.mrObj.timeType)
const year = nextDate.getFullYear();
const month = (nextDate.getMonth() + 1).toString().padStart(2, '0');
const day = nextDate.getDate().toString().padStart(2, '0');
this.mrObj.nextDate = year +'-'+ month +'-'+ day;
},
handleUploadFile(fileList){
// console.log('',fileList)
fileList = JSON.parse(JSON.stringify(fileList))
this.fileList = fileList.map((item,i) => {
return {
url: item.url,
fileName: item.fileName,
previewUrl:item.previewUrl,
objectName: item.objectName
} }
this.getdebtorProfile()
}) })
this.repaymentObj.url = this.fileList.length?this.fileList[0].fileName : '';
this.repaymentObj.name = this.fileList.length?this.fileList[0].objectName : '';
}, },
handleClose() { //
this.$emit('update:visiblemediatRecord', false) getdebtorProfile(){
api.debtorProfile_labels({}).then(res => {
if (!res.code) {
this.debtorProfiles = res;
}
})
//
let debtorId = ''
let debtors = this.debtorEntityList.find(item =>{ return item.role == 'DEBTOR'})
if(debtors != undefined)
{
debtorId = debtors.id
}
api.debtorProfile_getByDebtorId(debtorId).then(res => {
if (!res.code) {
// this.debtorProfiles = res;
}
})
}, },
handleSubmit() { handleSubmit() {
if(!this.$clickThrottle()) { return }// if(!this.$clickThrottle()) { return }//
console.log(this.mrObj,'this.mrObj') console.log(this.mrObj,'this.mrObj')

View File

@ -258,6 +258,19 @@ const caseManagementApi = {
return service.service.post(`${apiAdmin}cases/caseInfo/updateAssistMediator`, data) return service.service.post(`${apiAdmin}cases/caseInfo/updateAssistMediator`, data)
}, },
// 人物画像-查询当前债务人画像信息
debtorProfile_getByDebtorId: data => {
return service.service.get(`${apiAdmin}api/portrait/debtorProfile/getByDebtorId?id=${data}`)
},
// 人物画像-编辑债务人的画像信息
debtorProfile_edit: data => {
return service.service.post(`${apiAdmin}api/portrait/debtorProfile/edit`, data)
},
// 人物画像-标签列表
debtorProfile_labels: data => {
return service.service.post(`${apiAdmin}api/portrait/debtorProfile/labels`, data)
},
//========================end::案件管理====================================== //========================end::案件管理======================================
} }

View File

@ -36,6 +36,21 @@ const caseManagementApi = {
}, },
// 错误的案件记录标头
postcase_pkg_error_headers: data => {
return service.service.post(`${apiMediate}case_pkg/imports/error/headers`, data)
},
// 错误的案件记录
postcase_pkg_error_page: data => {
return service.service.post(`${apiMediate}case_pkg/imports/error/page`, data)
},
// 错误的案件记录导出excel
postcase_pkg_error_down: data => {
return service.service.post(`${apiMediate}case_pkg/imports/error/down`, data)
},
//========================end::案件包管理====================================== //========================end::案件包管理======================================
} }