Merge branch 'main' into 'stg'

Main

See merge request cloud-mediate/mediate-manage-web!13
This commit is contained in:
刘翕 2025-02-12 03:45:47 +00:00
commit 0e3caa9b9f
7 changed files with 146 additions and 26 deletions

View File

@ -73,12 +73,14 @@
</el-table-column>
<el-table-column label="跟进情况" width="140">
<template slot-scope="scope">
{{$util.getTelephoneTypeData(scope.row.linkedSituation).label}}
{{scope.row.linkedSituation != null ? $util.getTelephoneTypeData(scope.row.linkedSituation).label :''}}
<!-- {{$util.getTelephoneTypeData(scope.row.linkedSituation).label}} -->
</template>
</el-table-column>
<el-table-column label="调解进度" width="140">
<template slot-scope="scope">
{{ materialTypeOptions.find(item => item.value == scope.row.mediateStatus).label }}
{{scope.row.mediateStatus != null ? materialTypeOptions.find(item => item.value == scope.row.mediateStatus).label : ''}}
<!-- {{ materialTypeOptions.find(item => item.value == scope.row.mediateStatus).label }} -->
</template>
</el-table-column>
<el-table-column label="沟通对象" width="350" show-overflow-tooltip>
@ -593,6 +595,7 @@ export default {
this.communicationRecord.push(item)
})
})
console.log(this.communicationRecord,'this.communicationRecord')
// this.communicationRecord = res
}
})

View File

@ -165,7 +165,6 @@ import apipk from "@/services/casePackageManagement";
handleSubmit(){
if(!this.$clickThrottle()) { return }//
this.$refs.ruleFormBase.validate((valid) => {
if (valid){
let data = {
@ -176,9 +175,7 @@ import apipk from "@/services/casePackageManagement";
this.$parent.getCaseInfoList(1)
this.$message.success("批量导入案件成功,导入错误案件请在错误修复里面进行查看!");
})
}
})
},

View File

@ -216,7 +216,13 @@ import caseapi from "@/services/caseManagement";
}).catch(() => {});
},
handleCaseShow(scope){
this.fileDialog = {showfile:{url:scope.row.proofUrl},filelist:[]}
//
this.$fetchApi.viewFullFile({path: scope.row.proofUrl}).then((res) => {
this.fileDialog = {showfile: {url: res}, filelist: []}
});
// this.fileDialog = {showfile:{url:scope.row.proofUrl},filelist:[]}
},
}
};

View File

