公章,批量缴费 #110

Merged
hanchaobo merged 2 commits from hcb into dev 2023-11-23 12:09:32 +00:00
12 changed files with 484 additions and 119 deletions
+16
View File
@@ -97,3 +97,19 @@ export function getTemplate(data) {
params: data params: data
}) })
} }
// 查询机构下的经办人
export function selectPostUserByDeptId(data) {
return request({
url: '/deptIdentify/selectPostUserByDeptId',
method: 'get',
params: data
})
}
// 机构绑定经办人
export function bindHandler(data) {
return request({
url: '/deptIdentify/bindHandler',
method: 'get',
params: data
})
}
+9
View File
@@ -66,3 +66,12 @@ export function confirmPayDig(data) {
data: data data: data
}) })
} }
// 查询批量缴费信息
// 缴费页面缴费确认
export function getPayDetail(params) {
return request({
url: '/pay/list',
method: 'get',
params: params
})
}
+9 -2
View File
@@ -56,6 +56,8 @@
v-hasPermi="['caseManagement:list:check']">案件批量立案审查</el-button> v-hasPermi="['caseManagement:list:check']">案件批量立案审查</el-button>
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="operateClick(4)" <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="operateClick(4)"
v-hasPermi="['caseManagement:list:Batchgeneration']">批量生成裁决书</el-button> v-hasPermi="['caseManagement:list:Batchgeneration']">批量生成裁决书</el-button>
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="operateClick(6)"
v-hasPermi="['caseManagement:list:pay']">批量缴费</el-button>
</el-col> </el-col>
</el-row> </el-row>
<el-table v-loading="loading" :data="dataList" style="width: 100%"> <el-table v-loading="loading" :data="dataList" style="width: 100%">
@@ -413,9 +415,12 @@ export default {
} else if (type == 2) { } else if (type == 2) {
this.operateTitle = '批量立案审查'; this.operateTitle = '批量立案审查';
this.operateStatus = 2; this.operateStatus = 2;
}else if(type == 4){ } else if (type == 4) {
this.operateTitle = '批量生成裁决书'; this.operateTitle = '批量生成裁决书';
this.operateStatus = 4; this.operateStatus = 4;
} else if(type == 6){
this.operateTitle = '批量缴费';
this.operateStatus = 6;
} }
}, },
// 修改开庭时间 // 修改开庭时间
@@ -815,4 +820,6 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped>#formContainer {}</style> <style lang="scss" scoped>
#formContainer {}
</style>
@@ -1,6 +1,61 @@
<template> <template>
<div> <div>
<el-dialog :title="operateTitle" :visible="operateVisable" @close="cancel" center :distroy-on-close="true"> <el-dialog :title="operateTitle" :visible="operateVisable" @close="cancel" center :distroy-on-close="true">
<el-dialog width="40%" title="缴费详情" :visible.sync="payVisible" append-to-body>
<!-- 案件总金额 -->
<h3>案件总金额:{{ form.totalFee / 100 }}</h3>
<el-descriptions :title="'订单信息' + (index + 1)" v-for="(item, index) in form.caseApplicationList"
:key="index" border>
<el-descriptions-item label="案件编号">{{
item.caseNum
}}</el-descriptions-item>
<el-descriptions-item label="申请人">{{
item.caseAppName
}}</el-descriptions-item>
<el-descriptions-item label="案件标的">{{
item.caseSubjectAmount
}}</el-descriptions-item>
<el-descriptions-item label="案件应缴费用">{{
item.feePayable
}}</el-descriptions-item>
<el-descriptions-item label="被申请人">{{
item.caseResName
}}</el-descriptions-item>
<el-descriptions-item label="申请人仲裁诉求">{{
item.arbitratClaims
}}</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-remove="handleRemove" :on-change="beforeUpload" :on-success="handlSuccess"
:file-list="fileList">
<el-button slot="trigger" size="small" type="primary">选取文件</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="payTitle">{{ payMain }}</div>
<div slot="footer" class="dialog-footer">
<el-button @click="payCancel" class="endbutton"><span>取 消</span></el-button>
<el-button @click="submitUpload" type="primary" class="endbutton"><span>确认缴费</span></el-button>
</div>
</el-dialog>
<el-table v-loading="loading" :data="dataList" style="width: 100%" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="dataList" style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column type="selection"> <el-table-column type="selection">
</el-table-column> </el-table-column>
@@ -35,9 +90,14 @@
:limit.sync="queryParamsData.pageSize" @pagination="getcaseApply(queryParamsData)" /> :limit.sync="queryParamsData.pageSize" @pagination="getcaseApply(queryParamsData)" />
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton"><span>取 消</span></el-button> <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
<el-button @click="submitBatch" type="primary" class="endbutton" :disabled="dataList.length == 0"><span>确 认</span></el-button> <el-button @click="submitPay" type="primary" class="endbutton"
:disabled="dataList.length == 0 || batchData.length == 0"
v-if="operateStatus == 6"><span>确认缴费</span></el-button>
<el-button @click="submitBatch" type="primary" class="endbutton"
:disabled="dataList.length == 0 || batchData.length == 0" v-else><span>确 认</span></el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
@@ -47,12 +107,16 @@ import {
removeCaseApply, removeCaseApply,
submitCaseApplicationCheck submitCaseApplicationCheck
} from "@/api/caseAccess/caseEntry"; } from "@/api/caseAccess/caseEntry";
import { getPayDetail,confirmPayDig } from "@/api/pay/pay";
import { casePay } from "@/api/pay/pay";
import QRCode from "qrcodejs2";
import { getToken } from "@/utils/auth";
import { writtenHear } from "@/api/caseManagement/caseManagement.js"; import { writtenHear } from "@/api/caseManagement/caseManagement.js";
import { import {
adjudicationCaseFile, adjudicationCaseFile,
} from "@/api/awardManagement/awardManagement"; } from "@/api/awardManagement/awardManagement";
export default { export default {
props: ["operateVisable", "operateData", "operateTitle", 'operateStatus','queryParams'], props: ["operateVisable", "operateData", "operateTitle", 'operateStatus', 'queryParams'],
data() { data() {
return { return {
// 遮罩层 // 遮罩层
@@ -68,7 +132,23 @@ export default {
// 表格数据 // 表格数据
dataList: [], dataList: [],
batchData: [], batchData: [],
radio:1 radio: 1,
payVisible: false,
form: {},
paySelect: 1,//支付线上/线下
headers: {
Authorization: "Bearer " + getToken(),
},
filedata: {
annexType: 8,
},
submitForm: {
payType: 1,
payOrderList: [],
caseIds:[]
},
payMain: "",
fileList: [],
}; };
}, },
watch: { watch: {
@@ -77,12 +157,98 @@ export default {
if (val) { if (val) {
this.getcaseApply(this.queryParamsData) this.getcaseApply(this.queryParamsData)
} }
},
payVisible(val) {
if (val) {
this.submitForm.payOrderList = []
this.paySelect = 1;
this.fileList = [];
}
} }
}, },
created() { created() {
}, },
methods: { methods: {
UploadUrl() {
return window.location.origin + "/API/evidence/upload";
},
beforeUpload(flie, fileList) {
this.fileList = fileList;
},
handleRemove(file, fileList) {
(this.submitForm.payOrderList = []),
fileList.forEach((item) => {
console.log(item.response.data, "item");
this.submitForm.payOrderList.push({ annexId: item.response.data.annexId, annexName: item.response.data.annexName });
});
},
// 文件上传成功
handlSuccess(res, file) {
this.submitForm.payOrderList.push({
annexId: res.data.annexId,
annexName: res.data.annexName
});
},
//选择支付方式(线上,线下)
changPayType(data) {
if (data == 1) {
document.getElementById("qrcodeImg").innerHTML = "";
this.payMain = ""
}
this.submitForm.payType = data;
},
pay(val) {
if (this.form.totalFee == 0 || !this.form.totalFee) {
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.form.totalFee,
caseIds: this.batchData,
tradeType: "native",
platform: payType,
}).then((res) => {
this.paySrc = res.data.code_url;
this.qrcode(this.paySrc);
});
},
// 生成二维码
qrcode(url) {
// 前端根据 URL 生成微信支付二维码
document.getElementById("qrcodeImg").innerHTML = "";
return new QRCode("qrcodeImg", {
width: 200,
height: 200,
text: url,
colorDark: "#000",
colorLight: "#fff",
});
},
submitUpload() {
if (this.fileList.length < 1) {
this.$modal.msgError("请上传缴费凭证");
return
}
this.submitForm.caseIds = this.batchData;
console.log(this.submitForm,"LLLLLLLLLLLLLLLLLLLLLLLLLLLL");
confirmPayDig(this.submitForm).then(res => {
this.$modal.msgSuccess("成功");
this.payCancel();
this.getcaseApply(this.queryParamsData);
})
},
// 选择勾选框 // 选择勾选框
handleSelectionChange(val) { handleSelectionChange(val) {
this.batchData = []; this.batchData = [];
@@ -90,6 +256,10 @@ export default {
this.batchData.push(item.id) this.batchData.push(item.id)
}) })
}, },
payCancel() {
this.payVisible = false;
this.payMain = "";
},
cancel() { cancel() {
this.$emit("cancelOperate"); this.$emit("cancelOperate");
}, },
@@ -100,17 +270,29 @@ export default {
} else if (this.operateStatus == 1) { } else if (this.operateStatus == 1) {
this.removeCaseApplyFn({ ids: this.batchData }) this.removeCaseApplyFn({ ids: this.batchData })
} else if (this.operateStatus == 2) { } else if (this.operateStatus == 2) {
this.submitCaseApplicationCheckFn({ ids: this.batchData,agreeOrNotCheck:this.radio }) this.submitCaseApplicationCheckFn({ ids: this.batchData, agreeOrNotCheck: this.radio })
}else if (this.operateStatus == 3) { } else if (this.operateStatus == 3) {
this.adjudicationCaseFileFn({ ids: this.batchData }) this.adjudicationCaseFileFn({ ids: this.batchData })
}else if (this.operateStatus == 4) { } else if (this.operateStatus == 4) {
// this.adjudicationCaseFileFn({ ids: this.batchData }) // this.adjudicationCaseFileFn({ ids: this.batchData })
this.writtenHearFn({ids: this.batchData}) this.writtenHearFn({ ids: this.batchData })
}else if (this.operateStatus == 5) { } else if (this.operateStatus == 5) {
// this.adjudicationCaseFileFn({ ids: this.batchData }) // this.adjudicationCaseFileFn({ ids: this.batchData })
// this.writtenHearFn({ids: this.batchData}) // this.writtenHearFn({ids: this.batchData})
} }
}, },
// 批量缴费弹窗
submitPay() {
this.payVisible = true;
this.getPayDetailFn({ caseIds: this.batchData })
},
// 查询缴费信息
getPayDetailFn(params) {
getPayDetail(params).then(res => {
this.form = res.data;
document.getElementById("qrcodeImg").innerHTML = "";
})
},
// 批量提交 // 批量提交
submitCaseApplyFn(data) { submitCaseApplyFn(data) {
submitCaseApply(data).then(res => { submitCaseApply(data).then(res => {
@@ -128,24 +310,24 @@ export default {
}) })
}, },
// 批量立案审查 // 批量立案审查
submitCaseApplicationCheckFn(data){ submitCaseApplicationCheckFn(data) {
submitCaseApplicationCheck(data).then(res=>{ submitCaseApplicationCheck(data).then(res => {
this.$modal.msgSuccess("立案审查成功"); this.$modal.msgSuccess("立案审查成功");
this.cancel(); this.cancel();
this.$emit("getcaseApply", this.queryParams); this.$emit("getcaseApply", this.queryParams);
}) })
}, },
//批量归档 //批量归档
adjudicationCaseFileFn(data){ adjudicationCaseFileFn(data) {
adjudicationCaseFile(data).then(res=>{ adjudicationCaseFile(data).then(res => {
this.$modal.msgSuccess("归档成功"); this.$modal.msgSuccess("归档成功");
this.cancel(); this.cancel();
this.$emit("getcaseApply", this.queryParams); this.$emit("getcaseApply", this.queryParams);
}) })
}, },
// 批量生成裁决书 // 批量生成裁决书
writtenHearFn(data){ writtenHearFn(data) {
writtenHear(data).then(res=>{ writtenHear(data).then(res => {
this.$modal.msgSuccess("生成成功"); this.$modal.msgSuccess("生成成功");
this.cancel(); this.cancel();
this.$emit("getcaseApply", this.queryParams); this.$emit("getcaseApply", this.queryParams);
@@ -160,12 +342,14 @@ export default {
this.queryParamsData.caseStatus = 0 this.queryParamsData.caseStatus = 0
} else if (this.operateStatus == 2) { } else if (this.operateStatus == 2) {
this.queryParamsData.caseStatus = 1 this.queryParamsData.caseStatus = 1
}else if (this.operateStatus == 3) { } else if (this.operateStatus == 3) {
this.queryParamsData.caseStatus = 16 this.queryParamsData.caseStatus = 16
}else if (this.operateStatus == 4) { } else if (this.operateStatus == 4) {
this.queryParamsData.caseStatus = 9 this.queryParamsData.caseStatus = 9
}else if (this.operateStatus == 5) { } else if (this.operateStatus == 5) {
this.queryParamsData.caseStatus = 11 this.queryParamsData.caseStatus = 11
} else if (this.operateStatus == 6) {
this.queryParamsData.caseStatus = 2
} }
caseApply(val).then((response) => { caseApply(val).then((response) => {
this.dataList = response.rows; this.dataList = response.rows;
@@ -182,7 +366,50 @@ export default {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
} }
.radiobox{
.radiobox {
margin-top: 30px; margin-top: 30px;
} }
.paySelectType {
margin: 20px 0 20px 0;
}
.payupload {
display: flex;
margin-bottom: 20px;
}
.payImg {
width: 100%;
display: flex;
justify-content: center;
}
.payTitle {
margin-top: 20px;
width: 100%;
text-align: center;
}
.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;
}
}
::v-deep .el-dialog__body{
max-height: 600px;
overflow-y: scroll;
}
</style> </style>
@@ -120,7 +120,6 @@ export default {
this.$modal.msgSuccess("成功"); this.$modal.msgSuccess("成功");
this.payCancel() this.payCancel()
this.$emit("getcaseApply", this.queryParams); this.$emit("getcaseApply", this.queryParams);
// console.log(res,":::::::::::::::::::::::::::::::");
}) })
}, },
handleRemove(file, fileList) { handleRemove(file, fileList) {
@@ -145,22 +144,6 @@ export default {
colorLight: "#fff", colorLight: "#fff",
}); });
}, },
// 查询缴费状态
// selectCaseApplicationConfirmFn(parms) {
// selectCaseApplicationConfirm(parms).then(res => {
// // console.log(res, this.form, "KKKKKKKKKKKKKKKKKKKK");
// if (res && res.data && res.data.paymentStatus == 1) {
// // clearInterval(this.timer);
// // this.openPay = false;
// this.payCancel()
// this.$message({
// message: "缴费成功",
// type: "success",
// });
// this.$emit("getcaseApply", this.queryParams);
// }
// })
// },
// 支付 // 支付
pay(val) { pay(val) {
if (this.payForm.feePayable == 0 || !this.payForm.feePayable) { if (this.payForm.feePayable == 0 || !this.payForm.feePayable) {
@@ -180,18 +163,12 @@ export default {
} }
casePay({ casePay({
totalFee: this.payForm.feePayable * 100, totalFee: this.payForm.feePayable * 100,
caseId: this.payForm.caseId, caseIds: [this.payForm.caseId],
tradeType: "native", tradeType: "native",
platform: payType, platform: payType,
}).then((res) => { }).then((res) => {
this.paySrc = res.data.code_url; this.paySrc = res.data.code_url;
this.qrcode(this.paySrc); this.qrcode(this.paySrc);
// this.timer = setInterval(() => {
// this.selectCaseApplicationConfirmFn({ id: this.form.id })
// }, 3000);
// setTimeout(() => {
// clearInterval(this.timer);
// }, 1000 * 60);
}); });
}, },
payCancel() { payCancel() {
@@ -206,7 +183,7 @@ export default {
this.paySelect = 1; this.paySelect = 1;
this.fileList = []; this.fileList = [];
this.filedata.id = this.payId; this.filedata.id = this.payId;
this.submitForm.caseId = this.payId; this.submitForm.caseIds = [this.payId];
} }
} }
} }
+5 -3
View File
@@ -80,11 +80,13 @@ export default {
this.dataList = response.rows; this.dataList = response.rows;
this.dataList.forEach(item=>{ this.dataList.forEach(item=>{
if(item.sendStatus == 0){ if(item.sendStatus == 0){
item.sendStatus = "未发送" item.sendStatus = "发送失败"
}else if(item.sendStatus == 1){ }else if(item.sendStatus == 1){
item.sendStatus = "已发送" item.sendStatus = "已送达"
}else if(item.sendStatus == 2){
item.sendStatus = "已读取"
}else{ }else{
item.sendStatus = "未发送" item.sendStatus = "发送失败"
} }
}) })
this.total = response.total; this.total = response.total;
@@ -2,15 +2,31 @@
<div> <div>
<el-dialog :title="title" :visible="operateVisable" v-if="operateVisable" @close="cancel" width="600px" center <el-dialog :title="title" :visible="operateVisable" v-if="operateVisable" @close="cancel" width="600px" center
:distroy-on-close="true"> :distroy-on-close="true">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="demo-ruleForm"> <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="demo-ruleForm">
<el-form-item label="机构名称" prop="identifyName"> <el-form-item label="机构名称" prop="identifyName">
<el-input v-model="ruleForm.identifyName"></el-input> <el-input v-model="ruleForm.identifyName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="经办人姓名" prop="operName"> <el-form-item label="机构邮箱" prop="identifyEmail">
<el-input v-model="ruleForm.identifyEmail"></el-input>
</el-form-item>
<!-- <el-form-item label="经办人姓名" prop="operName">
<el-input v-model="ruleForm.operName"></el-input> <el-input v-model="ruleForm.operName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="经办人用户名" prop="operUserName">
<el-input v-model="ruleForm.operUserName"></el-input>
</el-form-item>
<el-form-item label="经办人手机号" prop="operPhone"> <el-form-item label="经办人手机号" prop="operPhone">
<el-input v-model="ruleForm.operPhone"></el-input> <el-input v-model="ruleForm.operPhone"></el-input>
</el-form-item> -->
<el-form-item label="机构信用代码" prop="creditCode">
<el-input v-model="ruleForm.creditCode"></el-input>
</el-form-item>
<el-form-item label="法人姓名" prop="legalPerName">
<el-input v-model="ruleForm.legalPerName"></el-input>
</el-form-item>
<el-form-item label="法人手机号" prop="legalPerPhone">
<el-input v-model="ruleForm.legalPerPhone"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@@ -24,8 +40,9 @@
import { import {
insert, insert,
} from "@/api/officialSeal/officialSeal.js"; } from "@/api/officialSeal/officialSeal.js";
import { listUser } from '@/api/system/user.js'
export default { export default {
props: ["operateVisable","queryParams"], props: ["operateVisable", "queryParams"],
data() { data() {
return { return {
title: "新增机构", title: "新增机构",
@@ -34,23 +51,39 @@ export default {
identifyName: [ identifyName: [
{ required: true, message: '请输入机构名称', trigger: 'blur' }, { required: true, message: '请输入机构名称', trigger: 'blur' },
], ],
operName: [ // operName: [
{ required: true, message: '请输入经办人姓名', trigger: 'blur' }, // { required: true, message: '请输入经办人姓名', trigger: 'blur' },
// ],
// operPhone: [
// { required: true, message: '请输入经办人手机号', trigger: 'blur' },
// { pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/, message: '请输入正确的手机号码', trigger: 'blur', },
// ],
creditCode: [
{ required: true, message: '请输入机构信用代码', trigger: 'blur' },
], ],
operPhone: [ legalPerName: [
{ required: true, message: '请输入手机号', trigger: 'blur' }, { required: true, message: '请输入法人姓名', trigger: 'blur' },
],
legalPerPhone: [
{ required: true, message: '请输入法人手机号', trigger: 'blur' },
{ pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/, message: '请输入正确的手机号码', trigger: 'blur', }, { pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/, message: '请输入正确的手机号码', trigger: 'blur', },
], ],
// operUserName: [
// { required: true, message: '请输入经办人用户名', trigger: 'blur' },
// ],
identifyEmail: [
{ required: true, message: '请输入邮箱', trigger: 'blur' },
{ type: 'email', message: '请输入正确的邮箱地址', trigger: 'blur' }
]
} }
}; };
}, },
watch: { watch: {
operateVisable(val) { operateVisable(val) {
if (val) { if (val) {
}
} }
}, },
},
created() { created() {
}, },
@@ -60,17 +93,9 @@ export default {
insert(data).then(res => { insert(data).then(res => {
this.$modal.msgSuccess("新增成功!"); this.$modal.msgSuccess("新增成功!");
this.$emit("cancelFilingreview"); this.$emit("cancelFilingreview");
this.$emit('getList',this.queryParams); this.$emit('getList', this.queryParams);
}) })
}, },
// // 编辑
// sealUpdateFn(data) {
// sealUpdate(data).then(res => {
// this.$modal.msgSuccess("修改成功!");
// this.$emit("cancelFilingreview");
// this.$emit('getList');
// })
// },
// 提交form表单 // 提交form表单
submitForm() { submitForm() {
this.$refs['ruleForm'].validate((valid) => { this.$refs['ruleForm'].validate((valid) => {
@@ -6,6 +6,12 @@
<el-form-item label="模板名称" prop="temName"> <el-form-item label="模板名称" prop="temName">
<el-input v-model="ruleForm.temName"></el-input> <el-input v-model="ruleForm.temName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="模板类型" prop="temType">
<el-select v-model="ruleForm.temType" placeholder="请选择">
<el-option v-for="dict in dict.type.template_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="机构名称" prop="identifyId"> <el-form-item label="机构名称" prop="identifyId">
<el-select v-model="ruleForm.identifyId" placeholder="请选择"> <el-select v-model="ruleForm.identifyId" placeholder="请选择">
<el-option v-for="item in tempList" :key="item.id" :label="item.identifyName" :value="item.id"> <el-option v-for="item in tempList" :key="item.id" :label="item.identifyName" :value="item.id">
@@ -15,8 +21,8 @@
</el-form> </el-form>
<el-upload class="avatar-uploader" :before-upload="beforeUpload" :on-success="handleSuccess" ref="upload" <el-upload class="avatar-uploader" :before-upload="beforeUpload" :on-success="handleSuccess" ref="upload"
:action="UploadUrl()" :headers="headers" :data="filedata" :on-remove="handleRemove" :action="UploadUrl()" :headers="headers" :data="filedata" :on-remove="handleRemove"
:on-change="handleChange" accept=".pdf,.word" :file-list="fileList" :auto-upload="false"> :on-change="handleChange" accept=".doc,.docx" :file-list="fileList" :auto-upload="false">
<el-button size="small" type="primary">点击上传</el-button> <el-button size="small" type="primary">选择模板文件</el-button>
</el-upload> </el-upload>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton"><span>取 消</span></el-button> <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
@@ -31,12 +37,14 @@ import {
deptIdentifyList, deptIdentifyList,
} from "@/api/officialSeal/officialSeal.js"; } from "@/api/officialSeal/officialSeal.js";
export default { export default {
props: ["uploadVisable", "uploadData","queryParams"], props: ["uploadVisable", "uploadData", "queryParams"],
dicts: ["template_type"],
data() { data() {
return { return {
fileList: [], fileList: [],
data: [], data: [],
tempList:[], tempList: [],
isImg:false,
headers: { headers: {
Authorization: "Bearer " + getToken(), Authorization: "Bearer " + getToken(),
}, },
@@ -47,6 +55,12 @@ export default {
temName: [ temName: [
{ required: true, message: '请输入模板名称', trigger: 'blur' }, { required: true, message: '请输入模板名称', trigger: 'blur' },
], ],
temType: [
{ required: true, message: '请输入模板名称', trigger: 'blur' },
],
identifyId: [
{ required: true, message: '请输入模板名称', trigger: 'blur' },
]
} }
}; };
}, },
@@ -72,7 +86,7 @@ export default {
this.$emit("cancelUpload"); this.$emit("cancelUpload");
}, },
handleChange(file, fileList) { handleChange(file, fileList) {
// this.imageUrl = URL.createObjectURL(file.raw); this.isImg = file.type === '.doc' || '.docx'
}, },
UploadUrl() { UploadUrl() {
return window.location.origin + "/API/deptIdentify/insertTemplate"; return window.location.origin + "/API/deptIdentify/insertTemplate";
@@ -82,7 +96,11 @@ export default {
if (valid) { if (valid) {
this.filedata.identifyId = this.ruleForm.identifyId; this.filedata.identifyId = this.ruleForm.identifyId;
this.filedata.temName = this.ruleForm.temName; this.filedata.temName = this.ruleForm.temName;
if (this.isImg) {
this.$refs.upload.submit(); this.$refs.upload.submit();
}else{
this.$message.error('只能上传doc,docx格式的文件')
}
} }
}); });
}, },
@@ -90,16 +108,13 @@ export default {
console.log(file, fileList); console.log(file, fileList);
}, },
beforeUpload(file) { beforeUpload(file) {
const isImg = file.type === '.pdf' || '.word' // debugger
if (!isImg) { // this.isImg = file.type === '.doc' || '.docx'
this.$message.error('只能上传pdf,word格式的文件')
}
return isImg
}, },
handleSuccess() { handleSuccess() {
this.$message.success('上传成功'); this.$message.success('上传成功');
this.$emit("cancelUpload"); this.$emit("cancelUpload");
this.$emit('getList',this.queryParams); this.$emit('getList', this.queryParams);
} }
}, },
}; };
@@ -7,13 +7,14 @@
<el-input v-model="ruleForm.temName"></el-input> <el-input v-model="ruleForm.temName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="当前模板"> <el-form-item label="当前模板">
<span style="color: #0e5ce3;cursor:pointer" @click="openUrl(editData.temOrigPath)">{{ editData.temOrigPath }}</span> <span style="color: #0e5ce3;cursor:pointer" @click="openUrl(editData.temOrigPath)">{{ editData.fileName
}}</span>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-upload class="avatar-uploader" :before-upload="beforeUpload" :on-success="handleSuccess" ref="upload" <el-upload class="avatar-uploader" :before-upload="beforeUpload" :on-success="handleSuccess" ref="upload"
:action="UploadUrl()" :headers="headers" :data="filedata" :on-remove="handleRemove" :action="UploadUrl()" :headers="headers" :data="filedata" :on-remove="handleRemove"
:on-change="handleChange" accept=".pdf,.word" :file-list="fileList" :auto-upload="false"> :on-change="handleChange" accept=".doc,.docx" :file-list="fileList" :auto-upload="false">
<el-button size="small" type="primary">点击上传</el-button> <el-button size="small" type="primary">选择模板文件</el-button>
</el-upload> </el-upload>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton"><span>取 消</span></el-button> <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
@@ -25,7 +26,7 @@
<script> <script>
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
export default { export default {
props: ["editVisable", "editData","queryParams"], props: ["editVisable", "editData", "queryParams"],
data() { data() {
return { return {
fileList: [], fileList: [],
@@ -33,6 +34,7 @@ export default {
headers: { headers: {
Authorization: "Bearer " + getToken(), Authorization: "Bearer " + getToken(),
}, },
isImg: false,
filedata: {}, filedata: {},
flagBtn: false, flagBtn: false,
ruleForm: {}, ruleForm: {},
@@ -55,7 +57,7 @@ export default {
}, },
methods: { methods: {
// 打开链接 // 打开链接
openUrl(urlTemp){ openUrl(urlTemp) {
let headPath = window.location.origin + "/API/"; let headPath = window.location.origin + "/API/";
window.open(headPath + urlTemp); window.open(headPath + urlTemp);
}, },
@@ -63,7 +65,8 @@ export default {
this.$emit("cancelEdit"); this.$emit("cancelEdit");
}, },
handleChange(file, fileList) { handleChange(file, fileList) {
// this.imageUrl = URL.createObjectURL(file.raw); debugger
this.isImg = (file.type === '.doc' || file.type === '.docx') ? true:false;
}, },
UploadUrl() { UploadUrl() {
return window.location.origin + "/API/deptIdentify/updateTemplate"; return window.location.origin + "/API/deptIdentify/updateTemplate";
@@ -73,7 +76,11 @@ export default {
if (valid) { if (valid) {
this.filedata.id = this.editData.id; this.filedata.id = this.editData.id;
this.filedata.temName = this.ruleForm.temName; this.filedata.temName = this.ruleForm.temName;
if (this.isImg) {
this.$refs.upload.submit(); this.$refs.upload.submit();
}else{
this.$message.error('只能上传doc,docx格式的文件')
}
} }
}); });
}, },
@@ -81,20 +88,15 @@ export default {
console.log(file, fileList); console.log(file, fileList);
}, },
beforeUpload(file) { beforeUpload(file) {
const isImg = file.type === '.pdf' || '.word' this.isImg = file.type === '.doc' || '.docx'
if (!isImg) {
this.$message.error('只能上传pdf,word格式的文件')
}
return isImg
}, },
handleSuccess() { handleSuccess() {
this.$message.success('上传成功'); this.$message.success('上传成功');
this.$emit("cancelEdit"); this.$emit("cancelEdit");
this.$emit('getList',this.queryParams); this.$emit('getList', this.queryParams);
} }
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped></style>
</style>
@@ -6,11 +6,17 @@
<el-form-item label="机构名称" prop="identifyName"> <el-form-item label="机构名称" prop="identifyName">
<el-input v-model="editForm.identifyName"></el-input> <el-input v-model="editForm.identifyName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="经办人姓名" prop="operName"> <el-form-item label="机构邮箱" prop="identifyEmail">
<el-input v-model="editForm.operName"></el-input> <el-input v-model="editForm.identifyEmail"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="经办人手机号" prop="operPhone"> <el-form-item label="机构信用代码" prop="creditCode">
<el-input v-model="editForm.operPhone"></el-input> <el-input v-model="editForm.creditCode"></el-input>
</el-form-item>
<el-form-item label="法人姓名" prop="legalPerName">
<el-input v-model="editForm.legalPerName"></el-input>
</el-form-item>
<el-form-item label="法人手机号" prop="legalPerPhone">
<el-input v-model="editForm.legalPerPhone"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@@ -34,13 +40,23 @@ export default {
identifyName: [ identifyName: [
{ required: true, message: '请输入机构名称', trigger: 'blur' }, { required: true, message: '请输入机构名称', trigger: 'blur' },
], ],
operName: [ creditCode: [
{ required: true, message: '请输入经办人姓名', trigger: 'blur' }, { required: true, message: '请输入机构信用代码', trigger: 'blur' },
], ],
operPhone: [ legalPerName: [
{ required: true, message: '请输入手机号', trigger: 'blur' }, { required: true, message: '请输入法人姓名', trigger: 'blur' },
],
legalPerPhone: [
{ required: true, message: '请输入法人手机号', trigger: 'blur' },
{ pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/, message: '请输入正确的手机号码', trigger: 'blur', }, { pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/, message: '请输入正确的手机号码', trigger: 'blur', },
], ],
// operUserName: [
// { required: true, message: '请输入经办人用户名', trigger: 'blur' },
// ],
identifyEmail: [
{ required: true, message: '请输入邮箱', trigger: 'blur' },
{ type: 'email', message: '请输入正确的邮箱地址', trigger: 'blur' }
]
} }
}; };
}, },
@@ -83,8 +83,12 @@ export default {
} }
return isImg return isImg
}, },
handleSuccess() { handleSuccess(response) {
if (response.code == 200) {
this.$message.success('上传成功') this.$message.success('上传成功')
} else {
this.$message.error(response.msg);
}
} }
}, },
}; };
+81 -16
View File
@@ -30,21 +30,41 @@
v-if="scope.row.identifyStatus == '已认证'" icon="el-icon-upload2">上传公章</el-button> v-if="scope.row.identifyStatus == '已认证'" icon="el-icon-upload2">上传公章</el-button>
<el-button size="mini" @click="sealManage(scope.row)" type="text" <el-button size="mini" @click="sealManage(scope.row)" type="text"
v-if="scope.row.identifyStatus == '已认证'" icon="el-icon-upload2">公章管理</el-button> v-if="scope.row.identifyStatus == '已认证'" icon="el-icon-upload2">公章管理</el-button>
<el-button size="mini" @click="sealDelete(scope.row)" type="text" icon="el-icon-delete">删除</el-button> <el-button size="mini" @click="sealDelete(scope.row)" v-if="scope.row.identifyStatus == '未认证'"
<el-button size="mini" @click="eidtSeal(scope.row)" type="text" type="text" icon="el-icon-delete">删除</el-button>
v-if="scope.row.identifyStatus == '未认证'" icon="el-icon-edit">修改</el-button> <el-button size="mini" @click="eidtSeal(scope.row)" type="text" v-if="scope.row.identifyStatus == '未认证'"
icon="el-icon-edit">修改</el-button>
<el-button size="mini" @click="selectUser(scope.row)" type="text"
v-if="scope.row.identifyStatus == '未认证'" icon="el-icon-edit">选择经办人</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList(queryParams)" /> @pagination="getList(queryParams)" />
<addInstitution :operateVisable="operateVisable" @cancelFilingreview="cancelFilingreview" :queryParams="queryParams" @getList="getList"> <addInstitution :operateVisable="operateVisable" @cancelFilingreview="cancelFilingreview" :queryParams="queryParams"
@getList="getList">
</addInstitution> </addInstitution>
<uploadSeal :uploadVisable="uploadVisable" @cancelUpload="cancelUpload" :queryParams="queryParams" :uploadData="uploadData" @getList="getList"> <uploadSeal :uploadVisable="uploadVisable" @cancelUpload="cancelUpload" :queryParams="queryParams"
:uploadData="uploadData" @getList="getList">
</uploadSeal> </uploadSeal>
<sealManage :sealVisable="sealVisable" @cancelSeal="cancelSeal" :queryParams="queryParams" :sealData="sealData"> <sealManage :sealVisable="sealVisable" @cancelSeal="cancelSeal" :queryParams="queryParams" :sealData="sealData">
</sealManage> </sealManage>
<eidtInstitution :editVisable="editVisable" @cancelEdit="cancelEdit" :queryParams="queryParams" @getList="getList" :editData="editData"></eidtInstitution> <eidtInstitution :editVisable="editVisable" @cancelEdit="cancelEdit" :queryParams="queryParams" @getList="getList"
:editData="editData"></eidtInstitution>
<el-dialog title="选择经办人" :visible.sync="selectVisible" width="600px" @close="selectClose">
<el-form :model="slectFrom" :rules="rules" ref="slectFrom" label-width="80px">
<el-form-item label="经办人" prop="id">
<el-select v-model="slectFrom.id" clearable placeholder="请选择">
<el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId">
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="selectClose" class="endbutton"><span>取 消</span></el-button>
<el-button type="primary" @click="submitUser" class="endbutton"><span>确认</span></el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
@@ -53,7 +73,9 @@ import {
deptIdentifyList, deptIdentifyList,
enableDept, enableDept,
selectDeptIndefiUrl, selectDeptIndefiUrl,
deleteSeal deleteSeal,
selectPostUserByDeptId,
bindHandler
} from "@/api/officialSeal/officialSeal.js"; } from "@/api/officialSeal/officialSeal.js";
import addInstitution from "./components/addInstitution"; import addInstitution from "./components/addInstitution";
@@ -88,25 +110,62 @@ export default {
sealVisable: false,//公章列表弹窗 sealVisable: false,//公章列表弹窗
uploadData: {}, uploadData: {},
sealData: {}, sealData: {},
editVisable:false, editVisable: false,
editData:{} editData: {},
selectVisible: false,
slectFrom: {},
userList: [],
templateId: null,
rules: {
id: [
{ required: true, message: '请选择经办人', trigger: 'blur' },
]
}
}; };
}, },
created() { created() {
this.getList(this.queryParams) this.getList(this.queryParams)
}, },
methods: { methods: {
// 选择经办人
selectUser(row) {
this.selectVisible = true;
this.templateId = row.id;
selectPostUserByDeptId({ id: row.id }).then(res => {
this.userList = res.data;
if (row.userId) {
this.slectFrom.id = row.userId;
} else {
this.slectFrom = {};
}
})
},
// 确认经办人
submitUser() {
this.$refs['slectFrom'].validate((valid) => {
if (valid) {
bindHandler({ id: this.templateId, userId: this.slectFrom.id }).then(res => {
this.$modal.msgSuccess("选择成功");
this.selectVisible = false;
this.getList(this.queryParams);
})
}
})
},
selectClose() {
this.selectVisible = false;
},
// 删除 // 删除
sealDelete(row){ sealDelete(row) {
this.$modal this.$modal
.confirm("是否更改状态") .confirm("是否更改状态")
.then((res) => { .then((res) => {
this.deleteSealFn({id:row.id}) this.deleteSealFn({ id: row.id })
}) })
}, },
// 删除接口 // 删除接口
deleteSealFn(data){ deleteSealFn(data) {
deleteSeal(data).then(res=>{ deleteSeal(data).then(res => {
this.$modal.msgSuccess("删除成功!"); this.$modal.msgSuccess("删除成功!");
this.getList(this.queryParams); this.getList(this.queryParams);
}) })
@@ -135,11 +194,11 @@ export default {
this.operateVisable = true; this.operateVisable = true;
}, },
// 编辑 // 编辑
eidtSeal(row){ eidtSeal(row) {
this.editVisable = true; this.editVisable = true;
this.editData = row; this.editData = row;
}, },
cancelEdit(){ cancelEdit() {
this.editVisable = false; this.editVisable = false;
}, },
// 启用认证按钮 // 启用认证按钮
@@ -160,6 +219,10 @@ export default {
}, },
// 认证按钮 // 认证按钮
DeptIndefiUrl(row) { DeptIndefiUrl(row) {
if (!row.operName || !row.legalPerPhone) {
this.$modal.msgError("当前没有经办人 ,无法认证!!");
return
}
this.$modal.confirm('是否认证?') this.$modal.confirm('是否认证?')
.then(function () { .then(function () {
selectDeptIndefiUrl({ id: row.id }).then(res => { selectDeptIndefiUrl({ id: row.id }).then(res => {
@@ -194,7 +257,9 @@ export default {
this.dataList.forEach(item => { this.dataList.forEach(item => {
if (item.identifyStatus == 0 || item.identifyStatus == null) { if (item.identifyStatus == 0 || item.identifyStatus == null) {
item.identifyStatus = '未认证' item.identifyStatus = '未认证'
} else { } else if (item.identifyStatus == 2) {
item.identifyStatus = '认证中'
} else if (item.identifyStatus == 1) {
item.identifyStatus = '已认证' item.identifyStatus = '已认证'
} }
if (item.isUse == 0 || item.isUse == null) { if (item.isUse == 0 || item.isUse == null) {