From db905ecd14f63dba9337b4f4715584ef2d7e8c7e Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: Fri, 07 Mar 2025 14:45:00 +0800
Subject: [PATCH] 修改
---
src/views/specialOperationsPay/singlePage/index.vue | 124 +++++++++++++++++++++++++++++++++++++----
1 files changed, 112 insertions(+), 12 deletions(-)
diff --git a/src/views/specialOperationsPay/singlePage/index.vue b/src/views/specialOperationsPay/singlePage/index.vue
index 71eaf4d..ad8256c 100644
--- a/src/views/specialOperationsPay/singlePage/index.vue
+++ b/src/views/specialOperationsPay/singlePage/index.vue
@@ -51,6 +51,7 @@
<div>批次名称:<span class="cardCont">{{item.batchName }}</span></div>
<div>所属地区:<span class="cardCont">{{item.districtName }}</span></div>
<div>填报时间:<span class="cardCont">{{item.createTime}}</span></div>
+ <div v-if="item.payCode">财政缴款码:<span class="cardCont">{{item.payCode}}</span><el-button type="text" style="padding: 0;margin-left: 10px" @click="copyCode(item.payCode)">复制</el-button></div>
<div>状态状态:
<el-tag v-if="item.payStatus == 0" type="danger" size="small">待缴费</el-tag>
<el-tag v-if="item.payStatus == 1" type="success" size="small">已缴费</el-tag>
@@ -65,14 +66,15 @@
</div>
<div>总计应缴:<span class="cardCont">{{ item.amount }}元</span></div>
<el-button style="margin-top: 5px" type="primary" size="small" v-if="item.payStatus == 0" @click="goPay(item)">去缴费</el-button>
- <el-button style="margin-top: 5px" type="success" size="small" v-if="item.payStatus == 1" @click="checkTicket(item)">查看票据</el-button>
+ <el-button style="margin-top: 5px" type="success" size="small" v-if="item.payStatus == 1" @click="checkTicket()">查看票据</el-button>
</div>
</div>
<div v-else class="feeList">
<div v-for="(item,index) in info.list" class="infoCard" :key="index">
- <div>批次名称:<span class="cardCont" v-if="item.coalPays">{{item.coalPays.batchName }}</span></div>
+ <div>批次名称:<span class="cardCont" v-if="item.coalPays">{{item.coalPays.batchName}}</span></div>
<!-- <div>所属地区:<span class="cardCont">{{item.districtName }}</span></div>-->
<div>填报时间:<span class="cardCont" v-if="item.coalPays">{{item.coalPays.createTime}}</span></div>
+ <div v-if="item.payCode">财政缴款码:<span class="cardCont">{{item.payCode}}</span><el-button type="text" style="padding: 0;margin-left: 10px" @click="copyCode(item.payCode)">复制</el-button></div>
<div>状态状态:
<el-tag v-if="item.payStatus == 0" type="danger" size="small">待缴费</el-tag>
<el-tag v-if="item.payStatus == 1" type="success" size="small">已缴费</el-tag>
@@ -87,7 +89,7 @@
</div>
<div>总计应缴:<span class="cardCont" v-if="item.coalPays">{{ item.coalPays.amount }}元</span></div>
<el-button style="margin-top: 5px" type="primary" size="small" v-if="item.payStatus == 0" @click="goPay(item)">去缴费</el-button>
- <el-button style="margin-top: 5px" type="success" size="small" v-if="item.payStatus == 1" @click="checkTicket(item)">查看票据</el-button>
+ <el-button style="margin-top: 5px" type="success" size="small" v-if="item.payStatus == 1" @click="checkTicket()">查看票据</el-button>
</div>
</div>
</div>
@@ -102,6 +104,12 @@
:modal-append-to-body="false"
fullscreen
class="myCustomDialog"
+ v-loading="payLoading"
+ element-loading-spinner="el-icon-loading"
+ element-loading-background="rgba(255, 255, 255, 0.8)"
+ element-loading-text="等待财政接口加解密返回结果,正在生成支付订单"
+ element-loading-customClass="payLoading"
+ @close="closePay"
>
<div class="topInfo">
<el-row style="margin-bottom: 0">
@@ -164,8 +172,8 @@
<script >
import {verifyIdCard, verifySimplePhone} from "@/utils/validate";
-import {nonCoalSelectH5} from "@/api/specialOperationsPay/notCoalPay";
-import {findStudent} from "@/api/specialOperationsPay/coalPay";
+import {nonCoalPersonPay, nonCoalSelectH5} from "@/api/specialOperationsPay/notCoalPay";
+import {coalPersonPay, findStudent} from "@/api/specialOperationsPay/coalPay";
import noData from '@/assets/images/noData.png'
export default {
@@ -197,8 +205,8 @@
}
return {
dataForm: {
- idCard: '320322199509262810',
- phone: '15261806176',
+ idCard: '',
+ phone: '',
type: 1
},
rules: {
@@ -211,7 +219,8 @@
hasInfo: true,
detailVisible: false,
detailInfo: {},
- noData
+ noData,
+ payLoading: false
}
},
created() {
@@ -264,14 +273,79 @@
}
}
})
-
+ },
+ copyCode(code){
+ navigator.clipboard
+ .writeText(code)
+ .then(() => {
+ this.$message({
+ type:'success',
+ message: '缴款码已复制到剪贴板'
+ })
+ })
+ .catch((error) => {
+ this.$message({
+ type:'warning',
+ message: '缴款码复制失败'
+ })
+ });
},
goPay(item){
this.detailInfo = item
- this.detailVisible = true
+ if((this.dataForm.type == 1 && this.detailInfo.payPersonType == 2) || (this.dataForm.type == 2 &&this.detailInfo.payType == 2)){
+ this.$message({
+ type:'warning',
+ message: '团体缴费类型无法生成缴费订单'
+ })
+ }else{
+ this.detailVisible = true
+ }
},
- payBill(){
- console.log('立即付款')
+ async payBill(){
+ this.payLoading = true
+ let device = 1
+ const userAgent = window.navigator.userAgent
+ if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent)) {
+ device = 2
+ } else {
+ device = 1
+ }
+ if(this.dataForm.type == 1){
+ const query = {
+ id: this.detailInfo.nonCoalStudentId,
+ payType: 1
+ }
+ const res = await nonCoalPersonPay(query)
+ if(res.code == 200) {
+ this.payLoading = false
+ window.open(`http://finpt.xjcz.gov.cn/fs-public/billQuery/findByOrderId.do?orderId=${res.msg}&deviceType=${device}`)
+ }else{
+ this.payLoading = false
+ this.$message({
+ type:'warning',
+ message: res.msg
+ })
+ }
+ }else{
+ const query = {
+ coalPayId: this.detailInfo.coalPays.id,
+ studentId: this.detailInfo.id
+ }
+ const res = await coalPersonPay(query)
+ if(res.code == 200) {
+ this.payLoading = false
+ window.open(`http://finpt.xjcz.gov.cn/fs-public/billQuery/findByOrderId.do?orderId=${res.msg}&deviceType=${device}`)
+ }else{
+ this.payLoading = false
+ this.$message({
+ type:'warning',
+ message: res.msg
+ })
+ }
+ }
+ },
+ checkTicket(){
+ window.open('http://finpt.xjcz.gov.cn/fs-public/index.do')
},
resetDataForm() {
this.dataForm = {
@@ -280,6 +354,10 @@
handleClose(){
this.info = {}
this.listVisible = false
+ },
+ closePay(){
+ this.detailVisible = false
+ this.payLoading = false
}
}
}
@@ -289,6 +367,8 @@
.container{
width: 100%;
height: 100%;
+ max-width: 960px;
+ margin: 0 auto;
}
.loginTop{
@@ -355,6 +435,26 @@
</style>
<style lang="scss">
.myCustomDialog{
+ width: 100%;
+ max-width: 960px;
+ margin: 0 auto;
+ .el-loading-mask{
+ width: 60%;
+ height: 20%;
+ margin: 30vh auto;
+ border-radius: 20px;
+ padding: 10px;
+ .el-loading-spinner{
+ width: calc(100% - 20px);
+ top: 40%;
+ .el-icon-loading,.el-loading-text{
+ color: #000;
+ }
+ .el-icon-loading{
+ font-size: 24px;
+ }
+ }
+ }
.el-dialog .el-dialog__header{
height: 60px;
padding: 0;
--
Gitblit v1.9.2