Quellcode durchsuchen

线上缴费v2.0.0

vor 4 Jahren
Ursprung
Commit
762e80bd9c

+ 8 - 2
pages/Pay/css/pay.css

@@ -42,6 +42,7 @@
   color: #ffffff;
   line-height: 70rpx;
   text-align: center;
+  z-index: 4;
 }
 
 .container button {
@@ -60,7 +61,7 @@
   height: 100%;
   background: #000000;
   opacity: 0.2;
-  z-index: 4;
+  z-index: 5;
 }
 
 .container .messageCard {
@@ -74,6 +75,7 @@
   height: 1000rpx;
   background: #fff;
   border-radius: 14rpx;
+  z-index: 4;
 }
 
 .container .messageCard .item-form {
@@ -176,6 +178,7 @@
   background: #ffffff;
   opacity: 0.7;
   border-radius: 14rpx;
+  z-index: 3;
 }
 
 .container .messageBg2 {
@@ -187,6 +190,7 @@
   background: #ffffff;
   opacity: 0.5;
   border-radius: 14rpx;
+  z-index: 2;
 }
 
 .container .pop-up {
@@ -204,6 +208,7 @@
   box-shadow: 0rpx 0rpx 13rpx 0rpx rgba(0, 0, 0, 0.29);
   border-radius: 10rpx;
   overflow: hidden;
+  z-index: 6;
 }
 
 .container .pop-up .top {
@@ -325,6 +330,7 @@
   border-radius: 10rpx;
   overflow: hidden;
   box-sizing: border-box;
+  z-index: 6;
 }
 
 .container .leaveMess .top {
@@ -374,7 +380,7 @@
 
 .container .leaveMess .name text,
 .container .leaveMess .tel text {
-  width: 101rpx;
+  width: 110rpx;
   height: 56rpx;
   font-size: 28rpx;
   color: #333333;

Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
pages/Pay/css/pay.min.css


+ 8 - 2
pages/Pay/css/pay.scss

@@ -37,6 +37,7 @@
         color: #ffffff;
         line-height: 70rpx;
         text-align: center;
+        z-index: 4;
     }
     button {
         margin: 0;
@@ -52,7 +53,7 @@
         height: 100%;
         background: #000000;
         opacity: 0.2;
-        z-index: 4;
+        z-index: 5;
     }
     .messageCard {
         display: flex;
@@ -65,6 +66,7 @@
         height: 1000rpx;
         background: #fff;
         border-radius: 14rpx;
+        z-index: 4;
         .item-form {
             width: 618rpx;
             height: 800rpx;
@@ -156,6 +158,7 @@
         background: #ffffff;
         opacity: 0.7;
         border-radius: 14rpx;
+        z-index: 3;
     }
 
     .messageBg2 {
@@ -167,6 +170,7 @@
         background: #ffffff;
         opacity: 0.5;
         border-radius: 14rpx;
+        z-index: 2;
     }
 
     .pop-up {
@@ -184,6 +188,7 @@
         box-shadow: 0rpx 0rpx 13rpx 0rpx rgba(0, 0, 0, 0.29);
         border-radius: 10rpx;
         overflow: hidden;
+        z-index: 6;
         .top {
             display: flex;
             justify-content: space-between;
@@ -291,6 +296,7 @@
         border-radius: 10rpx;
         overflow: hidden;
         box-sizing: border-box;
+        z-index: 6;
         .top {
             display: flex;
             justify-content: space-between;
@@ -331,7 +337,7 @@
             margin: 0 auto;
             margin-top: 30rpx;
             text {
-                width: 101rpx;
+                width: 110rpx;
                 height: 56rpx;
                 font-size: 28rpx;
                 color: #333333;

+ 68 - 69
pages/Pay/pay.vue

@@ -1,6 +1,7 @@
 <template>
   <view class="container">
     <button class="order" @click="toOrder()">订单查询</button>
+    <!-- 遮罩层 -->
     <view
       class="mark"
       v-show="showSearch || showLeaveMess"
@@ -34,21 +35,26 @@
           <text class="ite">缴费学年 </text>
           <text class="content">{{ years }}</text>
         </view>
-        <!-- <template v-if="(itemArr.length = 0)"> -->
         <view class="item-pay" v-for="item in Arr">
           <text class="ite">{{ item.id }} </text>
           <text class="content">¥{{ item.money }}</text>
         </view>
-        <!-- </template> -->
         <view class="item">
           <text class="ite">总金额 </text>
           <text class="content">¥{{ realPayAmount }}</text>
         </view>
       </view>
-
-      <button @click="getPay()" hover-class="button-hover" v-if="payStatu1">
+      <!-- 支付成功显示 -->
+      <button
+        @click="getPay()"
+        hover-class="button-hover"
+        :disabled="btDisabled"
+        :style="bgColor"
+        v-if="payStatu1"
+      >
         支付
       </button>
+      <!-- 支付失败显示 -->
       <text class="okPay" v-if="payStatu2">已支付</text>
       <view class="bottom-a">
         <navigator
@@ -69,6 +75,7 @@
         </navigator>
       </view>
     </view>
+    <!-- 代缴查询学生信息弹窗 -->
     <view class="pop-up" v-show="showSearch">
       <view class="top">
         <text>代缴人信息</text>
@@ -102,6 +109,7 @@
         </button>
       </view>
     </view>
+    <!-- 信息有误反馈弹窗 -->
     <view class="leaveMess" v-show="showLeaveMess">
       <view class="top">
         <text>信息反馈</text>
@@ -143,31 +151,29 @@
 export default {
   data() {
     return {
-      showLeaveMess: false,
-      showSearch: false,
-      studentName: "",
-      studentNo: "",
-      SeaStudentNo: "",
-      SeaStudentName: "",
-      majorName: "",
-      className: "",
-      years: "",
-      realPayAmount: "",
-      Arr: [],
-      payStatu1: true,
-      payStatu2: false,
-      // homeUrl: "http://3mb8i8.natappfree.cc ",
-      homeUrl: "https://jtishfw.ncjti.edu.cn/jiaofei/backendApi",
+      showLeaveMess: false, //显示信息有误反馈弹窗
+      showSearch: false, //显示帮人代缴查询弹窗
+      studentName: "", //姓名
+      studentNo: "", //学号
+      SeaStudentNo: "", //代缴查询学号
+      SeaStudentName: "", //代缴查询姓名
+      majorName: "", //专业
+      className: "", //班级
+      years: "", //缴费学年
+      realPayAmount: "", //总金额
+      Arr: [], //缴费明细数组
+      payStatu1: true, //未支付
+      payStatu2: false, //已支付
+      btDisabled: false,
+      bgColor: "background: #298def;",
+      homeUrl: "https://jtishfw.ncjti.edu.cn/jiaofei/backendApi", //线上服务器域名
       notifyUrl:
-        "https://jtishfw.ncjti.edu.cn/jiaofei/backendApi/pay/jxnxs/notify/",
-      openId: "",
+        "https://jtishfw.ncjti.edu.cn/jiaofei/backendApi/pay/jxnxs/notify/", //农商行地址
       orderNo: "", //订单号
-      cardNumber: "",
-      //反馈者
+      //信息有误反馈
       feedbackPersonName: "",
       feedbackPersonPhone: "",
       feedbackInfo: "",
-      scrollTop: 0,
       //微信支付参数
       appId: "",
       timeStamp: "",
@@ -181,63 +187,40 @@ export default {
     this.getDetailMess(); //获取用户详细信息
   },
   methods: {
+    //显示代缴查询弹窗
     toSearch() {
       this.showSearch = true;
     },
+    //关闭代缴查询弹窗
     close1() {
       this.showSearch = false;
     },
+    //关闭信息有误反馈弹窗
     close2() {
       this.showLeaveMess = false;
     },
+    //信息有误反馈弹窗
     toLeaveMess() {
       this.showLeaveMess = true;
     },
-
+    //关闭遮罩层
     markClose() {
       this.showLeaveMess = false;
       this.showSearch = false;
     },
-
-    // //获取cardNumber
-    // loginFilter() {
-    //   let cardNumber = sessionStorage.getItem("cardNumber");
-
-    //   if (!cardNumber) {
-    //     let cardNumber = this.getQueryString("cardNumber");
-    //     let error = this.getQueryString("error");
-    //     let errorMsg = this.getQueryString("errorMsg");
-    //     let homeWeb = `https://open.wecard.qq.com/connect/oauth/authorize?app_key=2DDC9DBF32F28845&response_type=code&scope=snsapi_userinfo&ocode=1015730314&redirect_uri=${this.homeUrl}/wechat/weixiao/auth/&connect=curLogin&state=${this.homeUrl}/wechat/weixiao/auth/`;
-    //     if (error) {
-    //       uni.showToast({
-    //         title: errorMsg,
-    //         icon: "error",
-    //         mask: true,
-    //         duration: 1000,
-    //       });
-    //     } else if (!cardNumber) {
-    //       window.location.href = homeWeb;
-    //     } else {
-    //       sessionStorage.setItem("cardNumber", cardNumber);
-    //       this.getDetailMess();
-    //     }
-    //   } else {
-    //     this.getDetailMess();
-    //   }
-    // },
-
     //换取详情信息
     getDetailMess() {
       let that = this;
 
-      let cardNumber = sessionStorage.getItem("cardNumber");
+      let cardNumber = localStorage.getItem("cardNumber");
 
       let url = that.homeUrl + "/tuitionpayment/payableinfo/payableInfo";
+
       uni.showToast({
-        title: "信息获取中",
+        title: "信息加载中",
         icon: "loading",
         mask: true,
-        duration: 1500,
+        duration: 1000,
       });
       uni.request({
         url: url,
@@ -320,11 +303,17 @@ export default {
 
     //支付
     getPay() {
+      this.btDisabled = !this.btDisabled;
+      this.bgColor = " background: #b3b3b3;";
+      setTimeout(() => {
+        this.btDisabled = !this.btDisabled;
+        this.bgColor = " background: #298def;";
+      }, 4000);
       uni.showToast({
         title: "支付中,请稍等",
         icon: "loading",
         mask: true,
-        duration: 1500,
+        duration: 2000,
       });
       this.getOrderNo(); //获取订单号
     },
@@ -333,8 +322,15 @@ export default {
     getOrderNo() {
       let that = this;
 
-      let cardNumber = sessionStorage.getItem("cardNumber");
-
+      let cardNumber = localStorage.getItem("cardNumber");
+      if (cardNumber == null) {
+        uni.showToast({
+          title: "cardNumber为空,请重新授权",
+          icon: "error",
+          mask: true,
+          duration: 2000,
+        });
+      }
       let url =
         that.homeUrl + `/tuitionpayment/payorder/${that.studentNo}/create`;
 
@@ -344,7 +340,7 @@ export default {
         header: {
           card_number: cardNumber,
           Accept: "application/json",
-          "Content-Type": "application/json",
+          "Content-Type": "application/x-www-form-urlencoded;charset=utf-8",
           "X-Requested-With": "XMLHttpRequest",
         },
         method: "POST",
@@ -353,6 +349,7 @@ export default {
           let res = data.data;
           that.orderNo = res.orderNo;
           if (!data.success) {
+            //接口错误提示框
             uni.showToast({
               title: data.message,
               icon: "error",
@@ -385,11 +382,12 @@ export default {
           let res = data.data;
           if (data.success) {
             if (res.currentPayMethod === "1") {
-              this.getwxParam();
+              this.getwxParam(); //建行支付
             } else {
-              this.nsPay();
+              this.nsPay(); //农商行支付
             }
           } else {
+            //接口错误提示框
             uni.showToast({
               title: data.message,
               icon: "error",
@@ -406,7 +404,7 @@ export default {
     getwxParam() {
       let that = this;
 
-      let cardNumber = sessionStorage.getItem("cardNumber");
+      let cardNumber = localStorage.getItem("cardNumber");
 
       let openId = localStorage.getItem("openId");
 
@@ -421,13 +419,14 @@ export default {
         header: {
           card_number: cardNumber,
           Accept: "application/json",
-          "Content-Type": "application/json",
+          "Content-Type": "application/x-www-form-urlencoded;charset=utf-8",
           "X-Requested-With": "XMLHttpRequest",
         },
         method: "GET",
         sslVerify: true,
         success: ({ data, statusCode, header }) => {
           if (!data.success) {
+            //接口返回错误提示框
             uni.showToast({
               title: data.message,
               icon: "error",
@@ -442,7 +441,7 @@ export default {
             that.package = res.package;
             that.signType = res.signType;
             that.paySign = res.paySign;
-            that.wxPay();
+            that.wxPay(); //吊起微信支付
           }
         },
         fail: (error) => {},
@@ -528,7 +527,7 @@ export default {
         });
       } else {
         let that = this;
-        let cardNumber = sessionStorage.getItem("cardNumber");
+        let cardNumber = localStorage.getItem("cardNumber");
         let url =
           that.homeUrl +
           `/tuitionpayment/payableinfo/payableInfo/${that.SeaStudentNo}/${that.SeaStudentName}`;
@@ -544,6 +543,7 @@ export default {
           sslVerify: true,
           success: ({ data, statusCode, header }) => {
             if (!data.success) {
+              //接口返回错误提示框
               uni.showToast({
                 title: data.message,
                 icon: "error",
@@ -571,7 +571,6 @@ export default {
               if (res.pay) {
                 that.payStatu1 = false;
                 that.payStatu2 = true;
-                that.showOrder = true;
               } else {
                 that.payStatu1 = true;
                 that.payStatu2 = false;
@@ -587,7 +586,7 @@ export default {
     putMess() {
       let that = this;
 
-      let cardNumber = sessionStorage.getItem("cardNumber");
+      let cardNumber = localStorage.getItem("cardNumber");
 
       let url = that.homeUrl + "/tuitionpayment/feedbackmsg/save";
 
@@ -601,7 +600,7 @@ export default {
         header: {
           card_number: cardNumber,
           Accept: "application/json",
-          "Content-Type": "application/json",
+          "Content-Type": "application/json; charset=utf-8",
           "X-Requested-With": "XMLHttpRequest",
         },
         method: "POST",

+ 39 - 37
pages/blankIndex/blankIndex.vue

@@ -1,48 +1,62 @@
 <template>
-  <view></view>
+  <view>
+    <!-- 登陆拦截页面 -->
+  </view>
 </template>
 
 <script>
 export default {
   data() {
     return {
-      homeUrl: "https://jtishfw.ncjti.edu.cn/jiaofei/backendApi",
+      homeUrl: "https://jtishfw.ncjti.edu.cn/jiaofei/backendApi", //线上服务器月没域名
     };
   },
   onLoad(options) {
     this.loginFilter(); //获取cardNumber
   },
   methods: {
+    //获取当前URL指定参数
+    getQueryString(name) {
+      let url = window.location.href; // 获取URL
+
+      let pattern = new RegExp("[\?\&]" + name + "=([^\&]+)", "i"); // 正则匹配URL
+
+      let matcher = pattern.exec(url);
+
+      if (matcher == null || matcher.length < 1) {
+        return false;
+      }
+      return decodeURIComponent(matcher[1]); // 输出指定的参数值 中文也可以
+    },
     //获取cardNumber
     loginFilter() {
-      let cardNumber = sessionStorage.getItem("cardNumber");
+      let cardNumber = this.getQueryString("cardNumber");
+
+      let error = this.getQueryString("error");
+
+      let errorMsg = this.getQueryString("errorMsg");
 
-      if (!cardNumber) {
-        let cardNumber = this.getQueryString("cardNumber");
-        let error = this.getQueryString("error");
-        let errorMsg = this.getQueryString("errorMsg");
-        let homeWeb = `https://open.wecard.qq.com/connect/oauth/authorize?app_key=2DDC9DBF32F28845&response_type=code&scope=snsapi_userinfo&ocode=1015730314&redirect_uri=${this.homeUrl}/wechat/weixiao/auth/&connect=curLogin&state=${this.homeUrl}/wechat/weixiao/auth/`;
-        if (error) {
-          uni.showToast({
-            title: errorMsg,
-            icon: "error",
-            mask: true,
-            duration: 1000,
-          });
-        } else if (!cardNumber) {
-          window.location.href = homeWeb;
-        } else {
-          sessionStorage.setItem("cardNumber", cardNumber);
-          this.getDetailMess();
-        }
+      let homeWeb = `https://open.wecard.qq.com/connect/oauth/authorize?app_key=2DDC9DBF32F28845&response_type=code&scope=snsapi_userinfo&ocode=1015730314&redirect_uri=${this.homeUrl}/wechat/weixiao/auth/&connect=curLogin&state=${this.homeUrl}/wechat/weixiao/auth/`;
+
+      if (error) {
+        //微校服务器报错提示框
+        uni.showToast({
+          title: errorMsg,
+          icon: "error",
+          mask: true,
+          duration: 1000,
+        });
+      } else if (!cardNumber) {
+        window.location.href = homeWeb;
       } else {
-        this.getDetailMess();
+        localStorage.setItem("cardNumber", cardNumber);
+        this.getDetailMess(); //获取详细信息
       }
     },
 
     //换取详情信息
     getDetailMess() {
-      let cardNumber = sessionStorage.getItem("cardNumber");
+      let cardNumber = localStorage.getItem("cardNumber");
 
       let url = this.homeUrl + "/tuitionpayment/payableinfo/payableInfo";
 
@@ -59,28 +73,16 @@ export default {
         sslVerify: true,
         success: ({ data, statusCode, header }) => {
           if (data.data === null) {
+            //识别家长跳转代缴费页面
             uni.redirectTo({ url: "/pages/parentPay/parentPay" });
           } else {
+            //识别学生跳转学生支付页面
             uni.redirectTo({ url: "/pages/Pay/pay" });
           }
         },
         fail: (error) => {},
       });
     },
-
-    //获取当前URL指定参数
-    getQueryString(name) {
-      let url = window.location.href; // 获取URL
-
-      let pattern = new RegExp("[\?\&]" + name + "=([^\&]+)", "i"); // 正则匹配URL
-
-      let matcher = pattern.exec(url);
-
-      if (matcher == null || matcher.length < 1) {
-        return false;
-      }
-      return decodeURIComponent(matcher[1]); // 输出指定的参数值 中文也可以
-    },
   },
 };
 </script>

+ 3 - 3
pages/order/css/order.css

@@ -76,8 +76,8 @@
   height: 453rpx;
   background: #ffffff;
   border-radius: 10rpx;
-  z-index: 3;
   overflow: hidden;
+  z-index: 3;
 }
 
 .container .list .messCard .field .header {
@@ -195,7 +195,6 @@
   top: 301rpx;
   left: 50%;
   transform: translateX(-325rpx);
-  z-index: 5;
   width: 650rpx;
   height: 742rpx;
   background: #ffffff;
@@ -203,6 +202,7 @@
   border-radius: 10rpx;
   overflow: hidden;
   box-sizing: border-box;
+  z-index: 5;
 }
 
 .container .detail .top {
@@ -285,7 +285,7 @@
   box-shadow: 0rpx 0rpx 13rpx 0rpx rgba(0, 0, 0, 0.29);
   background: #fff;
   border-radius: 14rpx;
-  z-index: 4;
+  z-index: 5;
 }
 
 .container .messageCard .item-form {

Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
pages/order/css/order.min.css


+ 3 - 3
pages/order/css/order.scss

@@ -65,8 +65,8 @@
                 height: 453rpx;
                 background: #ffffff;
                 border-radius: 10rpx;
-                z-index: 3;
                 overflow: hidden;
+                z-index: 3;
                 .header {
                     display: flex;
                     justify-content: space-between;
@@ -172,7 +172,6 @@
         top: 301rpx;
         left: 50%;
         transform: translateX(-325rpx);
-        z-index: 5;
         width: 650rpx;
         height: 742rpx;
         background: #ffffff;
@@ -180,6 +179,7 @@
         border-radius: 10rpx;
         overflow: hidden;
         box-sizing: border-box;
+        z-index: 5;
         .top {
             display: flex;
             justify-content: space-between;
@@ -253,7 +253,7 @@
         box-shadow: 0rpx 0rpx 13rpx 0rpx rgba(0, 0, 0, 0.29);
         background: #fff;
         border-radius: 14rpx;
-        z-index: 4;
+        z-index: 5;
         .item-form {
             width: 618rpx;
             height: 800rpx;

+ 74 - 40
pages/order/order.vue

@@ -1,6 +1,6 @@
 <template>
   <view class="container">
-    <!-- 空列表 -->
+    <!-- 空列表提示 -->
     <view class="hint" v-if="showHint">暂无订单记录</view>
     <!-- 遮罩层 -->
     <view
@@ -67,7 +67,7 @@
         </view>
       </template>
     </view>
-    <!-- 继续支付页面 -->
+    <!-- 继续支付弹窗 -->
     <view class="messageCard" v-show="showPay">
       <view class="item-form">
         <view class="item">
@@ -103,10 +103,17 @@
           <text class="content">¥{{ orderAmount }}</text>
         </view>
       </view>
-      <button @click="getPay()" hover-class="button-hover">支付</button>
+      <button
+        @click="getPay()"
+        :disabled="btDisabled"
+        :style="bgColor"
+        hover-class="button-hover"
+      >
+        支付
+      </button>
       <button @click="closePay()" hover-class="button-hover">取消</button>
     </view>
-    <!-- 查看详情 -->
+    <!-- 查看详情弹窗 -->
     <view class="detail" v-show="showDetail">
       <view class="top">
         <text>订单详情</text>
@@ -157,21 +164,23 @@ export default {
   data() {
     return {
       showPay: false, //继续支付弹窗
-      showHint: true, //无订单提示页
-      showDetail: false, //订单详情弹窗
-      orderList: [],
-      studentName: "",
-      studentNo: "",
-      majorName: "",
-      className: "",
-      years: "",
-      Arr: [],
-      orderAmount: "",
-      homeUrl: "https://jtishfw.ncjti.edu.cn/jiaofei/backendApi",
+      showHint: true, //无订单列表提示
+      showDetail: false, //查看详情弹窗
+      orderList: [], //接口获取的订单列表数组
+      studentName: "", //学生姓名
+      studentNo: "", //学生学号
+      majorName: "", //专业
+      className: "", //班级
+      years: "", //缴费学年
+      Arr: [], //缴费明细数组
+      orderAmount: "", //总金额
+      btDisabled: false,
+      bgColor: "background: #298def;",
+      homeUrl: "https://jtishfw.ncjti.edu.cn/jiaofei/backendApi", //线上域名地址
       notifyUrl:
-        "https://jtishfw.ncjti.edu.cn/jiaofei/backendApi/pay/jxnxs/notify/",
-      orderNo: "",
-      //微信支付参数
+        "https://jtishfw.ncjti.edu.cn/jiaofei/backendApi/pay/jxnxs/notify/", //农商行回跳地址
+      orderNo: "", //订单号
+      //以下为微信支付参数
       appId: "",
       timeStamp: "",
       nonceStr: "",
@@ -181,11 +190,11 @@ export default {
     };
   },
   onLoad(options) {
-    let cardNumber = sessionStorage.getItem("cardNumber");
+    let cardNumber = localStorage.getItem("cardNumber");
 
     if (cardNumber == null) {
       uni.showToast({
-        title: "cardNumber为空",
+        title: "cardNumber为空,请重新授权",
         icon: "error",
         mask: true,
         duration: 2000,
@@ -195,19 +204,22 @@ export default {
     }
   },
   methods: {
+    //点击遮罩层
     markClose() {
       this.showPay = false;
       this.showDetail = false;
     },
+    //关闭查看详情弹窗
     closeDetail() {
       this.showDetail = false;
     },
+    //关闭继续支付弹窗
     closePay() {
       this.showPay = false;
     },
     //获取订单列表
     getOrderList() {
-      let cardNumber = sessionStorage.getItem("cardNumber");
+      let cardNumber = localStorage.getItem("cardNumber");
 
       let url = this.homeUrl + "/tuitionpayment/payorder/currentUserList";
 
@@ -225,10 +237,11 @@ export default {
         success: ({ data, statusCode, header }) => {
           if (data.success) {
             if (data.data.list.length !== 0) {
-              this.showHint = false;
-              this.orderList = data.data.list;
+              this.showHint = false; //关闭“暂无订单列表”提示
+              this.orderList = data.data.list; //获取订单列表
             }
           } else {
+            //接口error提示框
             uni.showToast({
               title: data.message,
               icon: "error",
@@ -243,9 +256,9 @@ export default {
 
     //查看详情
     detailMess(payForIdentify, studentName) {
-      this.showDetail = !this.showDetail;
+      this.showDetail = !this.showDetail; //打开查看详情弹窗
 
-      let cardNumber = sessionStorage.getItem("cardNumber");
+      let cardNumber = localStorage.getItem("cardNumber");
 
       let url =
         this.homeUrl +
@@ -268,7 +281,7 @@ export default {
           this.years = res.years;
           this.majorName = res.majorName;
           this.className = res.className;
-          this.getPayDetail(res.payItemDetail);
+          this.getPayDetail(res.payItemDetail); //分割缴费明细数组
           this.orderAmount = res.realPayAmount;
         },
         fail: (error) => {},
@@ -277,8 +290,9 @@ export default {
 
     //继续支付
     toPay(payForIdentify, studentName) {
-      this.showPay = !this.showPay;
-      let cardNumber = sessionStorage.getItem("cardNumber");
+      this.showPay = !this.showPay; //打开继续支付弹窗
+
+      let cardNumber = localStorage.getItem("cardNumber");
 
       let url =
         this.homeUrl +
@@ -301,7 +315,7 @@ export default {
           this.years = res.years;
           this.majorName = res.majorName;
           this.className = res.className;
-          this.getPayDetail(res.payItemDetail);
+          this.getPayDetail(res.payItemDetail); //分割缴费明细数组
           this.orderAmount = res.realPayAmount;
         },
         fail: (error) => {},
@@ -332,7 +346,7 @@ export default {
 
     //订单反馈
     feedBack(orderNo) {
-      let cardNumber = sessionStorage.getItem("cardNumber");
+      let cardNumber = localStorage.getItem("cardNumber");
 
       let url = this.homeUrl + `/tuitionpayment/payorder/${orderNo}/orderStatu`;
 
@@ -349,6 +363,7 @@ export default {
         sslVerify: true,
         success: ({ data, statusCode, header }) => {
           if (data.data.status == 1) {
+            //反馈支付失败
             uni.showToast({
               title: "支付失败",
               icon: "error",
@@ -361,11 +376,17 @@ export default {
     },
     //支付
     getPay() {
+      this.btDisabled = !this.btDisabled;
+      this.bgColor = " background: #b3b3b3;";
+      setTimeout(() => {
+        this.btDisabled = !this.btDisabled;
+        this.bgColor = " background: #298def;";
+      }, 4000);
       uni.showToast({
         title: "支付中,请稍等",
         icon: "loading",
         mask: true,
-        duration: 1500,
+        duration: 2000,
       });
       this.getOrderNo(); //获取订单号
     },
@@ -373,8 +394,16 @@ export default {
     getOrderNo() {
       let that = this;
 
-      let cardNumber = sessionStorage.getItem("cardNumber");
-
+      let cardNumber = localStorage.getItem("cardNumber");
+      if (cardNumber == null) {
+        uni.showToast({
+          title: "cardNumber为空,请重新授权",
+          icon: "error",
+          mask: true,
+          duration: 2000,
+        });
+        setTimeout(() => this.toBlank, 3000);
+      }
       let url =
         that.homeUrl + `/tuitionpayment/payorder/${that.studentNo}/create`;
 
@@ -392,15 +421,15 @@ export default {
         success: ({ data, statusCode, header }) => {
           let res = data.data;
           that.orderNo = res.orderNo;
-          if (!data.success) {
+          if (data.success) {
+            that.getPayMethod(); //获取后端支付方式
+          } else {
             uni.showToast({
               title: data.message,
               icon: "error",
               mask: true,
               duration: 2000,
             });
-          } else {
-            that.getPayMethod();
           }
         },
         fail: (error) => {},
@@ -424,11 +453,12 @@ export default {
           let res = data.data;
           if (data.success) {
             if (res.currentPayMethod === "1") {
-              this.getwxParam();
+              this.getwxParam(); //建行支付
             } else {
-              this.nsPay();
+              this.nsPay(); //农商行支付
             }
           } else {
+            //接口错误提示框
             uni.showToast({
               title: data.message,
               icon: "error",
@@ -458,7 +488,7 @@ export default {
     getwxParam() {
       let that = this;
 
-      let cardNumber = sessionStorage.getItem("cardNumber");
+      let cardNumber = localStorage.getItem("cardNumber");
 
       let openId = localStorage.getItem("openId");
 
@@ -494,7 +524,7 @@ export default {
             that.package = res.package;
             that.signType = res.signType;
             that.paySign = res.paySign;
-            that.wxPay();
+            that.wxPay(); //吊起微信支付
           }
         },
         fail: (error) => {},
@@ -538,6 +568,10 @@ export default {
         onBridgeReady();
       }
     },
+    //跳转空白页面重新授权拿cardNumber
+    toBlank() {
+      uni.navigateTo({ url: "/pages/blankIndex/blankIndex" });
+    },
   },
 };
 </script>

+ 11 - 5
pages/parentPay/css/parentPay.css

@@ -51,7 +51,7 @@
   height: 100%;
   background: #000000;
   opacity: 0.2;
-  z-index: 4;
+  z-index: 5;
 }
 
 .content1 .messageCard {
@@ -66,6 +66,7 @@
   background: #fff;
   border-radius: 14rpx;
   box-sizing: border-box;
+  z-index: 4;
 }
 
 .content1 .messageCard image {
@@ -115,6 +116,7 @@
   background: #ffffff;
   opacity: 0.7;
   border-radius: 14rpx;
+  z-index: 3;
 }
 
 .content1 .messageBg2 {
@@ -126,6 +128,7 @@
   background: #ffffff;
   opacity: 0.5;
   border-radius: 14rpx;
+  z-index: 2;
 }
 
 .content1 .pop-up {
@@ -136,13 +139,13 @@
   top: 384rpx;
   left: 50%;
   transform: translateX(-325rpx);
-  z-index: 5;
   width: 650rpx;
   height: 566rpx;
   background: #ffffff;
   box-shadow: 0rpx 0rpx 13rpx 0rpx rgba(0, 0, 0, 0.29);
   border-radius: 10rpx;
   overflow: hidden;
+  z-index: 6;
 }
 
 .content1 .pop-up .top {
@@ -270,7 +273,7 @@
   height: 100%;
   background: #000000;
   opacity: 0.2;
-  z-index: 4;
+  z-index: 5;
 }
 
 .content2 .messageCard {
@@ -284,6 +287,7 @@
   height: 1000rpx;
   background: #fff;
   border-radius: 14rpx;
+  z-index: 4;
 }
 
 .content2 .messageCard .item-form {
@@ -386,6 +390,7 @@
   background: #ffffff;
   opacity: 0.7;
   border-radius: 14rpx;
+  z-index: 3;
 }
 
 .content2 .messageBg2 {
@@ -397,6 +402,7 @@
   background: #ffffff;
   opacity: 0.5;
   border-radius: 14rpx;
+  z-index: 2;
 }
 
 .content2 .leaveMess {
@@ -407,7 +413,6 @@
   top: 301rpx;
   left: 50%;
   transform: translateX(-325rpx);
-  z-index: 5;
   width: 650rpx;
   height: 732rpx;
   background: #ffffff;
@@ -415,6 +420,7 @@
   border-radius: 10rpx;
   overflow: hidden;
   box-sizing: border-box;
+  z-index: 6;
 }
 
 .content2 .leaveMess .top {
@@ -464,7 +470,7 @@
 
 .content2 .leaveMess .name text,
 .content2 .leaveMess .tel text {
-  width: 101rpx;
+  width: 110rpx;
   height: 56rpx;
   font-size: 28rpx;
   color: #333333;

Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
pages/parentPay/css/parentPay.min.css


+ 11 - 5
pages/parentPay/css/parentPay.scss

@@ -43,7 +43,7 @@
         height: 100%;
         background: #000000;
         opacity: 0.2;
-        z-index: 4;
+        z-index: 5;
     }
     .messageCard {
         display: flex;
@@ -57,6 +57,7 @@
         background: #fff;
         border-radius: 14rpx;
         box-sizing: border-box;
+        z-index: 4;
         image {
             max-width: 438rpx;
             max-height: 360rpx;
@@ -101,6 +102,7 @@
         background: #ffffff;
         opacity: 0.7;
         border-radius: 14rpx;
+        z-index: 3;
     }
 
     .messageBg2 {
@@ -112,6 +114,7 @@
         background: #ffffff;
         opacity: 0.5;
         border-radius: 14rpx;
+        z-index: 2;
     }
     .pop-up {
         display: flex;
@@ -121,13 +124,13 @@
         top: 384rpx;
         left: 50%;
         transform: translateX(-325rpx);
-        z-index: 5;
         width: 650rpx;
         height: 566rpx;
         background: #ffffff;
         box-shadow: 0rpx 0rpx 13rpx 0rpx rgba(0, 0, 0, 0.29);
         border-radius: 10rpx;
         overflow: hidden;
+        z-index: 6;
         .top {
             display: flex;
             justify-content: space-between;
@@ -239,7 +242,7 @@
         height: 100%;
         background: #000000;
         opacity: 0.2;
-        z-index: 4;
+        z-index: 5;
     }
     .messageCard {
         display: flex;
@@ -252,6 +255,7 @@
         height: 1000rpx;
         background: #fff;
         border-radius: 14rpx;
+        z-index: 4;
         .item-form {
             width: 618rpx;
             height: 800rpx;
@@ -343,6 +347,7 @@
         background: #ffffff;
         opacity: 0.7;
         border-radius: 14rpx;
+        z-index: 3;
     }
 
     .messageBg2 {
@@ -354,6 +359,7 @@
         background: #ffffff;
         opacity: 0.5;
         border-radius: 14rpx;
+        z-index: 2;
     }
     .leaveMess {
         display: flex;
@@ -363,7 +369,6 @@
         top: 301rpx;
         left: 50%;
         transform: translateX(-325rpx);
-        z-index: 5;
         width: 650rpx;
         height: 732rpx;
         background: #ffffff;
@@ -371,6 +376,7 @@
         border-radius: 10rpx;
         overflow: hidden;
         box-sizing: border-box;
+        z-index: 6;
         .top {
             display: flex;
             justify-content: space-between;
@@ -411,7 +417,7 @@
             margin: 0 auto;
             margin-top: 30rpx;
             text {
-                width: 101rpx;
+                width: 110rpx;
                 height: 56rpx;
                 font-size: 28rpx;
                 color: #333333;

+ 78 - 39
pages/parentPay/parentPay.vue

@@ -1,6 +1,8 @@
 <template>
   <view class="container">
+    <!-- 家长代缴费与查看订单页面 -->
     <view class="content1" v-if="content1">
+      <!-- 遮罩层 -->
       <view class="mark" v-show="showSearch" @click="close1"></view>
       <view class="messageBg1"></view>
       <view class="messageBg2"></view>
@@ -10,6 +12,7 @@
         <button hover-class="button-hover" @click="toSearch">帮人代缴</button>
         <button hover-class="button-hover" @click="toOrder">查询订单</button>
       </view>
+      <!-- 代缴费学生信息查询弹窗 -->
       <view class="pop-up" v-show="showSearch">
         <view class="top">
           <text>代缴人信息</text>
@@ -46,7 +49,9 @@
         </view>
       </view>
     </view>
+    <!-- 学生详情信息页面 -->
     <view class="content2" v-if="showMess">
+      <!-- 遮罩层 -->
       <view class="mark" v-show="showLeaveMess" @click="toLeaveMess()"></view>
       <view class="messageBg1"></view>
       <view class="messageBg2"></view>
@@ -76,21 +81,26 @@
             <text class="ite">缴费学年 </text>
             <text class="content">{{ years }}</text>
           </view>
-          <!-- <template v-if="(itemArr.length = 0)"> -->
           <view class="item-pay" v-for="item in Arr">
             <text class="ite">{{ item.id }} </text>
             <text class="content">¥{{ item.money }}</text>
           </view>
-          <!-- </template> -->
           <view class="item">
             <text class="ite">总金额 </text>
             <text class="content">¥{{ realPayAmount }}</text>
           </view>
         </view>
-
-        <button @click="getPay()" hover-class="button-hover" v-if="payStatu1">
+        <!-- 未支付时显示 -->
+        <button
+          @click="getPay()"
+          hover-class="button-hover"
+          :disabled="btDisabled"
+          :style="bgColor"
+          v-if="payStatu1"
+        >
           支付
         </button>
+        <!-- 已支付时显示 -->
         <text class="okPay" v-if="payStatu2">已支付</text>
         <view class="bottom-a">
           <navigator
@@ -103,6 +113,7 @@
           </navigator>
         </view>
       </view>
+      <!-- 信息有误,反馈弹窗 -->
       <view class="leaveMess" v-show="showLeaveMess">
         <view class="top">
           <text>信息反馈</text>
@@ -145,31 +156,31 @@
 export default {
   data() {
     return {
-      content1: true,
-      showMess: false,
-      showSearch: false,
-      showLeaveMess: false,
-      studentName: "",
-      studentNo: "",
-      SeaStudentName: "",
-      SeaStudentNo: "",
-      majorName: "",
-      className: "",
-      years: "",
-      realPayAmount: "",
-      Arr: [],
-      payStatu1: true,
-      payStatu2: false,
-      feedbackPersonName: "",
-      feedbackPersonPhone: "",
-      feedbackInfo: "",
-      // homeUrl: "http://3mb8i8.natappfree.cc ",
-      homeUrl: "https://jtishfw.ncjti.edu.cn/jiaofei/backendApi",
+      content1: true, //家长代缴费与查看订单页面
+      showMess: false, //代缴查询弹窗
+      showSearch: false, //代缴查询弹窗
+      showLeaveMess: false, //信息有误反馈弹窗
+      studentName: "", //姓名
+      studentNo: "", //学号
+      SeaStudentName: "", //代缴查询页面姓名
+      SeaStudentNo: "", //代缴查询页面学号
+      majorName: "", //专业
+      className: "", //班级
+      years: "", //缴费学年
+      realPayAmount: "", //总金额
+      Arr: [], //缴费明细数组
+      payStatu1: true, //支付按钮
+      payStatu2: false, //已支付按钮
+      btDisabled: false,
+      bgColor: "background: #298def;",
+      feedbackPersonName: "", //信息有误反馈提交者姓名
+      feedbackPersonPhone: "", //信息有误反馈提交者联系电话
+      feedbackInfo: "", //反馈信息
+      homeUrl: "https://jtishfw.ncjti.edu.cn/jiaofei/backendApi", //线上服务器域名
       notifyUrl:
-        "https://jtishfw.ncjti.edu.cn/jiaofei/backendApi/pay/jxnxs/notify/",
-      cardNumber: "",
+        "https://jtishfw.ncjti.edu.cn/jiaofei/backendApi/pay/jxnxs/notify/", //农商行回跳地址
       orderNo: "", //订单号
-      //微信支付参数
+      //以下为微信支付参数
       appId: "",
       timeStamp: "",
       nonceStr: "",
@@ -180,15 +191,19 @@ export default {
   },
   onLoad(options) {},
   methods: {
+    //显示或关闭信息有误反馈弹窗
     toLeaveMess() {
       this.showLeaveMess = !this.showLeaveMess;
     },
+    //代缴查询学生信息弹窗
     toSearch() {
       this.showSearch = !this.showSearch;
     },
+    //关闭代缴查询学生信息弹窗
     close1() {
       this.showSearch = !this.showSearch;
     },
+    //显示学生详细信息页面关闭代缴与查看订单页面
     toShowMess() {
       this.showMess = !this.showMess;
       this.content1 = false;
@@ -229,7 +244,7 @@ export default {
         });
       } else {
         let that = this;
-        let cardNumber = sessionStorage.getItem("cardNumber");
+        let cardNumber = localStorage.getItem("cardNumber");
         let url =
           that.homeUrl +
           `/tuitionpayment/payableinfo/payableInfo/${that.SeaStudentNo}/${that.SeaStudentName}`;
@@ -268,6 +283,7 @@ export default {
               that.className = res.className;
               that.realPayAmount = res.realPayAmount;
               that.getPayDetail(res.payItemDetail);
+              //清空代缴查询学生信息姓名与学号
               that.SeaStudentNo = "";
               that.SeaStudentName = "";
               if (res.pay) {
@@ -308,11 +324,17 @@ export default {
 
     //支付
     getPay() {
+      this.btDisabled = !this.btDisabled;
+      this.bgColor = " background: #b3b3b3;";
+      setTimeout(() => {
+        this.btDisabled = !this.btDisabled;
+        this.bgColor = " background: #298def;";
+      }, 4000);
       uni.showToast({
         title: "支付中,请稍等",
         icon: "loading",
         mask: true,
-        duration: 1500,
+        duration: 2000,
       });
       this.getOrderNo(); //获取订单号
     },
@@ -321,7 +343,17 @@ export default {
     getOrderNo() {
       let that = this;
 
-      let cardNumber = sessionStorage.getItem("cardNumber");
+      let cardNumber = localStorage.getItem("cardNumber");
+
+      if (cardNumber == null) {
+        uni.showToast({
+          title: "cardNumber为空,请重新授权",
+          icon: "error",
+          mask: true,
+          duration: 2000,
+        });
+        setTimeout(() => this.toBlank, 3000);
+      }
 
       let url =
         that.homeUrl + `/tuitionpayment/payorder/${that.studentNo}/create`;
@@ -332,7 +364,7 @@ export default {
         header: {
           card_number: cardNumber,
           Accept: "application/json",
-          "Content-Type": "application/json",
+          "Content-Type": "application/x-www-form-urlencoded;charset=utf-8",
           "X-Requested-With": "XMLHttpRequest",
         },
         method: "POST",
@@ -340,15 +372,16 @@ export default {
         success: ({ data, statusCode, header }) => {
           let res = data.data;
           that.orderNo = res.orderNo;
-          if (!data.success) {
+          if (data.success) {
+            that.getPayMethod(); //获取支付方式
+          } else {
+            //接口错误提示框
             uni.showToast({
               title: data.message,
               icon: "error",
               mask: true,
               duration: 2000,
             });
-          } else {
-            that.getPayMethod();
           }
         },
         fail: (error) => {},
@@ -373,12 +406,13 @@ export default {
           let res = data.data;
           if (data.success) {
             if (res.currentPayMethod === "1") {
-              this.getwxParam();
+              this.getwxParam(); //建行支付
             } else {
-              this.nsPay();
+              this.nsPay(); //农商行支付
             }
           } else {
             uni.showToast({
+              //接口错误提示框
               title: data.message,
               icon: "error",
               mask: true,
@@ -409,7 +443,7 @@ export default {
     getwxParam() {
       let that = this;
 
-      let cardNumber = sessionStorage.getItem("cardNumber");
+      let cardNumber = localStorage.getItem("cardNumber");
 
       let openId = localStorage.getItem("openId");
 
@@ -424,13 +458,14 @@ export default {
         header: {
           card_number: cardNumber,
           Accept: "application/json",
-          "Content-Type": "application/json",
+          "Content-Type": "application/x-www-form-urlencoded;charset=utf-8",
           "X-Requested-With": "XMLHttpRequest",
         },
         method: "GET",
         sslVerify: true,
         success: ({ data, statusCode, header }) => {
           if (!data.success) {
+            //接口错误提示框
             uni.showToast({
               title: data.message,
               icon: "error",
@@ -509,7 +544,7 @@ export default {
     putMess() {
       let that = this;
 
-      let cardNumber = sessionStorage.getItem("cardNumber");
+      let cardNumber = localStorage.getItem("cardNumber");
 
       let url = that.homeUrl + "/tuitionpayment/feedbackmsg/save";
 
@@ -541,6 +576,7 @@ export default {
             that.feedbackPersonPhone = "";
             that.feedbackInfo = "";
           } else {
+            //接口错误提示框
             uni.showToast({
               title: data.message,
               icon: "error",
@@ -557,6 +593,9 @@ export default {
     toOrder() {
       uni.navigateTo({ url: "/pages/order/order" });
     },
+    toBlank() {
+      uni.navigateTo({ url: "/pages/blankIndex/blankIndex" });
+    },
   },
 };
 </script>

+ 1 - 1
pages/paySuccess/paySuccess.vue

@@ -16,7 +16,7 @@ export default {
   methods: {
     //查询订单列表
     toOrder() {
-      uni.navigateTo({ url: "/pages/order/order" });
+      uni.redirectTo({ url: "/pages/order/order" });
     },
   },
 };