This commit is contained in:
fz
2023-09-13 15:51:13 +08:00
6 changed files with 1244 additions and 366 deletions
+1
View File
@@ -48,6 +48,7 @@
"js-beautify": "1.13.0",
"js-cookie": "3.0.1",
"jsencrypt": "3.0.0-rc.1",
"moment": "^2.29.4",
"nprogress": "0.2.0",
"qrcodejs2": "0.0.2",
"quill": "1.3.7",
+54 -4
View File
@@ -1,10 +1,60 @@
import request from '@/utils/request'
// 查询在线用户列表
export function list(query) {
// 查询案件录入列表
export function caseApply(data) {
return request({
url: '/monitor/online/list',
url: '/caseApplication/list',
method: 'get',
params: query
params: data
})
}
// 立案申请
export function addCaseApply(data) {
return request({
url: '/caseApplication/addCaseApplication',
method: 'post',
data: data
})
}
// 点击修改获取主体信息
export function selectCaseApply(data) {
return request({
url: '/caseApplication/selectCaseApplication',
method: 'post',
data: data
})
}
// 修改案件信息
export function editCaseApply(data) {
return request({
url: '/caseApplication/editCaseApplication',
method: 'post',
data: data
})
}
// 删除案件信息
export function removeCaseApply(data) {
return request({
url: '/caseApplication/removeCaseApplication',
method: 'post',
data: data
})
}
// 提交
export function submitCaseApply(data) {
return request({
url: '/caseApplication/submitCaseApplication',
method: 'post',
data: data
})
}
// 下载模板
export function importTemplate(data) {
return request({
url: '/caseApplication/importTemplate',
method: 'post',
data: data
})
}
+43 -23
View File
@@ -49,11 +49,7 @@
>
</el-col>
</el-row>
<el-table
v-loading="loading"
:data="list.slice((pageNum - 1) * pageSize, pageNum * pageSize)"
style="width: 100%"
>
<el-table v-loading="loading" :data="batchList" style="width: 100%">
<el-table-column label="序号" type="index" align="center">
<template slot-scope="scope">
<span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span>
@@ -78,7 +74,7 @@
prop="filingDate"
:show-overflow-tooltip="true"
/>
<el-table-column label="仲裁方式" align="center" prop="ArbitrateMethod" />
<!-- <el-table-column label="仲裁方式" align="center" prop="ArbitrateMethod" /> -->
<el-table-column label="案件状态" align="center" prop="caseStatus" />
<el-table-column
label="操作"
@@ -102,6 +98,14 @@
v-hasPermi="['monitor:online:forceLogout']"
>详情</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="deleteRow(scope.row)"
v-hasPermi="['monitor:online:forceLogout']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
@@ -127,7 +131,9 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-button type="primary" @click="downloadTemplate">下载模板</el-button>
<el-button type="primary" @click="downloadTemplate"
>下载模板</el-button
>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="立案申请书:" prop="applybook"> </el-form-item>
@@ -174,7 +180,7 @@ export default {
// 总条数
total: 0,
// 表格数据
list: [],
batchList: [],
pageNum: 1,
pageSize: 10,
// 查询参数
@@ -207,16 +213,7 @@ export default {
},
starttime: "", //开始时间
endtime: "", //结束时间
fileList: [
// {
// name: "food.jpeg",
// url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
// },
// {
// name: "food2.jpeg",
// url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
// },
],
fileList: [],
};
},
created() {
@@ -226,11 +223,22 @@ export default {
/** 查询登录日志列表 */
getList() {
this.loading = true;
list(this.queryParams).then((response) => {
this.list = response.rows;
this.total = response.total;
this.batchList = [
{
id: 1,
caseNumber: "5644456",
applicant: "韩某某",
matterofCase: "5000",
filingDate: "2023-9-3",
// ArbitrateMethod: '线上',
caseStatus: "未开庭",
},
];
// list(this.queryParams).then((response) => {
// this.list = response.rows;
// this.total = response.total;
this.loading = false;
});
// });
},
/** 搜索按钮操作 */
handleQuery() {
@@ -257,9 +265,21 @@ export default {
editRow() {},
// 详情
detailRow() {},
// 删除
deleteRow(row) {
// const id = row.id;
this.$modal
.confirm("是否确认删除?")
.then()
.then(() => {
// this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
// 下载模板
downloadTemplate() {
console.log('下载模板');
console.log("下载模板");
},
handleRemove(file, fileList) {
console.log(file, fileList);
+197 -337
View File
@@ -7,22 +7,22 @@
:inline="true"
label-width="68px"
>
<el-form-item label="案件编号" prop="caseNumber">
<el-form-item label="案件编号" prop="caseNum">
<el-input
v-model="queryParams.caseNumber"
v-model="queryParams.caseNum"
placeholder="请输入案件编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="申请人" prop="applicant">
<!-- <el-form-item label="申请人" prop="applicant">
<el-input
v-model="queryParams.applicant"
placeholder="请输入申请人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-form-item> -->
<el-form-item>
<el-button
type="primary"
@@ -31,9 +31,9 @@
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
<!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
> -->
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
@@ -47,38 +47,49 @@
v-hasPermi="['monitor:job:add']"
>立案申请</el-button
>
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="batchApplication"
v-hasPermi="['monitor:job:add']"
>批量立案</el-button
>
</el-col>
</el-row>
<el-table
v-loading="loading"
:data="list.slice((pageNum - 1) * pageSize, pageNum * pageSize)"
style="width: 100%"
>
<el-table v-loading="loading" :data="dataList" style="width: 100%">
<el-table-column label="序号" type="index" align="center">
<template slot-scope="scope">
<span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span>
<span>{{
(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
}}</span>
</template>
</el-table-column>
<el-table-column
label="案件编号"
align="center"
prop="caseNumber"
prop="caseNum"
:show-overflow-tooltip="true"
/>
<el-table-column
<!-- <el-table-column
label="申请人"
align="center"
prop="applicant"
prop="caseAffiliates[0].name"
:show-overflow-tooltip="true"
/> -->
<el-table-column
label="案件标的"
align="center"
prop="caseSubjectAmount"
/>
<el-table-column label="案件标的" align="center" prop="matterofCase" />
<el-table-column
label="立案日期"
align="center"
prop="filingDate"
prop="registerDate"
:show-overflow-tooltip="true"
/>
<el-table-column label="仲裁方式" align="center" prop="ArbitrateMethod" />
<!-- <el-table-column label="仲裁方式" align="center" prop="arbitratMethod" /> -->
<el-table-column label="案件状态" align="center" prop="caseStatus" />
<el-table-column
label="操作"
@@ -86,6 +97,14 @@
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-check"
@click="onsubmitRow(scope.row)"
v-hasPermi="['monitor:online:forceLogout']"
>提交</el-button
>
<el-button
size="mini"
type="text"
@@ -102,339 +121,117 @@
v-hasPermi="['monitor:online:forceLogout']"
>详情</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="deleteRow(scope.row)"
v-hasPermi="['monitor:online:forceLogout']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="pageNum"
:limit.sync="pageSize"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getcaseApply"
/>
<!-- 立案申请弹框 -->
<el-dialog
:title="dialogtitle"
:visible.sync="openapply"
width="1000px"
append-to-body
>
<el-form ref="form" :model="form" :rules="rules" label-width="150px">
<p>案件信息:</p>
<hr />
<el-row>
<el-col :span="12">
<el-form-item label="案件编号:" prop="caseNumber">
<el-input
v-model="form.caseNumber"
placeholder="请输入案件编号"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="案件标的:" prop="matterofCase">
<el-input
v-model="form.matterofCase"
placeholder="请输入案件标的"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="借款开始日期:" prop="startTime">
<el-date-picker
v-model="starttime"
type="date"
placeholder="开始日期"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="借款开始日期:" prop="endTime">
<el-date-picker
v-model="endtime"
type="date"
placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人姓名:" prop="applyname">
<el-input v-model="form.jobGroup" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<!-- <el-col :span="24">
<el-form-item label="立案申请书:" prop="applybook">
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">
只能上传jpg/png文件,且不超过500kb
</div>
</el-upload>
</el-form-item>
</el-col> -->
<el-col :span="12">
<el-form-item label="合同编号:" prop="contractnum">
<el-input v-model="form.contractnum" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人主张欠本金:" prop="principal">
<el-input v-model="form.principal" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人主张欠利息:" prop="interest">
<el-input v-model="form.interest" placeholder="请输入" />
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="还款方式:" prop="repayment">
<el-input v-model="form.repayment" placeholder="请输入" />
</el-form-item>
</el-col> -->
<el-col :span="12">
<el-form-item label="逾期天数:" prop="Overduedays">
<el-input v-model="form.Overduedays" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人主张违约金:" prop="Penalty">
<el-input v-model="form.Penalty" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="申请人案件证据资料上传:"
prop="applicantEvidence"
>
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">
只能上传jpg/png文件,且不超过500kb
</div>
</el-upload>
</el-form-item>
</el-col>
<!-- 仅详情展示 -->
<el-col :span="12">
<el-form-item
label="被申请人案件证据资料上传:"
prop="respondentEvidence"
>
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">
只能上传jpg/png文件,且不超过500kb
</div>
</el-upload>
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="缴费通知单:" prop="PaymentNotice">
<el-input v-model="form.PaymentNotice" placeholder="请输入" />
</el-form-item>
</el-col> -->
</el-row>
</el-form>
<el-form ref="form2" :model="form2" :rules="rules" label-width="150px">
<p>主体信息:</p>
<hr />
<el-row>
<el-col :span="12">
<el-form-item label="主体身份类型:" prop="PaymentNotice">
<el-input v-model="form.PaymentNotice" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人:" prop="PaymentNotice">
<el-input v-model="form.PaymentNotice" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号:" prop="PaymentNotice">
<el-input v-model="form.PaymentNotice" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话:" prop="PaymentNotice">
<el-input v-model="form.PaymentNotice" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="单位地址:" prop="PaymentNotice">
<el-input v-model="form.PaymentNotice" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="单位电话:" prop="PaymentNotice">
<el-input v-model="form.PaymentNotice" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系地址:" prop="PaymentNotice">
<el-input v-model="form.PaymentNotice" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<p>代理人信息:</p>
<el-row>
<el-col :span="12">
<el-form-item label="姓名:" prop="name">
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号:" prop="name">
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话:" prop="name">
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系地址:" prop="name">
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-button @click="generateForm()">新增主体信息</el-button>
<div id="formContainer"></div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<caseentryDialog
:visible="visible"
@cancel="cancel"
:form="form"
:dialogtitle="dialogtitle"
:getcaseApply="getcaseApply"
:flag="flag"
:initpaymentArr="initpaymentArr"
:initpaymentArr1="initpaymentArr1"
></caseentryDialog>
<!-- 批量申请弹框 openbatch-->
<batchDialog
:openbatch="openbatch"
@cancelBatch="cancelBatch"
:getcaseApply="getcaseApply"
></batchDialog>
</div>
</template>
<script>
import { list } from "@/api/caseAccess/caseEntry";
import caseentryDialog from "./components/caseentryDialog";
import batchDialog from "./components/batchDialog";
import {
caseApply,
removeCaseApply,
submitCaseApply,
selectCaseApply
} from "@/api/caseAccess/caseEntry";
export default {
name: "caseEntry",
dicts: ["sys_identity_type"],
components: {
caseentryDialog,
batchDialog
},
data() {
return {
// 遮罩层
loading: true,
// 总条数
total: 0,
isapply: "申请人:",
// 表格数据
list: [],
pageNum: 1,
pageSize: 10,
dataList: [],
// 查询参数
queryParams: {
caseNumber: undefined,
applicant: undefined,
caseNum: undefined,
// applicant: undefined,
caseStatus: 0,
pageNum: 1,
pageSize: 10,
},
dialogtitle: "", //弹框标题
openapply: false, //申请弹框控制
form: {}, // 表单参数
form2: {}, //主体信息
// 表单校验
rules: {
caseNumber: [
{ required: true, message: "案件编号不能为空", trigger: "blur" },
],
invokeTarget: [
{
required: true,
message: "调用目标字符串不能为空",
trigger: "blur",
},
],
cronExpression: [
{
required: true,
message: "cron执行表达式不能为空",
trigger: "blur",
},
],
},
visible: false, //申请弹框控制
form: {},
starttime: "", //开始时间
endtime: "", //结束时间
fileList: [],
paymentArr: [],
formData: {},
flag:"-1",
initpaymentArr:[],
initpaymentArr1:[],
// 批量申请弹框
openbatch: false,
};
},
created() {
this.getList();
this.getcaseApply();
},
methods: {
generateForm() {
// var formContainer = document.getElementById("formContainer");
// var form = document.createElement("form2");
// form.setAttribute("method", "post");
// form.setAttribute("action", "#");
// var inputField = document.createElement("input");
// inputField.setAttribute("type", "text");
// inputField.setAttribute("name", "username");
// inputField.setAttribute("placeholder", "用户名");
// var passwordField = document.createElement("input");
// passwordField.setAttribute("type", "password");
// passwordField.setAttribute("name", "password");
// passwordField.setAttribute("placeholder", "密码");
// var submitButton = document.createElement("input");
// submitButton.setAttribute("type", "submit");
// submitButton.setAttribute("value", "提交");
// form.appendChild(inputField);
// form.appendChild(passwordField);
// form.appendChild(submitButton);
// formContainer.appendChild(form);
cancel() {
this.visible = false;
},
cancelBatch() {
this.openbatch = false
},
/** 查询登录日志列表 */
getList() {
getcaseApply() {
this.loading = true;
list(this.queryParams).then((response) => {
this.list = response.rows;
caseApply(this.queryParams).then((response) => {
this.dataList = response.rows;
this.dataList.forEach((item) => {
item.caseStatus = item.caseStatus == 0 ? "立案申请" : "待缴费";
});
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.pageNum = 1;
this.getList();
this.queryParams.pageNum = 1;
this.getcaseApply();
},
/** 重置按钮操作 */
resetQuery() {
@@ -443,47 +240,110 @@ export default {
},
// 立案申请
filingApplication() {
this.openapply = true;
this.form = {};
this.paymentArr = [
{
identityType: 1,
name: "",
identityNum: "",
contactTelphone: "",
workAddress: "",
workTelphone: "",
contactAddress: "",
nameAgent: "",
contactTelphoneAgent: "",
contactAddressAgent: "",
},
];
this.paymentArr1 = [
{
identityType: 2,
name: "",
identityNum: "",
contactTelphone: "",
workAddress: "",
workTelphone: "",
contactAddress: "",
nameAgent: "",
contactTelphoneAgent: "",
contactAddressAgent: "",
},
]
this.visible = true;
this.dialogtitle = "立案申请";
this.flag = "2"
},
// 提交立案申请
submitForm() {},
// 取消
cancel() {
this.openapply = false;
// 批量立案
batchApplication() {
this.openbatch = true
},
// 列表提交立案
onsubmitRow(row) {
this.$modal
.confirm("是否提交立案?")
.then(function () {
return submitCaseApply({ id: row.id });
})
.then(() => {
this.getcaseApply();
this.$modal.msgSuccess("立案成功");
})
.catch(() => {});
},
// 修改
editRow() {},
editRow(row) {
this.flag = "1"
this.form = row;
this.visible = true;
this.dialogtitle = "立案修改";
this.getInfo(row);
},
// 详情
detailRow() {},
handleRemove(file, fileList) {
console.log(file, fileList);
detailRow(row) {
this.flag = "0"
this.form = row;
this.visible = true;
this.dialogtitle = "立案详情";
this.getInfo(row);
},
handlePreview(file) {
console.log(file);
// 查找主体信息数据
getInfo(row) {
const id = row.id;
selectCaseApply({ id }).then((res) => {
this.visible = true;
this.formData = res.data;
this.initpaymentArr = [];
this.initpaymentArr1 = [];
res.data.caseAffiliates.forEach((item) => {
if (item.identityType == 1) {
this.initpaymentArr.push(item);
} else {
this.initpaymentArr1.push(item);
}
});
});
},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
files.length + fileList.length
} 个文件`
);
// 删除
deleteRow(row) {
// const id = row.id;
this.$modal
.confirm("是否确认删除?")
.then(function () {
return removeCaseApply({ id: row.id });
})
.then((res) => {
this.getcaseApply();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}?`);
},
},
};
</script>
<style lang="scss" scoped>
::v-deep .el-dialog__body {
height: 700px !important;
overflow: auto !important;
}
#formContainer {
}
</style>
@@ -0,0 +1,159 @@
<template>
<div>
<!-- 立案申请弹框 -->
<el-dialog
title="批量立案"
:visible="openbatch"
width="600px"
append-to-body
@close="cancel"
>
<el-form ref="form" :model="form" :rules="rules" label-width="150px">
<el-row>
<!-- <el-col :span="16">
<el-form-item label="申请人姓名:" prop="applyName">
<el-input v-model="form.jobName" placeholder="请输入姓名" />
</el-form-item>
</el-col>-->
<el-col :span="8">
<div class="download" style="margin-bottom: 20px">
<span> 下载: </span>
<a href="#">
<el-button class="uploadlink" @click="downloadTemplate">批量导入模板</el-button>
</a>
</div>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="立案申请书:" prop="applybook"> </el-form-item>
</el-col>
<el-col :span="12"> </el-col> -->
</el-row>
<el-row>
<el-form-item :span="24" label="批量立案信息上传:" prop="upload">
<el-upload
class="upload-demo"
ref="uploadbatch"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<!-- <el-button size="small" type="primary">点击上传</el-button> -->
<div slot="tip" class="el-upload__tip">
只接收.xlsx, .xls格式文件
</div>
</el-upload>
</el-form-item>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { importTemplate } from "@/api/caseAccess/caseEntry";
import { getToken } from "@/utils/auth";
export default {
props: ["openbatch","getcaseApply"],
data() {
return {
// key: value,
form: {},
fileList: [],
rules: {
upload: [
{ required: true, message: "批量立案文件不能为空", trigger: "blur" },
],
},
// 案件批量导入
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/caseApplication/importData",
},
};
},
methods: {
// 批量提交立案申请
submitForm() {
this.$refs.uploadbatch.submit();
},
// 取消
cancel() {
// this.openbatch = false;
this.$emit("cancelBatch");
},
handleRemove(file, fileList) {},
handlePreview(file) {},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
files.length + fileList.length
} 个文件`
);
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}?`);
},
// 下载模板 importTemplate
downloadTemplate() {
// console.log("下载模板");
this.download(
"caseApplication/importTemplate",
{},
`case_batch_${new Date().getTime()}.xlsx`
);
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
// this.upload.open = false;
this.$emit("cancelBatch");
this.upload.isUploading = false;
this.$refs.uploadbatch.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getcaseApply();
},
},
};
</script>
<style lang="scss" scoped>
.download {
a {
.uploadlink{
border: none;
color: #2092c7;
}
}
}
</style>
@@ -0,0 +1,788 @@
<template>
<div>
<el-dialog
:title="dialogtitle"
:visible="visible"
@close="cancel"
width="1000px"
append-to-body
:destroy-on-close="true"
>
<!-- 案件信息 -->
<el-form
ref="form"
:model="formData"
:rules="rules"
label-width="150px"
:disabled="flag == '0'"
>
<p>案件信息:</p>
<el-divider></el-divider>
<el-row>
<el-col :span="12">
<el-form-item label="案件编号:" prop="caseNum">
<el-input
v-model="formData.caseNum"
placeholder="请输入案件编号"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="案件标的:" prop="caseSubjectAmount">
<el-input
v-model="formData.caseSubjectAmount"
placeholder="请输入案件标的"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="借款开始日期:" prop="loanStartDate">
<el-date-picker
v-model="formData.loanStartDate"
type="datetime"
placeholder="借款开始日期"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="借款结束日期:" prop="loanEndDate">
<el-date-picker
v-model="formData.loanEndDate"
type="datetime"
placeholder="借款结束日期"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="合同编号:" prop="contractNumber">
<el-input
v-model="formData.contractNumber"
placeholder="请输入"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人主张欠本金:" prop="claimPrinciOwed">
<el-input
v-model="formData.claimPrinciOwed"
placeholder="请输入"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人主张欠利息:" prop="claimInterestOwed">
<el-input
v-model="formData.claimInterestOwed"
placeholder="请输入"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人主张违约金:" prop="claimLiquidDamag">
<el-input
v-model="formData.claimLiquidDamag"
placeholder="请输入"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="申请人案件证据资料上传:"
prop="applicantEvidence"
>
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">
只能上传jpg/png文件,且不超过500kb
</div>
</el-upload>
</el-form-item>
</el-col>
<!-- 仅详情展示 -->
<el-col :span="12">
<el-form-item
label="被申请人案件证据资料上传:"
prop="respondentEvidence"
>
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">
只能上传jpg/png文件,且不超过500kb
</div>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- 申请人主体信息 -->
<el-form
ref="form2"
:model="form2"
label-width="150px"
:disabled="flag == '0'"
>
<div v-for="(item, index) in form2.paymentArr" :key="index">
<div style="display: flex; justify-content: space-between">
<p>申请人主体信息:</p>
<el-button
type="danger"
icon="el-icon-delete"
@click="deleteData(index)"
v-if="form2.paymentArr.length > 1 && flag != '0'"
></el-button>
</div>
<el-divider></el-divider>
<el-row>
<el-col :span="12">
<el-form-item
label="申请人姓名"
:prop="'paymentArr.' + index + '.name'"
:rules="[
{
required: true,
message: '申请人不能为空',
trigger: 'blur',
},
]"
>
<el-input v-model="item.name" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="身份证号:"
:prop="'paymentArr.' + index + '.identityNum'"
:rules="[
{
required: true,
message: '身份证号不能为空',
trigger: 'blur',
},
]"
>
<el-input v-model="item.identityNum" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="联系电话:"
:prop="'paymentArr.' + index + '.contactTelphone'"
:rules="[
{
required: true,
message: '联系电话不能为空',
trigger: 'blur',
},
]"
>
<el-input v-model="item.contactTelphone" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="单位地址:"
:prop="'paymentArr.' + index + '.workAddress'"
:rules="[
{
required: true,
message: '单位地址不能为空',
trigger: 'blur',
},
]"
>
<el-input v-model="item.workAddress" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="单位电话:"
:prop="'paymentArr.' + index + '.workTelphone'"
:rules="[
{
required: true,
message: '单位电话不能为空',
trigger: 'blur',
},
]"
>
<el-input v-model="item.workTelphone" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="联系地址:"
:prop="'paymentArr.' + index + '.contactAddress'"
:rules="[
{
required: true,
message: '联系地址不能为空',
trigger: 'blur',
},
]"
>
<el-input v-model="item.contactAddress" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<p>代理人信息:</p>
<el-row>
<el-col :span="12">
<el-form-item
label="姓名:"
:prop="'paymentArr.' + index + '.nameAgent'"
:rules="[
{
required: true,
message: '姓名不能为空',
trigger: 'blur',
},
]"
>
<el-input v-model="item.nameAgent" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="身份证号:"
:prop="'paymentArr.' + index + '.identityNumAgent'"
:rules="[
{
required: true,
message: '身份证号不能为空',
trigger: 'blur',
},
]"
>
<el-input
v-model="item.identityNumAgent"
placeholder="请输入"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="联系电话:"
:prop="'paymentArr.' + index + '.contactTelphoneAgent'"
:rules="[
{
required: true,
message: '联系电话不能为空',
trigger: 'blur',
},
]"
>
<el-input
v-model="item.contactTelphoneAgent"
placeholder="请输入"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="联系地址:"
:prop="'paymentArr.' + index + '.contactAddressAgent'"
:rules="[
{
required: true,
message: '联系地址不能为空',
trigger: 'blur',
},
]"
>
<el-input
v-model="item.contactAddressAgent"
placeholder="请输入"
/>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<el-button
v-if="flag == 1 || flag == 2"
type="primary"
plain
@click="generateForm"
>新增申请人主体信息</el-button
>
<!-- 被申请人主体信息 -->
<el-form
ref="form3"
label-width="150px"
:disabled="flag == '0'"
:model="form3"
>
<div
v-for="(itm, index) in form3.paymentArr1"
:key="index + form2.paymentArr.length"
>
<div style="display: flex; justify-content: space-between">
<p>被申请人主体信息:</p>
<el-button
type="danger"
icon="el-icon-delete"
@click="deleteData1(index)"
v-if="form3.paymentArr1.length > 1 && flag != '0'"
></el-button>
</div>
<el-divider></el-divider>
<el-row>
<el-col :span="12">
<el-form-item
label="被申请人姓名"
:prop="'paymentArr1.' + index + '.name'"
:rules="[
{
required: true,
message: '被申请人不能为空',
trigger: 'blur',
},
]"
>
<el-input v-model="itm.name" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="身份证号:"
:prop="'paymentArr1.' + index + '.identityNum'"
:rules="[
{
required: true,
message: '身份证号不能为空',
trigger: 'blur',
},
]"
>
<el-input v-model="itm.identityNum" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="联系电话:"
:prop="'paymentArr1.' + index + '.contactTelphone'"
:rules="[
{
required: true,
message: '联系电话不能为空',
trigger: 'blur',
},
]"
>
<el-input v-model="itm.contactTelphone" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="单位地址:"
:prop="'paymentArr1.' + index + '.workAddress'"
:rules="[
{
required: true,
message: '单位地址不能为空',
trigger: 'blur',
},
]"
>
<el-input v-model="itm.workAddress" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="单位电话:"
:prop="'paymentArr1.' + index + '.workTelphone'"
:rules="[
{
required: true,
message: '单位电话不能为空',
trigger: 'blur',
},
]"
>
<el-input v-model="itm.workTelphone" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="联系地址:"
:prop="'paymentArr1.' + index + '.contactAddress'"
:rules="[
{
required: true,
message: '联系地址不能为空',
trigger: 'blur',
},
]"
>
<el-input v-model="itm.contactAddress" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<p>代理人信息:</p>
<el-row>
<el-col :span="12">
<el-form-item
label="姓名:"
:prop="'paymentArr1.' + index + '.nameAgent'"
:rules="[
{
required: true,
message: '姓名不能为空',
trigger: 'blur',
},
]"
>
<el-input v-model="itm.nameAgent" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="身份证号:"
:prop="'paymentArr1.' + index + '.identityNumAgent'"
:rules="[
{
required: true,
message: '身份证号不能为空',
trigger: 'blur',
},
]"
>
<el-input v-model="itm.identityNumAgent" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="联系电话:"
:prop="'paymentArr1.' + index + '.contactTelphoneAgent'"
:rules="[
{
required: true,
message: '联系电话不能为空',
trigger: 'blur',
},
]"
>
<el-input
v-model="itm.contactTelphoneAgent"
placeholder="请输入"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="联系地址:"
:prop="'paymentArr1.' + index + '.contactAddressAgent'"
:rules="[
{
required: true,
message: '联系地址不能为空',
trigger: 'blur',
},
]"
>
<el-input
v-model="itm.contactAddressAgent"
placeholder="请输入"
/>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<el-button
v-if="flag == 1 || flag == 2"
type="primary"
plain
@click="generateForm1()"
>新增被申请人主体信息</el-button
>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm" v-if="flag != 0"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import moment from "moment"; //导入文件
import { addCaseApply, editCaseApply } from "@/api/caseAccess/caseEntry";
export default {
props: [
"visible",
"dialogtitle",
"form",
"getcaseApply",
"flag",
"initpaymentArr",
"initpaymentArr1",
],
data() {
return {
formData: this.form,
form2: {
paymentArr: [
{
identityType: 1,
name: "",
identityNum: "",
contactTelphone: "",
workAddress: "",
workTelphone: "",
contactAddress: "",
nameAgent: "",
contactTelphoneAgent: "",
contactAddressAgent: "",
},
],
}, //申请人主体信息
form3: {
paymentArr1: [
{
identityType: 2,
name: "",
identityNum: "",
contactTelphone: "",
workAddress: "",
workTelphone: "",
contactAddress: "",
nameAgent: "",
contactTelphoneAgent: "",
contactAddressAgent: "",
},
],
}, //被申请人主体信息
// 表单校验
rules: {
caseNum: [
{
required: true,
message: "案件编号不能为空",
trigger: ["change", "blur"],
},
{ min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" },
],
caseSubjectAmount: [
{
required: true,
message: "案件标的不能为空",
trigger: ["change", "blur"],
},
// { type: "Number", message: "案件标的必须为数字值" },
],
loanStartDate: [
{
required: true,
message: "借款开始日期不能为空",
trigger: "blur",
},
],
loanEndDate: [
{
required: true,
message: "借款结束日期不能为空",
trigger: "blur",
},
],
name: [
{
required: true,
message: "申请人姓名不能为空",
trigger: "blur",
},
],
contractNumber: [
{
required: true,
message: "合同编号不能为空",
trigger: "blur",
},
],
claimPrinciOwed: [
{
required: true,
message: "申请人主张欠本金不能为空",
trigger: "blur",
},
// { type: 'number', message: '申请人主张欠本金必须为数字值'}
],
claimInterestOwed: [
{
required: true,
message: "申请人主张欠利息不能为空",
trigger: "blur",
},
// { type: 'number', message: '申请人主张欠利息必须为数字值'}
],
Overduedays: [
{
required: true,
message: "逾期天数不能为空",
trigger: "blur",
},
// { type: 'number', message: '逾期天数必须为数字值'}
],
claimLiquidDamag: [
{
required: true,
message: "申请人主张违约金不能为空",
trigger: "blur",
},
// { type: 'number', message: '申请人主张违约金必须为数字值'}
],
},
fileList: [],
};
},
watch: {
visible: {
handler(val) {
if (val) {
this.formData = this.form;
if (this.flag == "1" || this.flag == "0") {
setTimeout(() => {
this.form2.paymentArr = this.initpaymentArr;
this.form3.paymentArr1 = this.initpaymentArr1;
}, 1000);
}
}
},
deep: true,
},
},
methods: {
handleRemove(file, fileList) {},
handlePreview(file) {},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
files.length + fileList.length
} 个文件`
);
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}?`);
},
// 取消
cancel() {
this.$emit("cancel");
},
// 新增申请人主体信息
generateForm() {
this.form2.paymentArr.push({
identityType: 1,
name: "",
identityNum: "",
contactTelphone: "",
workAddress: "",
workTelphone: "",
contactAddress: "",
nameAgent: "",
contactTelphoneAgent: "",
contactAddressAgent: "",
});
},
// 新增被申请人主体信息
generateForm1() {
this.form3.paymentArr1.push({
identityType: 2,
name: "",
identityNum: "",
contactTelphone: "",
workAddress: "",
workTelphone: "",
contactAddress: "",
nameAgent: "",
contactTelphoneAgent: "",
contactAddressAgent: "",
});
},
// 删除申请人主体信息
deleteData(index) {
this.form2.paymentArr.splice(index, 1);
},
// 删除被申请人主体信息
deleteData1(index) {
this.form3.paymentArr1.splice(index, 1);
},
// 提交立案申请 addCaseApply
submitForm() {
this.$refs["form"].validate((valid) => {
this.formData.loanStartDate = moment(
this.formData.loanStartDate
).format("YYYY-MM-DD HH:mm:ss");
this.formData.loanEndDate = moment(this.formData.loanEndDate).format(
"YYYY-MM-DD HH:mm:ss"
);
if (valid) {
this.$refs["form2"].validate((valid) => {
if (valid) {
this.$refs["form3"].validate((vail) => {
if (vail) {
this.formData.caseAffiliates = [
...this.form2.paymentArr,
...this.form3.paymentArr1,
];
if (this.formData.id) {
editCaseApply({
...this.formData,
caseAffiliates: this.formData.caseAffiliates,
}).then((res) => {
this.$modal.msgSuccess("修改成功");
this.$emit("cancel");
this.getcaseApply();
});
} else {
addCaseApply({
...this.formData,
caseAffiliates: this.formData.caseAffiliates,
}).then((response) => {
this.$modal.msgSuccess("新增成功");
this.$emit("cancel");
this.getcaseApply();
});
}
// this.$emit("cancel");
// this.getcaseApply();
}
});
}
});
}
});
},
},
};
</script>
<style lang="scss" scoped>
::v-deep .el-dialog__body {
height: 700px !important;
overflow: auto !important;
}
</style>