@ -121,8 +121,62 @@
<div class="descriptions-t-item-l color-86909C">{{item.name}}:</div>
<div class="descriptions-t-item-r">{{item.fieldValue}}</div>
</div>
</div>
<div class="descriptions-t mt-16">
<div class="f16 f-weight600 descriptions-t-title">案件信息</div>
<div class="flex-row descriptions-t-item">
<div class="descriptions-t-item-l color-86909C">案件包名称:</div>
<div class="descriptions-t-item-r">{{baseInfo.casePkg.pkgName}}</div>
</div>
<div class="flex-row descriptions-t-item bgColor-F7F8FA">
<div class="descriptions-t-item-l color-86909C">金融机构:</div>
<div class="descriptions-t-item-r">{{baseInfo.casePkg.entrustingAgencyName}}</div>
</div>
<div class="flex-row descriptions-t-item">
<div class="descriptions-t-item-l color-86909C">委案开始日期:</div>
<div class="descriptions-t-item-r">{{baseInfo.casePkg.planStartTime}}</div>
</div>
<div class="flex-row descriptions-t-item bgColor-F7F8FA">
<div class="descriptions-t-item-l color-86909C">委案结束日期:</div>
<div class="descriptions-t-item-r">{{baseInfo.casePkg.planEndTime}}</div>
</div>
<div class="flex-row descriptions-t-item">
<div class="descriptions-t-item-l color-86909C">委案渠道:</div>
<div class="descriptions-t-item-r">{{baseInfo.casePkg.channel}}</div>
</div>
</div>
<div class="descriptions-t mt-16">
<div class="f16 f-weight600 descriptions-t-title">代理人信息</div>
<div v-for="(item,index) in AgentData" :key="index">
<div class="flex-row descriptions-t-item">
<div class="descriptions-t-item-l color-86909C">姓名:</div>
<div class="descriptions-t-item-r">{{item.name}}</div>
</div>
<div class="flex-row descriptions-t-item bgColor-F7F8FA">
<div class="descriptions-t-item-l color-86909C">身份证号:</div>
<div class="descriptions-t-item-r">{{item.cardNo}}</div>
</div>
<div class="flex-row descriptions-t-item">
<div class="descriptions-t-item-l color-86909C">手机号码:</div>
<div class="descriptions-t-item-r">{{item.phone}}</div>
</div>
<div class="flex-row descriptions-t-item bgColor-F7F8FA">
<div class="descriptions-t-item-l color-86909C">电子邮箱:</div>
<div class="descriptions-t-item-r">{{item.mail}}</div>
</div>
<div class="flex-row descriptions-t-item">
<div class="descriptions-t-item-l color-86909C">地址:</div>
<div class="descriptions-t-item-r">{{item.addr}}</div>
</div>
<div class="flex-row descriptions-t-item bgColor-F7F8FA">
<div class="descriptions-t-item-l color-86909C">代理人类型:</div>
<div class="descriptions-t-item-r">{{item.type}}</div>
</div>
</div>
</div>
</div>
<!-- 共债 -->
@ -306,6 +360,7 @@
</template>
<script>
import api from "@/services/caseManagement";
import contactPerson from "@/services/contactPerson";
export default {
components: {
showFile: () => import('../../../components/showFile.vue'),//
@ -340,6 +395,7 @@ export default {
visiblemediatRecordObj:null,
eventDialog: {caseId: ''},
leftActive: 1,
AgentData:[],
fileList: [],
mediationRecord: [],//
baseInfo: {},//
@ -381,6 +437,7 @@ export default {
this.eventDialog.caseId = this.caseId
this.getCaseInfoById();//
this.getAgentList()
this.getmediate_record()
},
beforeDestroy() {
@ -389,6 +446,21 @@ export default {
// }
},
methods: {
//
getAgentList() {
let dataJson = {
size: 9999,
current: 1,
caseId: this.caseId
}
contactPerson.agentPage(dataJson).then(res => {
if (!res.code) {
this.AgentData = res.records
}
})
},
debtorEntityCardNo(datalist, len) {
let datacardno = ''
let dataphone = ''

View File

@ -46,7 +46,7 @@
</upload-file>
</el-form-item>
<el-form-item label="">
<el-button @click="AddFlag = false" size="small">取消</el-button>
<el-button @click="AddFlag = false;fileList=[]" size="small">取消</el-button>
<el-button type="primary" @click="handleSubmitRepayment()" size="small">保存</el-button>
</el-form-item>
</el-form>
@ -115,8 +115,8 @@
</el-form>
<span slot="reference" class="color-86909C"><i class="el-icon-medal"></i>&nbsp;效验</span>
</el-popover>
<span class="color-86909C ml-16" v-if="proofitem.status.code != 1" @click="updateClick(index,proofitem)"><i class="el-icon-edit"></i>&nbsp;编辑</span>
<span class="color-86909C ml-16" v-if="proofitem.status.code != 1" @click="DeleteClick(proofitem)"><i class="el-icon-delete"></i>&nbsp;删除</span>
<span class="color-86909C ml-16 cursor-pointer" v-if="proofitem.status.code != 1" @click="updateClick(index,proofitem)"><i class="el-icon-edit"></i>&nbsp;编辑</span>
<span class="color-86909C ml-16 cursor-pointer" v-if="proofitem.status.code != 1" @click="DeleteClick(proofitem)"><i class="el-icon-delete"></i>&nbsp;删除</span>
</div>
</div>
</el-form>
@ -265,6 +265,7 @@ import api from "@/services/caseManagement";
updateClick(index,proofitem){
this.updateRow = index;
this.repaymentObj = proofitem
this.repaymentObj.mediaPath = [proofitem.proofUrl]
this.fileList = [{url: proofitem.proofUrl,fileName:'上传'}]
},
//
@ -319,6 +320,7 @@ import api from "@/services/caseManagement";
this.repaymentObj.updateAt =undefined
this.repaymentObj.updateBy =undefined
this.repaymentObj.uploaderName =undefined
this.repaymentObj.proofUrl = this.repaymentObj.mediaPath[0]
api.gettraceProof_edit(this.repaymentObj).then(res => {
if(!res.code){
this.updateRow = -1

View File

@ -3,8 +3,9 @@
<div class="mb-16 flex-row justify-content-between">
<span class="f-weight500 f18">还款计划</span>
<span class="cursor-pointer" v-if="planList.length == 0" @click="updateFlag = true"><i class="el-icon-plus"></i> 添加还款计划</span>
<span class="cursor-pointer" v-else @click="updateFlag = true"><i class="el-icon-plus"></i> 编辑还款计划</span>
<span class="cursor-pointer" v-else @click="UpdatePlanClick"><i class="el-icon-plus"></i> 编辑还款计划</span>
</div>
<div v-if="planList.length >0 && !updateFlag" class="case-detail-des flex-column mb-16 p-16 border-radius-8">
<div class="flex-column justify-content-between">
<el-form ref="ruleFormRepayment"
@ -47,7 +48,8 @@
type="date"
placeholder="选择先还日期"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd">
format="yyyy-MM-dd"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<el-form-item v-if="repaymentObj.type == 'MIX'" label="分期部分金额" prop="productTypeId">
@ -93,7 +95,8 @@
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd">
format="yyyy-MM-dd"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<el-form-item label="备注说明" prop="remark">
@ -150,7 +153,8 @@
type="date"
placeholder="选择先还日期"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd">
format="yyyy-MM-dd"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<el-form-item v-if="repaymentObj.type == 'MIX'" label="分期部分金额" prop="productTypeId">
@ -196,7 +200,8 @@
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd">
format="yyyy-MM-dd"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<el-form-item label="备注说明" prop="remark">
@ -208,7 +213,7 @@
</el-input>
</el-form-item>
<el-form-item label="">
<el-button @click="updateFlag = false" size="small">取消</el-button>
<el-button @click="cancelPlanClick" size="small">取消</el-button>
<el-button type="primary" @click="handleSubmitRepayment()" size="small">保存</el-button>
</el-form-item>
</el-form>
@ -230,18 +235,40 @@ import api from "@/services/caseManagement";
},
},
data() {
var validatePass2 = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入分期前偿还金额'));
} else if (!/^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0.\d{1,2}$/.test(value)) {
callback(new Error('只能输入2位小数金额'));
} else if (value > this.repaymentObj.totalAmount) {
} else if (value*1 > this.repaymentObj.totalAmount*1) {
callback(new Error('分期前偿还金额不能大于还款金额!'));
} else {
callback();
}
};
var validatePass3 = (rule, value, callback) => {
if (value === '') {
callback(new Error('请选择还款截止日期'));
} else if (this.repaymentObj.partDate != '' && this.repaymentObj.partDate != undefined) {
let date1 = new Date(value);//
let date2 = new Date(this.repaymentObj.partDate);//
let timestamp1 = date1.getTime();
let timestamp2 = date2.getTime();
if(timestamp2 > timestamp1)
{
callback(new Error('还款截止日期不能小于分期前偿还日期!'));
}
} else {
callback();
}
};
return {
pickerOptions: {
disabledDate(v) {
return v.getTime() < new Date().getTime() - 86400000;// - 86400000
}
},
updateFlag:false,
repaymentObj:{type:'ALL'},
RepaymentOptions:[{label:'一次性还款',value:'ALL'},{label:'全部分期',value:'STAGES'},{label:'部分先还加分期',value:'MIX'},{label:'其他',value:'OTHER'}],
@ -253,8 +280,11 @@ import api from "@/services/caseManagement";
{ required: true, message: '请输入还款金额', trigger: 'change',},
{ pattern: /^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0.\d{1,2}$/, message: '请输入2位小数金额', trigger: ['blur', 'change']}
],
// paybackDate: [
// { required: true, message: '', trigger: 'change',},
// ],
paybackDate: [
{ required: true, message: '请选择还款截止日期', trigger: 'change',},
{ required: true, validator: validatePass3, trigger: 'change',},
],
stagesDay: [
{ required: true, message: '请选择每期还款日期', trigger: 'change',},
@ -274,7 +304,8 @@ import api from "@/services/caseManagement";
{ pattern: /^[1-9]\d*$/, message: '只能输入正整数', trigger: ['blur', 'change']}
],
},
planList:[]
planList:[],
oldrepaymentObj:{},
};
},
@ -321,9 +352,17 @@ import api from "@/services/caseManagement";
}
}
},
//
UpdatePlanClick()
{
this.updateFlag = true
this.oldrepaymentObj = JSON.parse(JSON.stringify(this.repaymentObj))
},
//
cancelPlanClick(){
this.updateFlag = false
this.repaymentObj = JSON.parse(JSON.stringify(this.oldrepaymentObj))
},
//
handleClose() {
this.$emit('update:eventTraDialog', null)

View File

@ -361,10 +361,6 @@
}
})
},
getCaseInfoList(val){
this.getCaseapkList(2)
this.getCaseInfoList()
},
//
getCaseapkList(type =1){
workApi.getmy_case_pkg({size:100,current:1}).then(res => {
@ -385,7 +381,12 @@
})
},
//
getCaseInfoList(){
getCaseInfoList(val){
console.log(val,'getCaseInfoListgetCaseInfoListgetCaseInfoList')
if(val == 1){
this.getCaseapkList(2)
}
pkapi.getCasePkgQuery({current:1,size:100,pkgName:this.queryParamFP.pkgName}).then(res => {
if (!res.code) {
this.tableData = res.records;