被申请人缴费 #32

Merged
hanchaobo merged 4 commits from hcb into dev 2024-01-31 10:06:59 +00:00
6 changed files with 637 additions and 608 deletions
+42 -10
View File
@@ -33,7 +33,7 @@
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="addCase(2)">新增案件</el-button>
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="addCase()">新增案件</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini"
@@ -60,7 +60,7 @@
<el-table-column label="操作" align="center" 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-if="statusRole(scope.row.caseFlowId)">提交</el-button> -->
<el-button size="mini" @click="eidtNodeprocess(scope.row,1)" type="text"
<el-button size="mini" @click="eidtNodeprocess(scope.row)" type="text"
icon="el-icon-edit" v-hasPermi="['caseManagement:list:edit']">修改</el-button>
<el-button size="mini" @click="checkDetail(scope.row)" type="text" icon="el-icon-view">查看详情</el-button>
<!-- <el-button size="mini" @click="consultantApplica(scope.row)" type="text" icon="el-icon-tickets">法律顾问用印申请</el-button> -->
@@ -116,6 +116,9 @@
<!-- 案件受理 -->
<caseAcceptance :showAcceptance="showAcceptance" @cancelAcceptance="cancelAcceptance"
:caseAcceptanceData="caseAcceptanceData" @getList="getList"></caseAcceptance>
<!-- 被申请人缴费 -->
<respondentPay :openResPay="openResPay" :resPayTitle="resPayTitle" :formResPayDetail="formResPayDetail" :resPayId="resPayId" :resPayForm="resPayForm"
:queryParams="queryParams" @getList="getList" @paycancelRes="paycancelRes" :formResPay="formResPay"></respondentPay>
<!-- 调解员弹窗 -->
<selectMediator @cancelMediator="cancelMediator" :mediatorVisable="mediatorVisable" :mediatorData="mediatorData"
@getList="getList" :queryParams="queryParams"></selectMediator>
@@ -149,6 +152,7 @@ import caseCompressionPackage from './components/caseCompressionPackage.vue';
import mediationCaseDetails from './components/mediationCaseDetails.vue'
import mediationCaseLog from './components/mediationCaseLog.vue'
import payDialog from "./components/payDialog.vue";
import respondentPay from "./components/respondentPay.vue"
import paymentdetailsDialog from './components/paymentdetailsDialog.vue'
import caseAcceptance from './components/caseAcceptance.vue'
import selectMediator from './components/selectMediator.vue'
@@ -176,7 +180,8 @@ export default {
timeConfirm,
mediation,
confirmMediation,
caseFilingDetailsPage
caseFilingDetailsPage,
respondentPay
},
data() {
return {
@@ -195,9 +200,13 @@ export default {
dataList: [],
addVisable: false,//新增弹窗
openPay: false, //缴费弹框
openResPay:false,//被申请人缴费弹窗
formPayDetail: {},
formResPayDetail:{},
payId: null,
resPayId:null,
payForm: {},
resPayForm:{},
openCompressedPackages: false,//压缩包导入弹窗
processVisable: false,//案件详情
showcaseLog: false,//案件日志
@@ -207,6 +216,7 @@ export default {
mediationVisable:false,//待调解弹窗
mediationData:{},
payTitle:"",//缴费标题
resPayTitle:'',//被申请人缴费标题
paymentConfirma:{},//缴费确认
showAcceptance:false,//案件受理弹框
caseAcceptanceData:{},//案件受理数据
@@ -222,6 +232,7 @@ export default {
detailsAwardNum:{},
flagLoadingS: true,
formPayDetailAffiliate:{},
formResPay:{},
mediatorData:{},
flag: null,
caseData: {},
@@ -254,7 +265,7 @@ export default {
}else if(type == 2){
// 缴费
this.payStatus(val);
}else if(type == 3){
}else if(type == 3 || type == 45){
// 确认缴费
this.paymentconfirmationRow(val);
}else if(type == 4){
@@ -297,6 +308,9 @@ export default {
this.receivedMediation(val)
}else if(type == 17){
//结束
}else if(type == 44){
// 被申请人缴费
this.resPayStatus(val)
}
},
/**查询按钮列表 */
@@ -313,8 +327,8 @@ export default {
})
},
/** 新增案件 */
addCase(val) {
this.addModifyData =val;
addCase() {
this.addModifyData =1;
this.addVisable = true;
this.caseData = {};
this.caseDisabled = false;
@@ -322,16 +336,15 @@ export default {
},
/** 查看详情 */
checkDetail(val) {
this.addModifyData =2;
this.addVisable = true;
this.caseData = val;
this.$set(this.caseData,'flag',1)
this.caseDisabled = true;
this.tabFlag = true;
},
/** 修改案件 */
eidtNodeprocess(row,val) {
console.log(row,val)
this.addModifyData = val
this.addModifyData = 3
this.addVisable = true;
this.caseData = row;
this.$set(this.caseData,'flag',2)
@@ -345,10 +358,17 @@ export default {
/** 缴费 */
payStatus(val) {
this.getDetail({ id: val.id });
this.payTitle = "缴费";
this.payTitle = "申请人缴费";
this.payId = val.id;
this.openPay = true;
},
/** 被申请人缴费 */
resPayStatus(val) {
this.getResDetail({ id: val.id });
this.resPayTitle = "被申请人缴费";
this.resPayId = val.id;
this.openResPay = true;
},
/** 列表提交立案 */
onsubmitRow(row) {
this.$modal
@@ -389,6 +409,14 @@ export default {
this.payForm.caseId = res.data.id;
});
},
getResDetail(parms) {
caseApplicationSelectById(parms).then((res) => {
this.formResPayDetail = res.data;
this.formResPay = res.data.affiliate;
this.resPayForm.feePayable = res.data.feePayable;
this.resPayForm.caseId = res.data.id;
});
},
/** 确认调解员 */
secretaryConfirm(val) {
this.confirmVisable = true;
@@ -446,6 +474,10 @@ export default {
paycancelRow(row) {
this.openPay = false;
},
/**被申请人取消缴费*/
paycancelRes(row) {
this.openResPay = false;
},
/** 取消调解员弹窗 */
cancelMediator() {
this.mediatorVisable = false;
File diff suppressed because it is too large Load Diff
@@ -1,32 +1,41 @@
<template>
<div>
<!-- 案件受理 -->
<el-dialog
title="案件受理"
:visible="showAcceptance"
@close="cancel"
:destroy-on-close="true"
center
>
<el-dialog title="案件受理" :visible="showAcceptance" @close="cancel" :destroy-on-close="true" center>
<el-form ref="courtReviewform" :model="courtReviewform">
<el-form-item label="调解方式:">
<el-form-item label="是否同意受理:">
<el-radio-group v-model="courtReviewform.agreeFlag">
<el-radio :label="1">是</el-radio>
<el-radio :label="0">否</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="调解方式:" v-if="courtReviewform.agreeFlag == 1">
<el-radio-group v-model="courtReviewform.mediationMethod">
<el-radio :label="1">开庭调解</el-radio>
<el-radio :label="2">线下调解</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="是否纸质送达:">
<el-form-item label="是否纸质送达:" v-if="courtReviewform.agreeFlag == 1">
<el-radio-group v-model="courtReviewform.paperFlag">
<el-radio :label="1">是</el-radio>
<el-radio :label="0">否</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="是否仲裁确认:">
<el-form-item label="是否仲裁确认:" v-if="courtReviewform.agreeFlag == 1" >
<el-radio-group v-model="courtReviewform.arbitrateConfirm">
<el-radio :label="1">是</el-radio>
<el-radio :label="0">否</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="courtReviewform.agreeFlag == 0" label="拒绝理由:" prop="rejectReason" :rules="[
{
required: true,
message: '拒绝理由不能为空',
trigger: 'blur',
},
]">
<el-input v-model="courtReviewform.rejectReason" type="textarea" :rows="8" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm" class="endbutton"><span>确 定</span></el-button>
@@ -37,16 +46,17 @@
</template>
<script>
import {accept} from '@/api/caseManagement/caseManagement.js'
import { accept } from '@/api/caseManagement/caseManagement.js'
export default {
name: "caseAcceptance",
props: ["showAcceptance", "caseAcceptanceData", "getList","queryParams"],
props: ["showAcceptance", "caseAcceptanceData", "getList", "queryParams"],
data() {
return {
courtReviewform: {
mediationMethod:2,
paperFlag:0,
arbitrateConfirm:0
mediationMethod: 2,
paperFlag: 0,
arbitrateConfirm: 0,
agreeFlag: 0
},
};
},
@@ -61,18 +71,18 @@ export default {
submitForm() {
this.$refs["courtReviewform"].validate((valid) => {
if (valid) {
let paramsdata ={
id:this.caseAcceptanceData.id,
caseFlowId:this.caseAcceptanceData.caseFlowId,
batchNumber:""
}
let mergeValue = Object.assign({}, this.courtReviewform, paramsdata)
let paramsdata = {
id: this.caseAcceptanceData.id,
caseFlowId: this.caseAcceptanceData.caseFlowId,
batchNumber: ""
}
let mergeValue = Object.assign({}, this.courtReviewform, paramsdata)
accept(mergeValue).then((res) => {
this.$modal.msgSuccess("确认成功");
this.$emit("getList",this.queryParams)
this.cancel();
})
.catch((err) => {});
this.$modal.msgSuccess("确认成功");
this.$emit("getList", this.queryParams)
this.cancel();
})
.catch((err) => { });
}
});
},
@@ -127,6 +137,7 @@ export default {
// line-height: 48px;
}
}
.nowarbitrator {
margin-left: 10%;
}
@@ -42,6 +42,7 @@ export default {
detailform: {
handler(val) {
if (val) {
console.log(val,"PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP");
this.form = val;
}
},
@@ -0,0 +1,252 @@
<template>
<div>
<el-dialog :title="resPayTitle" v-if="openResPay" :visible="openResPay" @close="payCancel" width="800px" append-to-body
:destroy-on-close="true" center>
<el-descriptions title="订单信息">
<el-descriptions-item label="案件编号">{{
formResPayDetail.caseNum
}}</el-descriptions-item>
<el-descriptions-item label="申请人">{{
formResPay.applicationName || ''
}}</el-descriptions-item>
<el-descriptions-item label="案件标的">{{
formResPayDetail.caseSubjectAmount
}}</el-descriptions-item>
<el-descriptions-item label="案件应缴费用">{{
formResPayDetail.feePayable
}}</el-descriptions-item>
<el-descriptions-item label="被申请人">{{
formResPay.respondentName
}}</el-descriptions-item>
<el-descriptions-item label="案件状态">
<el-tag size="mini" type='danger' effect="dark">
{{ formResPayDetail.caseStatusName }}
</el-tag>
</el-descriptions-item>
</el-descriptions>
<div class="paySelectType">
<el-radio-group v-model="paySelect" @input="changPayType">
<el-radio :label="0">线上支付</el-radio>
<el-radio :label="1">线下支付</el-radio>
</el-radio-group>
</div>
<div class="payupload">
<span>上传支付凭证:</span>
<div class="uploadBtn">
<el-upload class="upload-demo" ref="upload" :action="UploadUrl()" :headers="headers" :data="filedata"
:on-preview="handlePreview" :on-remove="handleRemove" :on-change="beforeUpload" :on-success="handlSuccess" :file-list="fileList"
>
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button> -->
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
</div>
</div>
<div class="payType" v-if="paySelect == 0">
<span>请选择支付方式:</span>
<i class="iconfont icon-weixinzhifu" @click="pay(0)"></i>
<i class="iconfont icon-zhifubao" @click="pay(1)"></i>
</div>
<div class="payImg">
<div id="qrcodeImg"></div>
</div>
<div class="resPayTitle">{{ payMain }}</div>
<div slot="footer" class="dialog-footer">
<el-button @click="payCancel" class="endbutton" round><span>取 消</span></el-button>
<el-button @click="submitUpload" class="endbutton" type="primary" round><span>确认缴费</span></el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { casePay, confirmPayDig } from "@/api/pay/pay";
import QRCode from "qrcodejs2";
import { getToken } from "@/utils/auth";
export default {
props: ["openResPay", "resPayTitle", "formResPayDetail", "resPayForm", "queryParams","resPayId","formResPay"],
data() {
return {
// key: value
// 支付文字
payMain: "",
timer: null,
paySelect: 1,//支付线上/线下
fileList: [],
headers: {
Authorization: "Bearer " + getToken(),
},
filedata: {
annexType: 9,
},
submitForm:{
payType:1,
payOrderList:[],
caseId:null
}
};
},
methods: {
UploadUrl() {
return window.location.origin + "/API/common/upload";
},
//选择支付方式(线上,线下)
changPayType(data) {
if(data == 1){
document.getElementById("qrcodeImg").innerHTML = "";
this.payMain = ""
}
this.submitForm.payType = data;
},
beforeUpload(flie, fileList) {
this.fileList = fileList;
},
// 文件上传成功
handlSuccess(res, file) {
this.submitForm.payOrderList.push({
annexId: res.annexId,
annexName:res.annexName
});
},
submitUpload() {
if (this.fileList.length < 1) {
this.$modal.msgError("请上传缴费凭证");
return
}
this.submitForm.caseFlowId = this.formResPayDetail.caseFlowId;
confirmPayDig(this.submitForm).then(res=>{
this.$modal.msgSuccess("成功");
this.payCancel()
this.$emit("getList", this.queryParams);
})
},
handleRemove(file, fileList) {
(this.submitForm.payOrderList = []),
fileList.forEach((item) => {
this.submitForm.payOrderList.push({ annexId:item.response.data.annexId,annexName:item.response.data.annexName });
});
},
handlePreview(file) {
},
// 生成二维码
qrcode(url) {
// 前端根据 URL 生成微信支付二维码
document.getElementById("qrcodeImg").innerHTML = "";
return new QRCode("qrcodeImg", {
width: 200,
height: 200,
text: url,
colorDark: "#000",
colorLight: "#fff",
});
},
// 支付
pay(val) {
if (this.resPayForm.feePayable == 0 || !this.resPayForm.feePayable) {
this.$message({
message: "此案件无需缴费",
type: "error",
});
return;
}
let payType = "";
if (val == 0) {
payType = "wxpay";
this.payMain = "请使用微信扫二维码支付";
} else if (val == 1) {
payType = "alipay";
this.payMain = "请使用支付宝扫二维码支付";
}
casePay({
totalFee: this.resPayForm.feePayable * 100,
caseId: this.resPayForm.caseId,
tradeType: "native",
platform: payType,
}).then((res) => {
this.paySrc = res.data.code_url;
this.qrcode(this.paySrc);
});
},
payCancel() {
this.$emit("paycancelRes");
this.payMain = "";
},
},
watch:{
openResPay(val){
if(val){
this.submitForm.payOrderList = []
this.paySelect = 1;
this.fileList = [];
this.filedata.id = this.resPayId;
this.submitForm.caseId = this.resPayId;
}
}
}
};
</script>
<style lang="scss" scoped>
.payType {
height: 80px;
line-height: 80px;
display: flex;
.icon-weixinzhifu {
font-size: 24px;
color: #27a56f;
margin-right: 15px;
}
.icon-zhifubao {
font-size: 24px;
color: #1d76cc;
}
}
.paySelectType {
margin-top: 20px;
margin-bottom: 20px;
}
.payupload {
display: flex;
.uploadBtn {}
}
.payImg {
width: 100%;
display: flex;
justify-content: center;
}
.resPayTitle {
margin-top: 20px;
width: 100%;
text-align: center;
}
::v-deep .el-dialog {
width: 800px;
background: #ffffff;
border-radius: 20px;
}
.endbutton {
width: 154px;
height: 37px;
background: #ffffff;
border: 1px solid #d0d0d0;
border-radius: 19px;
span {
width: 31px;
height: 13px;
font-size: 16px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #959595;
}
}
</style>
@@ -86,12 +86,9 @@ export default {
Message.error('请选择时间');
return
}
this.formLabelAlign.time.forEach(item => {
item = moment(
item
).format("YYYY-MM-DD HH:mm:ss");
this.formTimeArr.push(item)
})
this.formLabelAlign.name = moment(
this.formLabelAlign.name
).format("YYYY-MM-DD HH:mm:ss");
this.verifyMediatorFn({
id: this.timeConfirmData.id,
caseFlowId: this.timeConfirmData.caseFlowId,