申请人、被申请人、代理人

This commit is contained in:
tdg930622 2024-12-27 14:47:36 +08:00
parent 0cb4cdd854
commit 921785c49c
3 changed files with 229 additions and 125 deletions

View File

@ -2,7 +2,7 @@
<div> <div>
<div class="mb-16 flex-row justify-content-between"> <div class="mb-16 flex-row justify-content-between">
<span class="f-weight500 f18">联系人信息</span> <span class="f-weight500 f18">联系人信息</span>
<span class="cursor-pointer color-274ea4" @click="handleContactAdd"> <span class="cursor-pointer color-274ea4" v-if="personnelTypeActive !== '申请人'" @click="handleContactAdd">
<i class="el-icon-plus"></i> 添加联系人 <i class="el-icon-plus"></i> 添加联系人
</span> </span>
</div> </div>
@ -11,44 +11,44 @@
<span class="contact-person-type" <span class="contact-person-type"
v-for="(item, index) in personnelType" :key="index" v-for="(item, index) in personnelType" :key="index"
:class="{'contact-person-active' : item === personnelTypeActive}" :class="{'contact-person-active' : item === personnelTypeActive}"
@click="personnelTypeActive = item">{{item}}</span> @click="handleTab(item)">{{item}}</span>
</div> </div>
<el-card class="mb-16"> <!-- <el-card class="mb-16">-->
<!-- <div class="personnel-list">-->
<!-- <div class="flex-row justify-content-between">-->
<!-- <div class="personnel-surname"></div>-->
<!-- <div class="personnel-info">-->
<!-- <div class="f16"><span class="f20 f-weight600">李四</span> 18336524833</div>-->
<!-- <div class="case-lable">-->
<!-- <a class="case-status0">本人</a>-->
<!-- <a class="case-status1">空号</a>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="flex-row personnel-btn">-->
<!-- <a class="cursor-pointer" @click="handleEdit">编辑</a>-->
<!-- <a class="cursor-pointer ml-8" @click="handleDelete">删除</a>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="color-86909C mt-8 ml-8 f16">-->
<!-- <a class="mr-24 cursor-pointer"><i class="el-icon-phone"></i> 电话</a>-->
<!-- <a class="ml-8 cursor-pointer"><i class="el-icon-message"></i> 短信</a>-->
<!-- </div>-->
<!-- </div>-->
<!-- </el-card>-->
<el-card class="mb-16" v-for="(item, index) in tableData" :key="index">
<div class="personnel-list"> <div class="personnel-list">
<div class="flex-row justify-content-between"> <div class="flex-row justify-content-between">
<div class="personnel-surname"></div> <div class="personnel-surname">{{item.surname}}</div>
<div class="personnel-info"> <div class="personnel-info pt-6">
<div class="f16"><span class="f20 f-weight600">李四</span> 18336524833</div> <div class="f16"><span class="f20 f-weight600">{{item.name}}</span> {{item.phone}}</div>
<div class="case-lable"> <div class="case-lable">
<a class="case-status0">本人</a> <a class="case-status0">{{item.type}}</a>
<a class="case-status1">空号</a> <!-- <a class="case-status1">空号</a>-->
</div> </div>
</div> </div>
<div class="flex-row personnel-btn"> <div class="flex-row personnel-btn">
<a class="cursor-pointer" @click="handleEdit">编辑</a> <a class="cursor-pointer" v-if="personnelTypeActive !== '申请人'" @click="handleEdit(item)">编辑</a>
<a class="cursor-pointer ml-8" @click="handleDelete">删除</a> <a class="cursor-pointer ml-8" v-if="personnelTypeActive !== '申请人'" @click="handleDelete(item)">删除</a>
</div>
</div>
<div class="color-86909C mt-8 ml-8 f16">
<a class="mr-24 cursor-pointer"><i class="el-icon-phone"></i> 电话</a>
<a class="ml-8 cursor-pointer"><i class="el-icon-message"></i> 短信</a>
</div>
</div>
</el-card>
<el-card class="mb-16">
<div class="personnel-list">
<div class="flex-row justify-content-between">
<div class="personnel-surname"></div>
<div class="personnel-info">
<div class="f16"><span class="f20 f-weight600">李四</span> 18336524833</div>
<div class="case-lable">
<a class="case-status0">本人</a>
<a class="case-status1">空号</a>
</div>
</div>
<div class="flex-row personnel-btn">
<a class="cursor-pointer">编辑</a>
<a class="cursor-pointer ml-8">删除</a>
</div> </div>
</div> </div>
<div class="color-86909C mt-8 ml-8 f16"> <div class="color-86909C mt-8 ml-8 f16">
@ -63,6 +63,7 @@
</template> </template>
<script> <script>
import contactPerson from "@/services/contactPerson";
export default { export default {
components: { components: {
contactPersonDialog: () => import('./contactPersonDialog.vue'),// contactPersonDialog: () => import('./contactPersonDialog.vue'),//
@ -85,20 +86,41 @@ export default {
total: 0 total: 0
} }
}, },
mounted() {
this.handleTab('申请人')
},
methods: { methods: {
handleTab(item) {
this.personnelTypeActive = item;
this.getList();
},
// //
getList() { getList() {
// let dataJson = { let dataJson = {
// size: 9999, size: 9999,
// current: 1, current: 1,
// caseId: this.caseId caseId: this.caseId
// } }
// caseMaterial.getCaseFileList(dataJson).then(res => { let apiUrl = '';
// if (!res.code) { if (this.personnelTypeActive === '申请人'){
// this.tableData = res.records; apiUrl = contactPerson.creditorPage;
// this.total = res.total; }else if (this.personnelTypeActive === '被申请人'){
// } apiUrl = contactPerson.debtorPage;
// }) }else {
apiUrl = contactPerson.agentPage;
}
apiUrl(dataJson).then(res => {
if (!res.code) {
this.tableData = res.records.map((item) => {
let surname = item.name.split('')[0];
return {
...item,
surname: surname
}
});
this.total = res.total;
}
})
}, },
handleContactAdd() { handleContactAdd() {
if (this.personnelTypeActive === '申请人'){ if (this.personnelTypeActive === '申请人'){
@ -106,17 +128,19 @@ export default {
}else { }else {
this.contactAddObj = { this.contactAddObj = {
caseId: this.caseId, caseId: this.caseId,
personId: '', personId: null,
type: this.personnelTypeActive rowData: null,
personnelType: this.personnelTypeActive
} }
} }
}, },
handleEdit(item) { handleEdit(item) {
// this.contactAddObj = { this.contactAddObj = {
// caseId: this.caseId, caseId: this.caseId,
// personId: item.id, personId: item.id,
// type: this.personnelTypeActive rowData: item,
// } personnelType: this.personnelTypeActive
}
}, },
handleDelete(item) { handleDelete(item) {
this.$confirm("确定删除?", "提示", { this.$confirm("确定删除?", "提示", {
@ -125,10 +149,10 @@ export default {
type: "warning", type: "warning",
}).then(() => { }).then(() => {
if(!this.$clickThrottle()) { return }// if(!this.$clickThrottle()) { return }//
// basicManage.deleteDictById({ id: scope.row.id }).then((res) => { contactPerson.contactPersonDelete(item.id).then((res) => {
// this.$message.success(""); this.$message.success("成功");
// this.getDictList(1) this.getList()
// }); });
}).catch(() => {}); }).catch(() => {});
}, },
makeCall(item) {}, makeCall(item) {},
@ -166,10 +190,10 @@ export default {
background-color: rgb(188, 111, 96); background-color: rgb(188, 111, 96);
font-size: 32px; font-size: 32px;
text-align: center; text-align: center;
line-height: 70px; line-height: 66px;
} }
.personnel-info{ .personnel-info{
width: 50%; width: 55%;
.case-lable{ .case-lable{
margin-top: 12px; margin-top: 12px;
.case-status0{ .case-status0{
@ -178,8 +202,11 @@ export default {
} }
} }
.personnel-btn{ .personnel-btn{
line-height: 26px; //line-height: 70px;
font-size: 15px; font-size: 15px;
width: 70px;
height: 70px;
padding-top: 10px;
} }
} }
</style> </style>

View File

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<el-dialog title="联系人" :visible="true" width="800px" append-to-body :close-on-click-modal="false" <el-dialog :title="diglogType" :visible="true" width="800px" append-to-body :close-on-click-modal="false"
@close="handleClose"> @close="handleClose">
<div class="dialog-content dialog-office-batch"> <div class="dialog-content dialog-office-batch">
<div class="p-16 pr-40" v-if="diglogType === '被申请人'"> <div class="p-16 pr-40" v-if="diglogType === '被申请人'">
@ -19,8 +19,8 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="与债务人关系:" prop="relation"> <el-form-item label="与债务人关系:" prop="type">
<el-select v-model="respondentObj.relation" placeholder="请选择" class="width100"> <el-select v-model="respondentObj.type" placeholder="请选择" class="width100">
<el-option <el-option
v-for="(item,index) in relationOptions" v-for="(item,index) in relationOptions"
:key="index" :key="index"
@ -34,7 +34,8 @@
<el-form-item label="电话:" prop="phone"> <el-form-item label="电话:" prop="phone">
<el-input <el-input
v-model.trim="respondentObj.phone" v-model.trim="respondentObj.phone"
placeholder="请输入" maxlength="20" placeholder="请输入"
:maxlength="11"
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
@ -48,18 +49,18 @@
:rules="rulesRespondent" :rules="rulesRespondent"
label-width="110px"> label-width="110px">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <!-- <el-col :span="12">-->
<el-form-item label="代理权限:" prop="authority"> <!-- <el-form-item label="代理权限:" prop="authority">-->
<el-select v-model="agentObj.authority" placeholder="请选择" class="width100"> <!-- <el-select v-model="agentObj.authority" placeholder="请选择" class="width100">-->
<el-option <!-- <el-option-->
v-for="(item,index) in authorityOptions" <!-- v-for="(item,index) in authorityOptions"-->
:key="index" <!-- :key="index"-->
:label="item.label" <!-- :label="item.label"-->
:value="item.value"> <!-- :value="item.value">-->
</el-option> <!-- </el-option>-->
</el-select> <!-- </el-select>-->
</el-form-item> <!-- </el-form-item>-->
</el-col> <!-- </el-col>-->
<el-col :span="12"> <el-col :span="12">
<el-form-item label="姓名:" prop="name"> <el-form-item label="姓名:" prop="name">
<el-input <el-input
@ -70,10 +71,11 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="身份证号:" prop="identityCard"> <el-form-item label="身份证号:" prop="cardNo">
<el-input <el-input
v-model.trim="agentObj.identityCard" v-model.trim="agentObj.cardNo"
placeholder="请输入" maxlength="18" placeholder="请输入"
:maxlength="18"
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
@ -82,41 +84,42 @@
<el-form-item label="电话:" prop="phone"> <el-form-item label="电话:" prop="phone">
<el-input <el-input
v-model.trim="agentObj.phone" v-model.trim="agentObj.phone"
placeholder="请输入" maxlength="11" placeholder="请输入"
:maxlength="11"
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="12">-->
<!-- <el-form-item label="单位电话:" prop="workPhone">-->
<!-- <el-input-->
<!-- v-model.trim="agentObj.workPhone"-->
<!-- placeholder="请输入" maxlength="11"-->
<!-- clearable-->
<!-- ></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="12"> <el-col :span="12">
<el-form-item label="单位电话:" prop="workPhone"> <el-form-item label="邮箱:" prop="mail">
<el-input <el-input
v-model.trim="agentObj.workPhone" v-model.trim="agentObj.mail"
placeholder="请输入" maxlength="11"
clearable
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮箱:" prop="email">
<el-input
v-model.trim="agentObj.email"
placeholder="请输入" placeholder="请输入"
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="地址:" prop="address"> <el-form-item label="地址:" prop="addr">
<el-input <el-input
v-model.trim="agentObj.address" v-model.trim="agentObj.addr"
placeholder="请输入" placeholder="请输入"
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="代理人类型:" prop="agentType"> <el-form-item label="代理人类型:" prop="type">
<el-select v-model="agentObj.agentType" placeholder="请选择" class="width100"> <el-select v-model="agentObj.type" placeholder="请选择" class="width100">
<el-option <el-option
v-for="(item,index) in agentTypeOptions" v-for="(item,index) in agentTypeOptions"
:key="index" :key="index"
@ -139,7 +142,7 @@
</div> </div>
</template> </template>
<script> <script>
import caseMaterial from "@/services/caseMaterial"; import contactPerson from "@/services/contactPerson";
export default { export default {
props: { props: {
eventDialog: { eventDialog: {
@ -166,35 +169,36 @@ export default {
respondentObj: { respondentObj: {
caseId: '', caseId: '',
name: '', name: '',
relation: '', type: '',
phone: '', phone: '',
}, },
authorityOptions: [ // authorityOptions: [
{label: '一般代理', value: 1} // {label: '', value: 1}
], // ],
agentTypeOptions: [ agentTypeOptions: [
{label: '执业律师', value: 1}, {label: '执业律师', value: '执业律师'},
{label: '基层法律服务工作者', value: 2}, {label: '基层法律服务工作者', value: '基层法律服务工作者'},
{label: '当事人的近亲属或工作人员', value: 3}, {label: '当事人的近亲属或工作人员', value: '当事人的近亲属或工作人员'},
{label: '当事人所在社区,单位以及有关社会团体推荐的公民', value: 4}, {label: '当事人所在社区,单位以及有关社会团体推荐的公民', value: '当事人所在社区,单位以及有关社会团体推荐的公民'},
{label: '经赔委员会许可的其他公民', value: 5} {label: '经赔委员会许可的其他公民', value: '经赔委员会许可的其他公民'}
], ],
agentObj: { agentObj: {
authority: '', caseId: '',
// authority: '',
name: '', name: '',
identityCard: '', cardNo: '',
phone: '', phone: '',
workPhone: '', // workPhone: '',
email: '', mail: '',
address: '', addr: '',
agentType: '', type: '',
}, },
rulesRespondent: { rulesRespondent: {
name: [ name: [
{required: true, message: '请输入', trigger: ['blur', 'change'],}, {required: true, message: '请输入', trigger: ['blur', 'change'],},
], ],
relation: [ type: [
{required: true, message: '请选择', trigger: 'change',}, {required: true, message: '请选择', trigger: 'change',},
], ],
phone: [ phone: [
@ -202,21 +206,39 @@ export default {
{ pattern: /^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})|(19[0-9]{9})$/, message: '请输入正确的手机号码', trigger: ['blur', 'change']} { pattern: /^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})|(19[0-9]{9})$/, message: '请输入正确的手机号码', trigger: ['blur', 'change']}
], ],
authority: [ // authority: [
{required: true, message: '请选择', trigger: 'change',}, // {required: true, message: '', trigger: 'change',},
], // ],
identityCard: [ cardNo: [
{ required: true, message: '请输入', trigger: 'change',}, { required: true, message: '请输入', trigger: 'change',},
{ pattern: /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/, message: '请输入正确的身份证号', trigger: ['blur', 'change']} { pattern: /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/, message: '请输入正确的身份证号', trigger: ['blur', 'change']}
], ],
mail: [
{ required: false, message: '请输入邮箱地址', trigger: 'blur' },
{ pattern: /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/, message: '请输入正确邮箱地址', trigger: ['blur', 'change']}
],
}, },
}; };
}, },
mounted() { mounted() {
// console.log(1231) // console.log(1231)
this.diglogType = this.eventDialog?.type; this.initDetails();
}, },
methods: { methods: {
initDetails() {
const { personnelType: diglogType, personId, rowData } = this.eventDialog || {};
this.diglogType = diglogType;
if (!personId) return;
const targetObj = diglogType === '被申请人' ? this.respondentObj :
diglogType === '申请人代理人' ? this.agentObj : null;
if (targetObj && rowData) {
Object.keys(targetObj).forEach(key => {
if (rowData.hasOwnProperty(key)) {
targetObj[key] = rowData[key];
}
});
}
},
handleClose() { handleClose() {
this.$emit('update:eventDialog', null) this.$emit('update:eventDialog', null)
}, },
@ -226,22 +248,38 @@ export default {
this.$refs.ruleFormRespondent.validate((valid) => { this.$refs.ruleFormRespondent.validate((valid) => {
if (valid) { if (valid) {
this.respondentObj.caseId = this.eventDialog.caseId; this.respondentObj.caseId = this.eventDialog.caseId;
// caseMaterial.addCaseFile(this.respondentObj).then(res => { if (this.eventDialog.personId){
// this.$parent.getList() contactPerson.contactPersonUpdate({...this.respondentObj, id: this.eventDialog.personId}).then(res => {
// this.handleClose() this.$parent.getList()
// this.$message.success(""); this.handleClose()
// }) this.$message.success("操作成功");
})
}else {
contactPerson.debtorAdd(this.respondentObj).then(res => {
this.$parent.getList()
this.handleClose()
this.$message.success("操作成功");
})
}
} }
}) })
}else { }else {
this.$refs.ruleFormAgent.validate((valid) => { this.$refs.ruleFormAgent.validate((valid) => {
if (valid) { if (valid) {
this.respondentObj.caseId = this.eventDialog.caseId; this.agentObj.caseId = this.eventDialog.caseId;
// caseMaterial.addCaseFile(this.respondentObj).then(res => { if (this.eventDialog.personId){
// this.$parent.getList() contactPerson.contactPersonUpdate({...this.agentObj, id: this.eventDialog.personId}).then(res => {
// this.handleClose() this.$parent.getList()
// this.$message.success(""); this.handleClose()
// }) this.$message.success("操作成功");
})
}else {
contactPerson.agentAdd(this.agentObj).then(res => {
this.$parent.getList()
this.handleClose()
this.$message.success("操作成功");
})
}
} }
}) })
} }

View File

@ -0,0 +1,39 @@
import service from "./index";
const api = '/mediate/cases/litigant/'
// contactPerson
const apiContactPerson = {
// 当事人
getLitigantByCaseId: data => {
return service.service.get(`${api}getLitigantByCaseId?id=${data}`)
},
// 删除
contactPersonDelete: data => {
return service.service.post(`${api}deleteById?id=${data}`)
},
// 编辑
contactPersonUpdate: data => {
return service.service.post(`${api}updateById`, data)
},
// 申请人-债券人
creditorPage: data => {
return service.service.post(`${api}creditor/page`, data)
},
creditorAdd: data => {
return service.service.post(`${api}creditor/add`, data)
},
// 被申请人-债务人
debtorPage: data => {
return service.service.post(`${api}debtor/page`, data)
},
debtorAdd: data => {
return service.service.post(`${api}debtor/add`, data)
},
// 代理人
agentPage: data => {
return service.service.post(`${api}agent/page`, data)
},
agentAdd: data => {
return service.service.post(`${api}agent/add`, data)
},
}
export default apiContactPerson;