人物画像
This commit is contained in:
parent
ae07857972
commit
5436b5ade0
@ -401,7 +401,7 @@ import { values } from "lodash";
|
||||
//分案状态
|
||||
PartCaseStatusEnum:[{label:'待分案',value:false},{label:'已分案',value:true}],
|
||||
//调解进度
|
||||
MediateProgEnum:[{label:'承诺账户',value:'承诺账户'},{label:'重点账户',value:'重点账户'},{label:'已结清客户',value:'已结清客户'},
|
||||
MediateProgEnum:[{label:'承诺账户',value:'承诺账户'},{label:'重点账户',value:'重点账户'},{label:'拒联账户',value:'拒联账户'},{label:'已结清客户',value:'已结清客户'},
|
||||
{label:'疑难账户',value:'疑难账户'},{label:'失联账户',value:'失联账户'},{label:'半失联账户',value:'半失联账户'},{label:'部分还款账户',value:'部分还款账户'},
|
||||
{label:'适诉案件',value:'适诉案件'},{label:'可联账户',value:'可联账户'},{label:'投诉倾向客户',value:'投诉倾向客户'},{label:'分期客户',value:'分期客户'},
|
||||
{label:'其他/无标签',value:'其他/无标签'}
|
||||
|
||||
@ -345,14 +345,16 @@
|
||||
<div class="line-height-30 f22 f-weight600">沟通记录</div>
|
||||
|
||||
<div class="flex-row justify-content-between align-items-center pt-16 pb-16">
|
||||
<el-select v-model="communicationRecord" placeholder="请选择">
|
||||
<el-option label="111" value="222"></el-option>
|
||||
<el-select v-model="mediaterecordpm.linkedWay" placeholder="请选择" @change="getmediate_record">
|
||||
<el-option label="全部沟通" value=""></el-option>
|
||||
<el-option label="电话沟通" value="1"></el-option>
|
||||
<el-option label="视频沟通" value="2"></el-option>
|
||||
</el-select>
|
||||
<el-button plain icon="el-icon-plus" @click="visiblemediatRecord = true">新增沟通记录</el-button>
|
||||
</div>
|
||||
|
||||
<el-timeline class="padding-0">
|
||||
<el-timeline-item timestamp="2018/4/12" placement="top" type="primary">
|
||||
<el-timeline-item v-for="(item,index) in communicationRecord" :key="index" :timestamp="item.recordDate" placement="top" type="primary">
|
||||
<el-card shadow="never">
|
||||
<div class="flex-row justify-content-between timeline-layout">
|
||||
<div class="timeline-layout-w">
|
||||
@ -538,7 +540,7 @@
|
||||
</div>
|
||||
|
||||
<caseVideoReservationDialog v-if="visiblePopover" :visible-popover.sync="visiblePopover" />
|
||||
<MediationRecordDialog v-if="visiblemediatRecord" :visiblemediatRecord.sync="visiblemediatRecord" />
|
||||
<MediationRecordDialog v-if="visiblemediatRecord" :caseId="caseId" :visiblemediatRecord.sync="visiblemediatRecord" />
|
||||
<!-- 视频房间 -->
|
||||
<VideoRoom v-if="VideoCallDialog" :eventDialog.sync="VideoCallDialog" />
|
||||
</div>
|
||||
@ -636,10 +638,14 @@ export default {
|
||||
],
|
||||
},
|
||||
|
||||
communicationRecord: '',
|
||||
communicationRecord: [],
|
||||
|
||||
visiblePopover: null,
|
||||
VideoCallDialog: null,
|
||||
mediaterecordpm:{
|
||||
caseId:this.$route.query.caseId,
|
||||
linkedWay:undefined
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -665,7 +671,8 @@ export default {
|
||||
},
|
||||
async created() {
|
||||
this.caseId = this.$route.query.caseId
|
||||
await this.getCaseInfoById();//获取详情
|
||||
this.getCaseInfoById();//获取详情
|
||||
this.getmediate_record()
|
||||
},
|
||||
beforeDestroy() {
|
||||
// if(this.timer) { //如果定时器还在运行 或者直接关闭,不用判断
|
||||
@ -689,9 +696,9 @@ export default {
|
||||
return {cardNo: datacardno.substring(0, len), phone: dataphone.substring(0, len)};
|
||||
},
|
||||
// 获取详情
|
||||
async getCaseInfoById() {
|
||||
getCaseInfoById() {
|
||||
let _that = this
|
||||
await api.getCaseInfoById(this.caseId).then(res => {
|
||||
api.getCaseInfoById(this.caseId).then(res => {
|
||||
if (!res.code) {
|
||||
this.baseInfo = res
|
||||
// 材料
|
||||
@ -701,9 +708,7 @@ export default {
|
||||
caseFileEntityList.push({name: item.name, fileName: item.name, url: item.url})
|
||||
})
|
||||
_that.fileList = caseFileEntityList
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
// 获取上一件案件
|
||||
@ -729,39 +734,18 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 下载调解模板
|
||||
handleDownloadMediationTemplate() {
|
||||
if (!this.$clickThrottle()) {
|
||||
return
|
||||
}//防止重复点击
|
||||
// console.log('调解模板url',templateUrl)
|
||||
if (this.templateUrl) {
|
||||
this.handlePreview({previewUrl: "/mediate/minio/preview/" + this.templateUrl, url: this.templateUrl})
|
||||
} else {
|
||||
this.$message({message: '当前案件未存在调解模板', type: "warning", customClass: 'messageZindex'})
|
||||
}
|
||||
|
||||
},
|
||||
async handlePreview(item) {
|
||||
try {
|
||||
let res = await this.$fetchApi.getMinioToken({objectName: item.url})
|
||||
window.open(`${item.previewUrl}?token=${res}`, '_target')
|
||||
} catch (e) {
|
||||
this.$message.error(e.msg || e)
|
||||
}
|
||||
},
|
||||
handleSubmitRepayment() {
|
||||
this.$refs.ruleFormRepayment.validate((valid) => {
|
||||
if (valid) {
|
||||
console.log(1111)
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
handleBack() {
|
||||
// this.$route.query.sourcePage == 'mediationManagement'
|
||||
this.$router.push('/mediation-management')
|
||||
},
|
||||
// 获取调解记录
|
||||
getmediate_record() {
|
||||
api.mediate_record_list(this.mediaterecordpm).then(res => {
|
||||
if (!res.code) {
|
||||
this.communicationRecord = res
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
@ -4,60 +4,75 @@
|
||||
:modal="false" width="880px" append-to-body :close-on-click-modal="false"
|
||||
@close="handleClose" v-drag>
|
||||
<div class="dialog-content dialog-mr-batch">
|
||||
<div class="p-24">
|
||||
<div class="p-16">
|
||||
<div class="flex-column">
|
||||
<span class="f16 f-weight500">沟通类型</span>
|
||||
<div class="mt-16">
|
||||
<el-radio-group v-model="mrObj.radio">
|
||||
<el-radio :label="3">电话</el-radio>
|
||||
<el-radio :label="6">视频</el-radio>
|
||||
<div class="mt-8">
|
||||
<el-radio-group v-model="mrObj.linkedWay">
|
||||
<el-radio :label="1">电话</el-radio>
|
||||
<el-radio :label="2">视频</el-radio>
|
||||
<el-radio :label="3">视频</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<span class="f16 f-weight500 mt-16">电话情况</span>
|
||||
<div class="mt-16">
|
||||
<el-radio-group v-model="mrObj.radio">
|
||||
<el-radio :label="3">已接</el-radio>
|
||||
<el-radio :label="6">未接</el-radio>
|
||||
<el-radio :label="9">拒接</el-radio>
|
||||
<el-radio :label="9">关机</el-radio>
|
||||
<el-radio :label="9">空号</el-radio>
|
||||
<el-radio :label="9">停机</el-radio>
|
||||
<span class="f16 f-weight500 mt-8">沟通时间</span>
|
||||
<div class="mt-8 flex-row">
|
||||
<el-date-picker size="small" style="width: 200px;"
|
||||
:clearable="false"
|
||||
v-model="mrObj.linkedTime"
|
||||
type="datetime"
|
||||
placeholder="选择沟通时间"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
format="yyyy-MM-dd HH:mm:ss">
|
||||
</el-date-picker>
|
||||
<!-- <el-date-picker
|
||||
v-model="value1"
|
||||
type="datetime"
|
||||
placeholder="选择日期时间">
|
||||
</el-date-picker> -->
|
||||
|
||||
</div>
|
||||
<span class="f16 f-weight500 mt-8">电话情况</span>
|
||||
<div class="mt-8">
|
||||
<el-radio-group v-model="mrObj.linkedSituation">
|
||||
<el-radio :label="0">已接</el-radio>
|
||||
<el-radio :label="1">未接</el-radio>
|
||||
<el-radio :label="2">拒接</el-radio>
|
||||
<el-radio :label="3">关机</el-radio>
|
||||
<el-radio :label="8">空号</el-radio>
|
||||
<el-radio :label="4">停机</el-radio>
|
||||
<el-radio :label="9">设置</el-radio>
|
||||
<el-radio :label="9">正在通话中</el-radio>
|
||||
<el-radio :label="9">暂时无法接通</el-radio>
|
||||
<el-radio :label="10">正在通话中</el-radio>
|
||||
<el-radio :label="5">暂时无法接通</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<span class="f16 f-weight500 mt-16">沟通对象</span>
|
||||
<div class="mt-16">
|
||||
<el-select v-model="mrObj.FollowStatus"
|
||||
clearable placeholder="请选择沟通对象"
|
||||
@keydown.enter.native="handleSearch"
|
||||
class="width100">
|
||||
<span class="f16 f-weight500 mt-8">沟通对象</span>
|
||||
<div class="mt-8">
|
||||
<el-select size="small" v-model="mrObj.linkedPerson" multiple placeholder="请选择沟通对象" class="width100">
|
||||
<el-option
|
||||
v-for="item in FollowStatusEnum"
|
||||
:key="item.label"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
v-for="item in PersonData"
|
||||
:key="item.id"
|
||||
:label="item.name+'-'+item.phone"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<span class="f16 f-weight500 mt-16">沟通情况</span>
|
||||
<div class="mt-16">
|
||||
<el-radio-group v-model="mrObj.communicateResult">
|
||||
<span class="f16 f-weight500 mt-8">沟通情况</span>
|
||||
<div class="mt-8">
|
||||
<el-radio-group v-model="mrObj.communicationSituation">
|
||||
<el-radio v-for="(item,index) in CommunicationOptions" :key="index" :label="item.value">{{item.label}}</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<div class="mt-16">
|
||||
<div class="mt-8">
|
||||
<el-input type="textarea" :rows="2"
|
||||
placeholder="请输入内容" v-model="mrObj.remark">
|
||||
placeholder="请输入内容" v-model="mrObj.communicationRemarks">
|
||||
</el-input>
|
||||
</div>
|
||||
<span class="f16 f-weight500 mt-16">调解进度</span>
|
||||
<div class="mt-16 mr—schedule">
|
||||
<span :class="mrObj.recordStatus == item.value ? 'active':''" v-for="(item,index) in materialTypeOptions" :key="index" @click="mrObj.recordStatus = item.value">{{item.label}}</span>
|
||||
<span class="f16 f-weight500 mt-8">调解进度</span>
|
||||
<div class="mt-8 mr—schedule">
|
||||
<span :class="mrObj.mediateStatus == item.value ? 'active':''" v-for="(item,index) in materialTypeOptions" :key="index" @click="mrObj.mediateStatus = item.value">{{item.label}}</span>
|
||||
</div>
|
||||
<span class="f16 f-weight500 mt-16">下次跟进时间</span>
|
||||
<div class="mt-16 flex-row">
|
||||
<span class="f16 f-weight500 mt-8">下次跟进时间</span>
|
||||
<div class="mt-8 flex-row">
|
||||
<el-radio-group v-model="mrObj.timeType" class="pt-8 mr-16" @change="daysAfterDate" >
|
||||
<el-radio :label="0">自定义</el-radio>
|
||||
<el-radio :label="1">1天后</el-radio>
|
||||
@ -66,20 +81,21 @@
|
||||
<el-radio :label="5">5天后</el-radio>
|
||||
<el-radio :label="7">7天后</el-radio>
|
||||
</el-radio-group>
|
||||
<el-date-picker v-if="this.mrObj.timeType == 0" size="small" style="width: 150px;"
|
||||
v-model="mrObj.nextDate"
|
||||
<!-- <el-date-picker v-if="this.mrObj.timeType == 0" size="small" style="width: 150px;"
|
||||
v-model="mrObj.nextFollowDate"
|
||||
type="date"
|
||||
placeholder="选择先还日期"
|
||||
placeholder="选择下次跟进时间"
|
||||
value-format="yyyy-MM-dd"
|
||||
format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-date-picker> -->
|
||||
<el-input-number v-if="this.mrObj.timeType == 0" v-model="mrObj.nextFollowDate" controls-position="right" size="small" @change="handleChange" :min="1" :max="100"></el-input-number>
|
||||
</div>
|
||||
<span class="f16 f-weight500 mt-16">录音或录像文件</span>
|
||||
<div class="mt-16">
|
||||
<upload-file :file-list="fileList" :max-count="1"
|
||||
<span class="f16 f-weight500 mt-8">录音或录像文件</span>
|
||||
<div class="mt-8">
|
||||
<upload-file :file-list="fileList" :max-count="5"
|
||||
:show-file-name="false"
|
||||
uploadName=""
|
||||
accept=".mp3,mp4"
|
||||
accept=".mp3,.mp4,.jpg,.jpeg,.png"
|
||||
:span="6"
|
||||
:fileSize="50"
|
||||
@handleUploadFile="handleUploadFile">
|
||||
@ -98,7 +114,8 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import caseMaterial from "@/services/caseMaterial";
|
||||
import api from "@/services/caseManagement";
|
||||
import contactPerson from "@/services/contactPerson";
|
||||
export default {
|
||||
components: {
|
||||
uploadFile: () => import('@/components/uploadFile.vue'),//上传
|
||||
@ -110,57 +127,113 @@ export default {
|
||||
return {}
|
||||
},
|
||||
},
|
||||
caseId: {
|
||||
type: String,
|
||||
default: () => {
|
||||
return ''
|
||||
},
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
CommunicationOptions:[{ label: '继续沟通', value: 'CONTINUE' },{ label: '一次性全部回款', value: 'ALL' },{ label: '全部分期', value: 'STAGES' },
|
||||
{ label: '部分还款', value: 'PART' },{ label: '拒绝沟通', value: 'REFUSE' }],
|
||||
CommunicationOptions:[{ label: '继续沟通', value: '4' },{ label: '一次性全部回款', value: '1' },{ label: '全部分期', value: '2' },
|
||||
{ label: '部分还款', value: '3' },{ label: '拒绝沟通', value: '5' }],
|
||||
materialTypeOptions: [
|
||||
{ label: '承诺账户', value: 'COMMITMENT_ACCOUNTS' },
|
||||
{ label: '重点账户', value: 'FOCUSED_ACCOUNTS' },
|
||||
{ label: '拒联账户', value: 'DISCONNECTED_ACCOUNTS' },
|
||||
{ label: '失联账户', value: 'CLOSED_ACCOUNTS' },
|
||||
{ label: '疑难账户', value: 'DIFFICULT_ACCOUNTS' },
|
||||
{ label: '失联账户', value: 'LOST_ACCOUNTS' },
|
||||
{ label: '半失联账户', value: 'SEMI_DISCONNECTED_ACCOUNTS' },
|
||||
{ label: '部分还款账户', value: 'PARTIAL_REPAYMENT_ACCOUNT' },
|
||||
{ label: '诉讼案件', value: 'LITIGATION_CASES' },
|
||||
{label:'承诺账户',value:'1'},{label:'重点账户',value:'2'},{label:'拒联账户',value:'3'},{label:'已结清客户',value:'4'},
|
||||
{label:'疑难账户',value:'5'},{label:'失联账户',value:'6'},{label:'半失联账户',value:'7'},{label:'部分还款账户',value:'8'},
|
||||
{label:'适诉案件',value:'9'},{label:'可联账户',value:'10'},{label:'投诉倾向客户',value:'11'},{label:'分期客户',value:'12'},
|
||||
{label:'其他/无标签',value:'13'}
|
||||
],
|
||||
mrObj: {
|
||||
timeType:1,
|
||||
caseId: '',
|
||||
contactName: '',//联系人姓名
|
||||
contactPhone: '',//联系人电话
|
||||
paybackId: '',//关联还款计划id
|
||||
communicateResult: '',//沟通情况
|
||||
remark: '',//备注
|
||||
nextDate: '',//下次跟进日期
|
||||
recordStatus: '',//调解进度
|
||||
recordFileIds: '',//调解记录相关录音,录像文件id,使用逗号隔开
|
||||
labelIds: '',//人物画像标签id,使用逗号隔开
|
||||
debtorId: '',//债务人id
|
||||
id:'',
|
||||
timeType:0,
|
||||
caseId:'',//案件id
|
||||
linkedWay:1,//联系方式:1:电话 2:视频 3:微信
|
||||
linkedType:2,//联系类型:1:线上 2:线下
|
||||
linkedPerson:[],//联系人
|
||||
linkedSituation:0,//联系情况
|
||||
communicationSituation:'4',//沟通情况
|
||||
communicationRemarks:'',//沟通备注
|
||||
mediateStatus:'',//调解状态
|
||||
linkedTime:'',//联系时间
|
||||
linkedDuration:'',//时长
|
||||
callWay:'',//拨打方式
|
||||
callStartTime:'',//拨打开始时间
|
||||
callEndTime:'',//拨打结束时间
|
||||
nextFollowDate:1,//下次跟进时间
|
||||
files:[],//文件
|
||||
},
|
||||
fileList: [],
|
||||
PersonData:[],
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.daysAfterDate()
|
||||
},
|
||||
methods: {
|
||||
daysAfterDate() {
|
||||
console.log(this.mrObj.timeType,'timeType')
|
||||
// this.daysAfterDate()
|
||||
if(this.mrObj.id == ''){
|
||||
// 获取当前日期
|
||||
let currentDate = new Date();
|
||||
// 获取昨天的日期
|
||||
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;
|
||||
this.mrObj.linkedTime = this.$util.getDatetimeValue(currentDate);
|
||||
}
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
// 列表数据
|
||||
getList() {
|
||||
let dataJson = {
|
||||
size: 9999,
|
||||
current: 1,
|
||||
caseId: this.caseId
|
||||
}
|
||||
contactPerson.debtorPage(dataJson).then(res => {
|
||||
if (!res.code) {
|
||||
this.PersonData = res.records.map((item) => {
|
||||
let surname = item.name.split('')[0];
|
||||
return {
|
||||
...item,
|
||||
surname: surname
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
contactPerson.agentPage(dataJson).then(res => {
|
||||
if (!res.code) {
|
||||
let PersonAgent = res.records.map((item) => {
|
||||
let surname = item.name.split('')[0];
|
||||
return {
|
||||
...item,
|
||||
surname: surname
|
||||
}
|
||||
});
|
||||
if(PersonAgent.length > 0)
|
||||
{
|
||||
PersonAgent.forEach(item => {
|
||||
this.PersonData.push(item)
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
|
||||
|
||||
},
|
||||
daysAfterDate() {
|
||||
if(this.mrObj.timeType == 0){this.mrObj.nextFollowDate = 1 ;}
|
||||
else{this.mrObj.nextFollowDate = this.mrObj.timeType ;}
|
||||
|
||||
// 获取当前日期
|
||||
// let currentDate = new Date();
|
||||
// // 获取昨天的日期
|
||||
// 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.nextFollowDate = year +'-'+ month +'-'+ day;
|
||||
},
|
||||
handleUploadFile(fileList){
|
||||
// console.log('获取上传文件信息',fileList)
|
||||
console.log('获取上传文件信息',fileList)
|
||||
fileList = JSON.parse(JSON.stringify(fileList))
|
||||
this.fileList = fileList.map((item,i) => {
|
||||
return {
|
||||
@ -170,20 +243,31 @@ export default {
|
||||
objectName: item.objectName
|
||||
}
|
||||
})
|
||||
this.repaymentObj.url = this.fileList.length?this.fileList[0].fileName : '';
|
||||
this.repaymentObj.name = this.fileList.length?this.fileList[0].objectName : '';
|
||||
// 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)
|
||||
},
|
||||
handleSubmit() {
|
||||
if(!this.$clickThrottle()) { return }//防止重复点击
|
||||
|
||||
if(this.mrObj.linkedPerson.length == 0)
|
||||
{
|
||||
this.$message.warning("请选择沟通对象");
|
||||
return false
|
||||
}
|
||||
this.mrObj.caseId = this.caseId
|
||||
this.fileList.forEach(item =>{
|
||||
this.mrObj.files.push(item.url)
|
||||
})
|
||||
console.log(this.mrObj,'this.mrObj')
|
||||
// caseMaterial.addCaseFile(this.repaymentObj).then(res => {
|
||||
// this.$parent.getFileCaseList()
|
||||
// this.handleClose()
|
||||
// this.$message.success("操作成功");
|
||||
// })
|
||||
|
||||
api.mediate_record_save(this.mrObj).then(res => {
|
||||
// this.$parent.getFileCaseList()
|
||||
this.handleClose()
|
||||
this.$message.success("新增调解记录成功");
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -92,28 +92,28 @@
|
||||
<div class="position_info character-info theme-blue">
|
||||
<div class="character-info-title">基本信息</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名姓名姓</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.name}}</div>
|
||||
</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">性别</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.gender == 'Male' ?'男':'女'}}</div>
|
||||
</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">电话</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.phoneNumber}}</div>
|
||||
</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">居住地</div>
|
||||
<div class="character-info-details-text">{{ getAddress(portraitInfo.residencePlace) }} {{portraitInfo.residenceAddress}} </div>
|
||||
</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">经济状况</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.economicStatus}}</div>
|
||||
</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">雇佣状态</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.employmentStatus}}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -121,12 +121,12 @@
|
||||
<div class="position_family character-info theme-green">
|
||||
<div class="character-info-title">家庭情况</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">婚姻状况</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.maritalStatus}}</div>
|
||||
</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">家庭成员</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.familyMembers}}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -134,16 +134,16 @@
|
||||
<div class="position_carry character-info theme-pink">
|
||||
<div class="character-info-title">执行情况</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">是否被执行</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.isExecuted =='Yes'?'是':'否'}}</div>
|
||||
</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">机构黑名单</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.isBlacklisted =='Yes'?'是':'否'}}</div>
|
||||
</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">是否失信人员</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.isUntrustworthy =='Yes'?'是':'否'}}</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -151,127 +151,128 @@
|
||||
<div class="position_finance character-info theme-yellow">
|
||||
<div class="character-info-title">财务资产情况</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">信用等级</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.creditRating}}</div>
|
||||
</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">逾期</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.overdue}}</div>
|
||||
</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">欠款</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.arrears}}</div>
|
||||
</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">信用卡</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.creditCardCount}}</div>
|
||||
</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">信用卡额度</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.creditLimit}}</div>
|
||||
</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">资产</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.assetSituation}}</div>
|
||||
</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">还款行为</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.repaymentBehavior}}</div>
|
||||
</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">消费行为</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.consumptionBehavior}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 风险情况 -->
|
||||
<div class="position_risk character-info theme-pink2">
|
||||
<div class="character-info-title">风险情况</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">风险评估</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.riskAssessment}}</div>
|
||||
</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">建议措施</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.suggestedMeasures}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 适诉情况 -->
|
||||
<div class="position_lawsuit character-info theme-purple">
|
||||
<div class="character-info-title">适诉情况</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">还款意愿</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.repaymentWillingness}}</div>
|
||||
</div>
|
||||
<div class="character-info-details flex-row">
|
||||
<div class="character-info-details-label">姓名</div>
|
||||
<div class="character-info-details-text">陈继平</div>
|
||||
<div class="character-info-details-label">诉讼</div>
|
||||
<div class="character-info-details-text">{{portraitInfo.litigationSituation}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
<div class="portrait-marker" v-if="rightActive != 1">
|
||||
<el-scrollbar :style="'height:'+`${portraitcontentHeight}`+'px'">
|
||||
<div class="flex-column p-16">
|
||||
<el-scrollbar ref="scrollContainer" :style="'height:'+`${portraitcontentHeight}`+'px'">
|
||||
<div ref="positionContainer" class="flex-column p-16">
|
||||
<div class="f18">基本信息</div>
|
||||
<div class="f16 mt-16"><a class="dot"></a>身份信息</div>
|
||||
<div ref="targetPerson" class="f16 mt-16"><a class="dot"></a>身份信息</div>
|
||||
<div class="person-info flex-column mt-16">
|
||||
<span>姓名:<a class="color-000">XXXXX</a></span>
|
||||
<span>性别:<a class="color-000">XXXXX</a></span>
|
||||
<span>年龄:<a class="color-000">XXXXX</a></span>
|
||||
<span>手机号码:<a class="color-000">XXXXX</a></span>
|
||||
<span>身份证号:<a class="color-000">XXXXX</a></span>
|
||||
<span>姓名:<a class="color-000">{{portraitInfo.name}}</a></span>
|
||||
<span>性别:<a class="color-000">{{portraitInfo.gender == 'Male' ? '男':'女'}}</a></span>
|
||||
<span>年龄:<a class="color-000">{{portraitInfo.age}}</a></span>
|
||||
<span>手机号码:<a class="color-000">{{portraitInfo.phoneNumber}}</a></span>
|
||||
<span>身份证号:<a class="color-000">{{portraitInfo.idCardNumber}}</a></span>
|
||||
</div>
|
||||
<div class="f16 mt-16"><a class="dot"></a>地理位置</div>
|
||||
<div ref="targetAddress" class="f16 mt-16"><a class="dot"></a>地理位置</div>
|
||||
<div class="flex-column">
|
||||
<span class="mt-8">户籍所在地:</span>
|
||||
<span class="mt-8">
|
||||
<el-cascader size="small" v-model="portraitInfo.value1" class="width100" :options="provinces" :props="{ lazy: true, lazyLoad: loadOptions }" ></el-cascader>
|
||||
<el-cascader size="small" :placeholder="getAddress(portraitObj.domicilePlace)" v-model="portraitObj.domicilePlace" class="width100" :options="provinces" :props="{ lazy: true, lazyLoad: loadOptions }" ></el-cascader>
|
||||
</span>
|
||||
<span class="mt-8">
|
||||
<el-input size="small" v-model="portraitInfo.input" placeholder="请输入详细地址"></el-input>
|
||||
<el-input size="small" v-model="portraitObj.domicileAddress" placeholder="请输入详细地址,楼栋单元" maxlength="30"></el-input>
|
||||
</span>
|
||||
<span class="mt-8">常住地址:</span>
|
||||
<span class="mt-8">
|
||||
<el-cascader size="small" v-model="portraitInfo.value2" class="width100" :options="provinces" :props="{ lazy: true, lazyLoad: loadOptions }"></el-cascader>
|
||||
<!-- :placeholder="getAddress(portraitObj.residencePlace)" -->
|
||||
<el-cascader size="small" :placeholder="getAddress(portraitObj.residencePlace)" v-model="portraitObj.residencePlace" class="width100" :options="provinces" :props="{ lazy: true, lazyLoad: loadOptions }"></el-cascader>
|
||||
</span>
|
||||
<span class="mt-8">
|
||||
<el-input size="small" v-model="portraitInfo.input" placeholder="请输入详细地址"></el-input>
|
||||
<el-input size="small" v-model="portraitObj.residenceAddress" placeholder="请输入详细地址,楼栋单元" maxlength="30"></el-input>
|
||||
</span>
|
||||
<span class="mt-8">工作地点:</span>
|
||||
<span class="mt-8">
|
||||
<el-cascader size="small" v-model="portraitInfo.value3" class="width100" :options="provinces" :props="{ lazy: true, lazyLoad: loadOptions }" ></el-cascader>
|
||||
<el-cascader size="small" :placeholder="getAddress(portraitObj.workPlace)" v-model="portraitObj.workPlace" class="width100" :options="provinces" :props="{ lazy: true, lazyLoad: loadOptions }" ></el-cascader>
|
||||
</span>
|
||||
<span class="mt-8">
|
||||
<el-input size="small" v-model="portraitInfo.input" placeholder="请输入详细地址"></el-input>
|
||||
<el-input size="small" v-model="portraitObj.workAddress" placeholder="请输入详细地址,楼栋单元" maxlength="30"></el-input>
|
||||
</span>
|
||||
</div>
|
||||
<div class="f18 mt-16">经济状况</div>
|
||||
<div ref="targetRevenue" class="f18 mt-16">经济状况</div>
|
||||
<div class="f16 mt-16"><a class="dot"></a>经济收入</div>
|
||||
<div class="box-list">
|
||||
<span>收入0-5K</span>
|
||||
<span>收入5-10K</span>
|
||||
<span>收入10K以上</span>
|
||||
<span>无收入</span>
|
||||
<div class="box-list" >
|
||||
<span v-for="(item,index) in debtorProlabels.filter(item => item.labelGroup == 'REVENUE')" :key="index" @click="portraitObj.economicStatus = item.labelName " :class="portraitObj.economicStatus == item.labelName ? 'active':''">{{item.labelName}}</span>
|
||||
</div>
|
||||
<div class="f16 mt-16"><a class="dot"></a>雇佣状态</div>
|
||||
<div ref="targetJob" class="f16 mt-16"><a class="dot"></a>雇佣状态</div>
|
||||
<div class="box-list">
|
||||
<span>待业</span>
|
||||
<span>零工</span>
|
||||
<span>稳定工作</span>
|
||||
<span>个体户</span>
|
||||
<span>小微企业</span>
|
||||
<span>企业法人</span>
|
||||
<span v-for="(item,index) in debtorProlabels.filter(item => item.labelGroup == 'JOB')" :key="index" @click="portraitObj.employmentStatus = item.labelName " :class="portraitObj.employmentStatus == item.labelName ? 'active':''">{{item.labelName}}</span>
|
||||
</div>
|
||||
<div class="f18 mt-16">信用历史</div>
|
||||
<div ref="targetCredit" class="f18 mt-16">信用历史</div>
|
||||
<div class="f16 mt-16"><a class="dot"></a>信用报告</div>
|
||||
<div class="f16 mt-16"><a class="dot"></a>信贷记录</div>
|
||||
<div class="f16 mt-16"><a class="dot"></a>信用卡</div>
|
||||
<div class="f18 mt-16">财务资产和负债</div>
|
||||
<div class="f16 mt-16"><a class="dot"></a>财产情况</div>
|
||||
<div ref="targetProperty" class="f16 mt-16"><a class="dot"></a>财产情况</div>
|
||||
<div class="box-list">
|
||||
<span>有房</span>
|
||||
<span v-for="(item,index) in debtorProlabels.filter(item => item.labelGroup == 'PROPERTY')" :key="index" @click="portraitObj.assetSituation = item.labelName " :class="portraitObj.assetSituation == item.labelName ? 'active':''">{{item.labelName}}</span>
|
||||
<!-- <span>有房</span>
|
||||
<span>有车</span>
|
||||
<span>存款</span>
|
||||
<span>投资</span>
|
||||
<span>小微企业</span>
|
||||
<span>企业法人</span>
|
||||
<span>投资</span> -->
|
||||
</div>
|
||||
<div class="f16 mt-16"><a class="dot"></a>负债情况</div>
|
||||
<div ref="targetLiability" class="f16 mt-16"><a class="dot"></a>负债情况</div>
|
||||
<div class="box-list">
|
||||
<span>多头借贷</span>
|
||||
<span v-for="(item,index) in debtorProlabels.filter(item => item.labelGroup == 'LIABILITY')" :key="index" @click="portraitObj.arrears = item.labelName " :class="portraitObj.arrears == item.labelName ? 'active':''">{{item.labelName}}</span>
|
||||
<!-- <span>多头借贷</span>
|
||||
<span>信用卡负债</span>
|
||||
<span>银行其他负债</span>
|
||||
<span>非银负债</span>
|
||||
@ -280,27 +281,30 @@
|
||||
<span>负债10-50W</span>
|
||||
<span>负债50-100W</span>
|
||||
<span>负债100W以上</span>
|
||||
<span>存在还款竞争</span>
|
||||
<span>存在还款竞争</span> -->
|
||||
</div>
|
||||
|
||||
<div class="f18 mt-16">家庭状况</div>
|
||||
<div class="f16 mt-16"><a class="dot"></a>婚姻状况</div>
|
||||
<div ref="targetMatrimony" class="f16 mt-16"><a class="dot"></a>婚姻状况</div>
|
||||
<div class="box-list">
|
||||
<span>未婚</span>
|
||||
<span v-for="(item,index) in debtorProlabels.filter(item => item.labelGroup == 'MATRIMONY')" :key="index" @click="portraitObj.maritalStatus = item.labelName " :class="portraitObj.maritalStatus == item.labelName ? 'active':''">{{item.labelName}}</span>
|
||||
<!-- <span>未婚</span>
|
||||
<span>已婚</span>
|
||||
<span>离婚</span>
|
||||
<span>离婚</span> -->
|
||||
</div>
|
||||
<div class="f16 mt-16"><a class="dot"></a>家庭成员</div>
|
||||
<div ref="targetFamily" class="f16 mt-16"><a class="dot"></a>家庭成员</div>
|
||||
<div class="box-list">
|
||||
<span>无子女</span>
|
||||
<span v-for="(item,index) in debtorProlabels.filter(item => item.labelGroup == 'FAMILY')" :key="index" @click="portraitObj.familyMembers = item.labelName " :class="portraitObj.familyMembers == item.labelName ? 'active':''">{{item.labelName}}</span>
|
||||
<!-- <span>无子女</span>
|
||||
<span>有子女</span>
|
||||
<span>有父母</span>
|
||||
<span>无父母</span>
|
||||
<span>无父母</span> -->
|
||||
</div>
|
||||
<div class="f18 mt-16">行为分析</div>
|
||||
<div class="f16 mt-16"><a class="dot"></a>消费行为</div>
|
||||
<div ref="targetConsumption" class="f16 mt-16"><a class="dot"></a>消费行为</div>
|
||||
<div class="box-list">
|
||||
<span>收入匹配消费</span>
|
||||
<span v-for="(item,index) in debtorProlabels.filter(item => item.labelGroup == 'CONSUMPTION')" :key="index" @click="portraitObj.consumptionBehavior = item.labelName " :class="portraitObj.consumptionBehavior == item.labelName ? 'active':''">{{item.labelName}}</span>
|
||||
<!-- <span>收入匹配消费</span>
|
||||
<span>超前消费</span>
|
||||
<span>滞后消费</span>
|
||||
<span>日常消费</span>
|
||||
@ -311,25 +315,37 @@
|
||||
<span>异地消费</span>
|
||||
<span>线上消费</span>
|
||||
<span>消费增长</span>
|
||||
<span>消费下降</span>
|
||||
<span>消费下降</span> -->
|
||||
</div>
|
||||
<div class="f16 mt-16"><a class="dot"></a>还款行为</div>
|
||||
<div ref="targetRepayment" class="f16 mt-16"><a class="dot"></a>还款行为</div>
|
||||
<div class="box-list">
|
||||
<span>按时还</span>
|
||||
<span>不按时还</span>
|
||||
<span v-for="(item,index) in debtorProlabels.filter(item => item.labelGroup == 'REPAYMENT')" :key="index" @click="portraitObj.repaymentBehavior = item.labelName " :class="portraitObj.repaymentBehavior == item.labelName ? 'active':''">{{item.labelName}}</span>
|
||||
<!-- <span>按时还</span>
|
||||
<span>不按时还</span> -->
|
||||
</div>
|
||||
<div class="f18 mt-16">风险评估和建议</div>
|
||||
<div class="f18 mt-16">诉讼情况</div>
|
||||
<div class="f16 mt-16"><a class="dot"></a>涉诉讼</div>
|
||||
<div class="box-list">
|
||||
<span v-for="(item,index) in debtorProlabels.filter(item => item.labelGroup == 'LAWSUIT')" :key="index" @click="portraitObj.litigationSituation = item.labelName " :class="portraitObj.litigationSituation == item.labelName ? 'active':''">{{item.labelName}}</span>
|
||||
</div>
|
||||
<div class="f16 mt-16"><a class="dot"></a>还款意愿</div>
|
||||
<div class="box-list">
|
||||
<span v-for="(item,index) in debtorProlabels.filter(item => item.labelGroup == 'WILLINGNESS_TO_REPAY')" :key="index" @click="portraitObj.repaymentWillingness = item.labelName " :class="portraitObj.repaymentWillingness == item.labelName ? 'active':''">{{item.labelName}}</span>
|
||||
</div>
|
||||
<div ref="targetRisk" class="f18 mt-16">风险评估和建议</div>
|
||||
<div class="f16 mt-16"><a class="dot"></a>风险评估</div>
|
||||
<div class="box-list">
|
||||
<span>低风险</span>
|
||||
<span v-for="(item,index) in debtorProlabels.filter(item => item.labelGroup == 'RISK')" :key="index" @click="portraitObj.riskAssessment = item.labelName " :class="portraitObj.riskAssessment == item.labelName ? 'active':''">{{item.labelName}}</span>
|
||||
<!-- <span>低风险</span>
|
||||
<span>中风险</span>
|
||||
<span>高风险</span>
|
||||
<span>高风险</span> -->
|
||||
</div>
|
||||
<div class="f16 mt-16"><a class="dot"></a>建议措施</div>
|
||||
<div class="box-list">
|
||||
<span>调整还款计划</span>
|
||||
<!-- <span v-for="(item,index) in debtorProlabels.filter(item => item.labelGroup == 'RISK')" :key="index" @click="portraitObj.suggestedMeasures = item.labelName " :class="portraitObj.suggestedMeasures == item.labelName ? 'active':''">{{item.labelName}}</span> -->
|
||||
<!-- <span>调整还款计划</span>
|
||||
<span>增加收入</span>
|
||||
<span>减少支出</span>
|
||||
<span>减少支出</span> -->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -360,10 +376,45 @@ export default {
|
||||
return {
|
||||
debtorEntityList:[],
|
||||
portraitInfo:{},
|
||||
portraitObj:{
|
||||
debtorId:'',
|
||||
id:'',
|
||||
domicilePlace:[],//债务人的户籍所在地(省/市/区)
|
||||
domicileAddress:'',//债务人的户籍详细地址
|
||||
residencePlace:[],//债务人的常住地(省/市/区)
|
||||
residenceAddress:'',//债务人的常住详细地址
|
||||
workPlace:[],//债务人的工作地(省/市/区)
|
||||
workAddress:'',//债务人的工作详细地址
|
||||
economicStatus:'',//债务人的经济状况描述
|
||||
employmentStatus:'',//债务人的雇佣状态(如 Employed, Unemployed, Self-employed)
|
||||
maritalStatus:'',//债务人的婚姻状况(如 Single, Married, Divorced)
|
||||
familyMembers:'',//债务人的家庭成员信息(可以是 JSON 字符串)
|
||||
isExecuted:'',//债务人是否被执行过法律程序(Yes 或 No)
|
||||
isBlacklisted:'',//债务人是否被列入黑名单(Yes 或 No)
|
||||
isUntrustworthy:'',//债务人是否有失信记录(Yes 或 No)
|
||||
creditRating:'',//债务人的信用等级
|
||||
overdue:'',//债务人的逾期情况描述
|
||||
arrears:'',//债务人的欠款情况描述
|
||||
creditCardCount:'',//债务人持有的信用卡数量
|
||||
creditLimit:'',//债务人所有信用卡的总授信额度
|
||||
assetSituation:'',//债务人的资产情况描述
|
||||
consumptionBehavior:'',//债务人的消费行为模式描述
|
||||
repaymentBehavior:'',//债务人的还款行为模式描述
|
||||
repaymentWillingness:'',//债务人的还款意愿描述
|
||||
litigationSituation:'',//债务人的诉讼情况描述
|
||||
riskAssessment:'',//对债务人的风险评估结果
|
||||
suggestedMeasures:'',//针对债务人情况提出的建议措施
|
||||
},
|
||||
initlocation: null,
|
||||
provinces: [],
|
||||
rightActive: 1,
|
||||
debtorProfiles:[],
|
||||
debtorProlabels:[],
|
||||
Rollposition:[{key:'targetPerson',active:1},{key:'targetPerson',active:2},{key:'targetAddress',active:3},{key:'targetRevenue',active:4},
|
||||
{key:'targetJob',active:5},{key:'targetCredit',active:6},{key:'targetCredit',active:7},{key:'targetCredit',active:8},
|
||||
{key:'targetLiability',active:9},{key:'targetMatrimony',active:10},{key:'targetMatrimony',active:11},
|
||||
{key:'targetFamily',active:12},{key:'targetConsumption',active:13},{key:'targetRisk',active:14},{key:'targetRisk',active:15},
|
||||
{key:'targetRisk',active:16},
|
||||
],
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -391,14 +442,98 @@ export default {
|
||||
return oh - 57 - 130
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
// 监听文件列表的变化,重新整理内部数据
|
||||
rightActive: {
|
||||
immediate: true,
|
||||
handler() {
|
||||
setTimeout(() => {
|
||||
this.scrollToPosition()
|
||||
}, 200);
|
||||
}
|
||||
},
|
||||
portraitObj: {
|
||||
handler: function(newVal, oldVal) {
|
||||
// 这里可以执行你需要的任何操作
|
||||
// console.log('Object changed!');
|
||||
setTimeout(() => {
|
||||
this.handleSubmit()
|
||||
}, 500);
|
||||
},
|
||||
deep: true // 确保深度监听
|
||||
}
|
||||
|
||||
},
|
||||
mounted() {
|
||||
this.initlocation = new ChinaLocation(chinalist);
|
||||
this.getCaseInfoById()
|
||||
|
||||
},
|
||||
methods: {
|
||||
isJsonString(str) {
|
||||
try {
|
||||
str.forEach(item =>{})
|
||||
return true;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
getAddress(residencePlace){
|
||||
if(residencePlace == undefined || residencePlace == null || residencePlace == '')
|
||||
{
|
||||
return ''
|
||||
}
|
||||
let residencePlaceNew = null
|
||||
if(!this.isJsonString(residencePlace)){
|
||||
residencePlaceNew = JSON.parse(residencePlace)
|
||||
}
|
||||
else
|
||||
{
|
||||
residencePlaceNew = residencePlace
|
||||
}
|
||||
|
||||
const getlocation = new ChinaLocation(chinalist);
|
||||
const newProvince = residencePlaceNew[0];
|
||||
const newCity = residencePlaceNew[1];
|
||||
const newDistrict = residencePlaceNew[2];
|
||||
getlocation.changeProvince(newProvince);
|
||||
getlocation.changeCity(newCity);
|
||||
getlocation.changeDistrict(newDistrict);
|
||||
getlocation.changeLocation(newProvince, newCity, newDistrict);
|
||||
const newLocation = getlocation.getCurrentAddress();
|
||||
return newLocation.province.name + '/' + newLocation.city.name + '/' + newLocation.district.name
|
||||
|
||||
},
|
||||
scrollToPosition() {
|
||||
const scrollbar = this.$refs.scrollContainer
|
||||
if (scrollbar) {
|
||||
const wrap = scrollbar.$refs.wrap;
|
||||
if (wrap) {
|
||||
let scrollTo = this.scrollToTarget()
|
||||
// 假设你想滚动到距离顶部100像素的位置
|
||||
// wrap.scrollTo(0, 500);
|
||||
wrap.scrollTo({
|
||||
left: 0,
|
||||
top: scrollTo,
|
||||
behavior: 'smooth' // 使用'smooth'让滚动平滑
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
scrollToTarget() {
|
||||
let positionData = this.Rollposition.find(item =>{
|
||||
return item.active == this.rightActive
|
||||
})
|
||||
const scrollContainer = this.$refs.positionContainer;
|
||||
const targetElement = this.$refs[positionData.key];
|
||||
|
||||
// 计算滚动位置(这里简单设置为滚动到目标元素的顶部)
|
||||
const scrollPosition = targetElement.offsetTop - scrollContainer.offsetTop;
|
||||
return scrollPosition
|
||||
},
|
||||
// 省市县
|
||||
loadOptions(node, resolve) {
|
||||
const { level } = node;
|
||||
console.log(level,'levellevellevellevel')
|
||||
// 模拟异步加载数据
|
||||
setTimeout(() => {
|
||||
if(level == 0)
|
||||
@ -433,7 +568,6 @@ export default {
|
||||
},
|
||||
// 获取详情
|
||||
getCaseInfoById() {
|
||||
let _that = this
|
||||
api.getCaseInfoById(this.caseId).then(res => {
|
||||
if (!res.code) {
|
||||
this.debtorEntityList = res.debtorEntityList
|
||||
@ -445,7 +579,7 @@ export default {
|
||||
getdebtorProfile(){
|
||||
api.debtorProfile_labels({}).then(res => {
|
||||
if (!res.code) {
|
||||
this.debtorProfiles = res;
|
||||
this.debtorProlabels = res;
|
||||
}
|
||||
})
|
||||
// 查询当前债务人画像
|
||||
@ -454,25 +588,27 @@ export default {
|
||||
if(debtors != undefined)
|
||||
{
|
||||
debtorId = debtors.id
|
||||
this.portraitObj.debtorId = debtorId
|
||||
}
|
||||
|
||||
api.debtorProfile_getByDebtorId(debtorId).then(res => {
|
||||
this.getByDebtorId()
|
||||
},
|
||||
// 获取人物画像列表
|
||||
getByDebtorId(){
|
||||
api.debtorProfile_getByDebtorId(this.portraitObj.debtorId).then(res => {
|
||||
if (!res.code) {
|
||||
// this.debtorProfiles = res;
|
||||
// residencePlaceDes
|
||||
this.portraitInfo = res;
|
||||
this.portraitObj = res
|
||||
}
|
||||
})
|
||||
|
||||
},
|
||||
|
||||
// 自动修改人物画像标签
|
||||
handleSubmit() {
|
||||
if(!this.$clickThrottle()) { return }//防止重复点击
|
||||
console.log(this.mrObj,'this.mrObj')
|
||||
// caseMaterial.addCaseFile(this.repaymentObj).then(res => {
|
||||
// this.$parent.getFileCaseList()
|
||||
// this.handleClose()
|
||||
// this.$message.success("操作成功");
|
||||
// })
|
||||
|
||||
// console.log(this.portraitObj,'this.mrObj')
|
||||
api.debtorProfile_edit(this.portraitObj).then(res => {
|
||||
// this.getdebtorProfile()
|
||||
})
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -684,6 +820,10 @@ export default {
|
||||
margin-right: 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
span.active{
|
||||
color: #BC6F60;
|
||||
border: solid 1px #BC6F60;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -251,7 +251,7 @@ const caseManagementApi = {
|
||||
|
||||
// 同组的用户列表(协办员选择项)
|
||||
getCurrGroupUserList: data => {
|
||||
return service.service.get(`${apiAdmin}system/user/getCurrGroupUserList`, data)
|
||||
return service.service.get(`${apiAdmin}system/user/getCurrGroupUserList`, data, {hideLoading:true})
|
||||
},
|
||||
// 配置协办员
|
||||
updateAssistMediator: data => {
|
||||
@ -260,15 +260,24 @@ const caseManagementApi = {
|
||||
|
||||
// 人物画像-查询当前债务人画像信息
|
||||
debtorProfile_getByDebtorId: data => {
|
||||
return service.service.get(`${apiAdmin}api/portrait/debtorProfile/getByDebtorId?id=${data}`)
|
||||
return service.service.get(`${apiAdmin}api/portrait/debtorProfile/getByDebtorId?id=${data}`, {hideLoading:true})
|
||||
},
|
||||
// 人物画像-编辑债务人的画像信息
|
||||
debtorProfile_edit: data => {
|
||||
return service.service.post(`${apiAdmin}api/portrait/debtorProfile/edit`, data)
|
||||
return service.service.post(`${apiAdmin}api/portrait/debtorProfile/edit`, data, {hideLoading:true})
|
||||
},
|
||||
// 人物画像-标签列表
|
||||
debtorProfile_labels: data => {
|
||||
return service.service.post(`${apiAdmin}api/portrait/debtorProfile/labels`, data)
|
||||
return service.service.post(`${apiAdmin}api/portrait/debtorProfile/labels`, data, {hideLoading:true})
|
||||
},
|
||||
|
||||
// 调解记录-新增/修改调解记录
|
||||
mediate_record_save: data => {
|
||||
return service.service.post(`${apiAdmin}case/mediate/record/save`, data)
|
||||
},
|
||||
// 调解记录-调解记录列表
|
||||
mediate_record_list: data => {
|
||||
return service.service.post(`${apiAdmin}case/mediate/record/list`, data, {hideLoading:true})
|
||||
},
|
||||
|
||||
|
||||
|
||||
@ -331,6 +331,21 @@ const util = {
|
||||
}
|
||||
target.blur();
|
||||
},
|
||||
getDatetimeValue(){
|
||||
// 获取当前时间
|
||||
const now = new Date();
|
||||
// 格式化时间
|
||||
const year = now.getFullYear();
|
||||
const month = now.getMonth() + 1;
|
||||
const day = now.getDate();
|
||||
const hour = now.getHours();
|
||||
const minute = now.getMinutes();
|
||||
const second = now.getSeconds();
|
||||
const currentTime = `${year}-${month >= 10 ? month : '0' + month}-${day >= 10 ? day : '0' + day} ${hour >= 10 ? hour : '0' + hour}:${minute >= 10 ? minute : '0' + minute}:${second >= 10 ? second : '0' + second}`;
|
||||
// 将格式化后的时间存入 data 中
|
||||
return currentTime;
|
||||
},
|
||||
|
||||
//获取本月天数
|
||||
mGetDate(){
|
||||
var date = new Date();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user