فهرست منبع

v1.0.0建行支付

4 سال پیش
والد
کامیت
e219ec0460

+ 17 - 0
App.vue

@@ -0,0 +1,17 @@
+<script>
+	export default {
+		onLaunch: function() {
+			console.log('App Launch')
+		},
+		onShow: function() {
+			console.log('App Show')
+		},
+		onHide: function() {
+			console.log('App Hide')
+		}
+	}
+</script>
+
+<style>
+	/*每个页面公共css */
+</style>

+ 11 - 0
main.js

@@ -0,0 +1,11 @@
+import Vue from 'vue'
+import App from './App'
+Vue.config.productionTip = false
+
+App.mpType = 'app'
+
+const app = new Vue({
+    ...App
+})
+app.$mount()
+

+ 76 - 0
manifest.json

@@ -0,0 +1,76 @@
+{
+    "name" : "在线缴费",
+    "appid" : "__UNI__249F456",
+    "description" : "",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : false,
+    /* 5+App特有相关 */
+    "app-plus" : {
+        "usingComponents" : true,
+        "nvueStyleCompiler" : "uni-app",
+        "compilerVersion" : 3,
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        /* 模块配置 */
+        "modules" : {},
+        /* 应用发布信息 */
+        "distribute" : {
+            /* android打包配置 */
+            "android" : {
+                "permissions" : [
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+                ]
+            },
+            /* ios打包配置 */
+            "ios" : {},
+            /* SDK配置 */
+            "sdkConfigs" : {}
+        }
+    },
+    /* 快应用特有相关 */
+    "quickapp" : {},
+    /* 小程序特有相关 */
+    "mp-weixin" : {
+        "appid" : "",
+        "setting" : {
+            "urlCheck" : false
+        },
+        "usingComponents" : true
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "uniStatistics" : {
+        "enable" : false
+    },
+    "h5" : {
+        "router" : {
+            "base" : "/jiaofei/jiaofeiH5/"
+        }
+    }
+}

+ 36 - 0
pages.json

@@ -0,0 +1,36 @@
+{
+	"pages": [ 
+		{
+			"path": "pages/Pay/pay",
+			"style":{
+				"navigationBarTitleText": "在线缴费",
+				"navigationStyle": "custom"	
+				
+			}
+		}, 
+		{
+			"path": "pages/paySuccess/paySuccess",
+			"style":{	
+				"navigationBarTitleText": "支付成功",	
+				"navigationStyle": "custom"	
+			}
+		},
+			{
+			"path": "pages/parentPay/parentPay",
+			"style":{	
+				"navigationBarTitleText": "在线缴费",	
+				"navigationStyle": "custom"
+				
+			}
+		}
+		
+	 
+		
+	],
+	"globalStyle": {
+		"navigationBarTextStyle": "black",
+		"navigationBarTitleText": "uni-app",
+		"navigationBarBackgroundColor": "#F8F8F8",
+		"backgroundColor": "#F8F8F8"
+	}
+}

+ 414 - 0
pages/Pay/css/pay.css

@@ -0,0 +1,414 @@
+page {
+  height: 100%;
+}
+
+.container {
+  position: relative;
+  width: 100%;
+  height: 1334rpx;
+  font-family: "MicrosoftYaHei";
+  font-weight: 400;
+  background-image: url(../../static/images/bg.png);
+  background-size: 100% 100%;
+  background-attachment: fixed;
+  background-repeat: no-repeat;
+}
+
+.container .order {
+  position: absolute;
+  top: 115rpx;
+  left: 50%;
+  transform: translateX(-345rpx);
+  width: 690rpx;
+  height: 28rpx;
+  font-size: 28rpx;
+  color: #ffffff;
+  line-height: 54rpx;
+  text-align: right;
+}
+
+.container button::after {
+  border: none;
+}
+
+.container .mark {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  background: #000000;
+  opacity: 0.2;
+  z-index: 4;
+}
+
+.container .status_bar {
+  position: fixed;
+  top: 0;
+  height: var(--status-bar-height);
+  width: 100%;
+  background: #f8f8f8;
+  z-index: 1000;
+}
+
+.container .navBar {
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 750rpx;
+  height: 55rpx;
+  margin-top: 34rpx;
+  color: #fff;
+  font-weight: bold;
+  background-color: rbga(0, 0, 0, 0.1);
+  text-align: center;
+  line-height: 55rpx;
+  z-index: 1000;
+}
+
+.container .navBar .back {
+  display: inline-block;
+  position: absolute;
+  top: 16rpx;
+  left: 30rpx;
+  width: 10px;
+  height: 10px;
+  border: none;
+  border-bottom: 4rpx solid #fff;
+  border-left: 4rpx solid #fff;
+  transform: rotate(45deg);
+  text-align: center;
+}
+
+.container .messageCard {
+  display: flex;
+  flex-direction: column;
+  justify-content: flex-start;
+  position: absolute;
+  top: 170rpx;
+  left: 36rpx;
+  width: 678rpx;
+  height: 1000rpx;
+  background: #fff;
+  border-radius: 14rpx;
+}
+
+.container .messageCard .item-form {
+  width: 618rpx;
+  height: 906rpx;
+  margin: 0 auto;
+  overflow: scroll;
+}
+
+.container .messageCard .item-form .item,
+.container .messageCard .item-form .item-pay {
+  display: flex;
+  justify-content: space-between;
+  width: 618rpx;
+  height: 89rpx;
+  margin: 0 auto;
+  margin-top: 8rpx;
+  border-bottom: 1rpx solid #d9d9d9;
+  line-height: 89rpx;
+  box-sizing: border-box;
+}
+
+.container .messageCard .item-form .item .ite,
+.container .messageCard .item-form .item-pay .ite {
+  display: inline-block;
+  width: 150rpx;
+  height: 60rpx;
+  line-height: 89rpx;
+  margin-left: 20rpx;
+  font-size: 32rpx;
+  color: #808080;
+}
+
+.container .messageCard .item-form .item .content,
+.container .messageCard .item-form .item-pay .content {
+  display: inline-block;
+  width: 400rpx;
+  height: 60rpx;
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+  line-height: 89rpx;
+  margin-left: 40rpx;
+  color: #000;
+  background: #fff;
+}
+
+.container .messageCard button {
+  width: 618rpx;
+  height: 100rpx;
+  background: #298def;
+  font-size: 28rpx;
+  color: #fff;
+  text-align: center;
+  line-height: 100rpx;
+}
+
+.container .messageCard .okPay {
+  width: 618rpx;
+  height: 100rpx;
+  margin: 0 auto;
+  border-radius: 5rpx;
+  background: #b3b3b3;
+  opacity: 0.6;
+  font-size: 28rpx;
+  color: #fff;
+  text-align: center;
+  line-height: 100rpx;
+}
+
+.container .messageCard .bottom-a {
+  display: flex;
+  justify-content: space-between;
+  width: 618rpx;
+  height: 80rpx;
+  margin: 0 auto;
+}
+
+.container .messageCard .bottom-a navigator {
+  height: 80rpx;
+  font-size: 26rpx;
+  color: #298def;
+  text-align: center;
+  line-height: 80rpx;
+}
+
+.container .messageBg1 {
+  position: absolute;
+  top: 190rpx;
+  left: 51rpx;
+  width: 648rpx;
+  height: 1005rpx;
+  background: #ffffff;
+  opacity: 0.7;
+  border-radius: 14rpx;
+}
+
+.container .messageBg2 {
+  position: absolute;
+  top: 209rpx;
+  left: 58rpx;
+  width: 634rpx;
+  height: 1007rpx;
+  background: #ffffff;
+  opacity: 0.5;
+  border-radius: 14rpx;
+}
+
+.container .pop-up {
+  display: flex;
+  flex-direction: column;
+  justify-content: flex-start;
+  position: absolute;
+  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;
+}
+
+.container .pop-up .top {
+  display: flex;
+  justify-content: space-between;
+  width: 650rpx;
+  height: 90rpx;
+  background: #e7eef5;
+  line-height: 90rpx;
+}
+
+.container .pop-up .top text {
+  width: 161rpx;
+  height: 90rpx;
+  margin-left: 35rpx;
+  line-height: 90rpx;
+  font-size: 32rpx;
+  color: #333333;
+}
+
+.container .pop-up .top image {
+  max-width: 18rpx;
+  max-height: 18rpx;
+  margin-top: 36rpx;
+  margin-right: 48rpx;
+}
+
+.container .pop-up .name,
+.container .pop-up .studentNo {
+  display: flex;
+  justify-content: space-around;
+  width: 590rpx;
+  height: 111rpx;
+  margin: 0 auto;
+  border-bottom: 1rpx solid #cccccc;
+  background: #fff;
+  padding-top: 12rpx;
+  box-sizing: border-box;
+}
+
+.container .pop-up .name text,
+.container .pop-up .studentNo text {
+  display: inline-block;
+  width: 100rpx;
+  height: 111rpx;
+  font-size: 32rpx;
+  color: #313131;
+  line-height: 111rpx;
+  text-align: center;
+}
+
+.container .pop-up .name input,
+.container .pop-up .studentNo input {
+  display: inline-block;
+  width: 390rpx;
+  height: 111rpx;
+  text-align: left;
+  line-height: 111rpx;
+}
+
+.container .pop-up .remark {
+  width: 552rpx;
+  height: 24rpx;
+  margin: 0 auto;
+  font-size: 24rpx;
+  color: #999999;
+  line-height: 54rpx;
+}
+
+.container .pop-up .confirm {
+  display: flex;
+  justify-content: space-between;
+  width: 410rpx;
+  height: 254rpx;
+  margin: 0 auto;
+}
+
+.container .pop-up .confirm button {
+  width: 170rpx;
+  height: 80rpx;
+  margin-top: 92rpx;
+  background: white;
+  border: 1rpx solid #298def;
+  border-radius: 4rpx;
+  text-align: center;
+  line-height: 80rpx;
+  color: #298def;
+}
+
+.container .pop-up .confirm button:nth-child(2) {
+  background: #298def;
+  color: #fff;
+  border-color: #298def;
+}
+
+.container .leaveMess {
+  display: flex;
+  flex-direction: column;
+  justify-content: flex-start;
+  position: absolute;
+  top: 301rpx;
+  left: 50%;
+  transform: translateX(-325rpx);
+  z-index: 5;
+  width: 650rpx;
+  height: 732rpx;
+  background: #ffffff;
+  box-shadow: 0rpx 0rpx 13rpx 0rpx rgba(0, 0, 0, 0.29);
+  border-radius: 10rpx;
+  overflow: hidden;
+  box-sizing: border-box;
+}
+
+.container .leaveMess .top {
+  display: flex;
+  justify-content: space-between;
+  width: 650rpx;
+  height: 90rpx;
+  background: #e7eef5;
+  line-height: 90rpx;
+}
+
+.container .leaveMess .top text {
+  width: 161rpx;
+  height: 90rpx;
+  margin-left: 35rpx;
+  line-height: 90rpx;
+  font-size: 32rpx;
+  color: #333333;
+}
+
+.container .leaveMess .top image {
+  max-width: 18rpx;
+  max-height: 18rpx;
+  margin-top: 36rpx;
+  margin-right: 48rpx;
+}
+
+.container .leaveMess .name,
+.container .leaveMess .tel {
+  display: flex;
+  justify-content: space-between;
+  width: 570rpx;
+  height: 56rpx;
+  margin: 0 auto;
+  margin-top: 30rpx;
+}
+
+.container .leaveMess .name text,
+.container .leaveMess .tel text {
+  width: 101rpx;
+  height: 56rpx;
+  font-size: 28rpx;
+  color: #333333;
+  text-align: center;
+  line-height: 56rpx;
+}
+
+.container .leaveMess .name input,
+.container .leaveMess .tel input {
+  width: 453rpx;
+  height: 56rpx;
+  border: 1rpx solid #bfbfbf;
+  border-radius: 5rpx;
+  text-align: left;
+}
+
+.container .leaveMess .name text {
+  text-align: right;
+}
+
+.container .leaveMess .title {
+  width: 570rpx;
+  height: 30rpx;
+  margin: 0 auto;
+  margin-top: 40rpx;
+  color: #333333;
+  font-size: 28rpx;
+  line-height: 30rpx;
+}
+
+.container .leaveMess textarea {
+  width: 570rpx;
+  height: 230rpx;
+  border: 1rpx solid #cccccc;
+  border-radius: 10rpx;
+  margin: 0 auto;
+  margin-top: 20rpx;
+}
+
+.container .leaveMess button {
+  width: 170rpx;
+  height: 80rpx;
+  margin-top: 30rpx;
+  background: #298def;
+  border-radius: 4px;
+  color: #fff;
+  text-align: center;
+  line-height: 80rpx;
+}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 0
pages/Pay/css/pay.min.css


+ 378 - 0
pages/Pay/css/pay.scss

@@ -0,0 +1,378 @@
+page {
+    height: 100%;
+}
+
+.container {
+    position: relative;
+    width: 100%;
+    height: 1334rpx;
+    font-family: "MicrosoftYaHei";
+    font-weight: 400;
+    background-image: url(../../static/images/bg.png);
+    background-size: 100% 100%;
+    background-attachment: fixed;
+    background-repeat: no-repeat;
+    .order {
+        position: absolute;
+        top: 115rpx;
+        left: 50%;
+        transform: translateX(-345rpx);
+        width: 690rpx;
+        height: 28rpx;
+        font-size: 28rpx;
+        color: #ffffff;
+        line-height: 54rpx;
+        text-align: right;
+    }
+    button::after {
+        border: none;
+    }
+    .mark {
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        background: #000000;
+        opacity: 0.2;
+        z-index: 4;
+    }
+    .status_bar {
+        position: fixed;
+        top: 0;
+        height: var(--status-bar-height);
+        width: 100%;
+        background: #f8f8f8;
+        z-index: 1000;
+    }
+
+    .navBar {
+        position: fixed;
+        top: 0;
+        left: 0;
+        width: 750rpx;
+        height: 55rpx;
+        margin-top: 34rpx;
+        color: #fff;
+        font-weight: bold;
+        background-color: rbga(0, 0, 0, 0.1);
+        text-align: center;
+        line-height: 55rpx;
+        z-index: 1000;
+        .back {
+            display: inline-block;
+            position: absolute;
+            top: 16rpx;
+            left: 30rpx;
+            width: 10px;
+            height: 10px;
+            border: none;
+            border-bottom: 4rpx solid #fff;
+            border-left: 4rpx solid #fff;
+            transform: rotate(45deg);
+            text-align: center;
+        }
+    }
+
+    .messageCard {
+        display: flex;
+        flex-direction: column;
+        justify-content: flex-start;
+        position: absolute;
+        top: 170rpx;
+        left: 36rpx;
+        width: 678rpx;
+        height: 1000rpx;
+        background: #fff;
+        border-radius: 14rpx;
+        // box-sizing: border-box;
+
+        .item-form {
+            width: 618rpx;
+            height: 906rpx;
+            margin: 0 auto;
+            overflow: scroll;
+            .item,
+            .item-pay {
+                display: flex;
+                justify-content: space-between;
+                width: 618rpx;
+                height: 89rpx;
+                margin: 0 auto;
+                margin-top: 8rpx;
+                border-bottom: 1rpx solid #d9d9d9;
+                line-height: 89rpx;
+                box-sizing: border-box;
+                .ite {
+                    display: inline-block;
+                    width: 150rpx;
+                    height: 60rpx;
+                    line-height: 89rpx;
+                    margin-left: 20rpx;
+                    font-size: 32rpx;
+                    color: #808080;
+                }
+                .content {
+                    display: inline-block;
+                    width: 400rpx;
+                    height: 60rpx;
+                    overflow: hidden; //多出部分隐藏
+                    white-space: nowrap; //一行显示
+                    text-overflow: ellipsis; //是否显示省略号
+                    line-height: 89rpx;
+                    margin-left: 40rpx;
+                    color: #000;
+                    background: #fff;
+                }
+            }
+        }
+        button {
+            width: 618rpx;
+            height: 100rpx;
+            background: #298def;
+            font-size: 28rpx;
+            color: #fff;
+            text-align: center;
+            line-height: 100rpx;
+        }
+        .okPay {
+            width: 618rpx;
+            height: 100rpx;
+            margin: 0 auto;
+            border-radius: 5rpx;
+            background: #b3b3b3;
+            opacity: 0.6;
+            font-size: 28rpx;
+            color: #fff;
+            text-align: center;
+            line-height: 100rpx;
+        }
+        .bottom-a {
+            display: flex;
+            justify-content: space-between;
+            width: 618rpx;
+            height: 80rpx;
+            margin: 0 auto;
+            navigator {
+                height: 80rpx;
+                font-size: 26rpx;
+                color: #298def;
+                text-align: center;
+                line-height: 80rpx;
+            }
+        }
+    }
+
+    .messageBg1 {
+        position: absolute;
+        top: 190rpx;
+        left: 51rpx;
+        width: 648rpx;
+        height: 1005rpx;
+        background: #ffffff;
+        opacity: 0.7;
+        border-radius: 14rpx;
+    }
+
+    .messageBg2 {
+        position: absolute;
+        top: 209rpx;
+        left: 58rpx;
+        width: 634rpx;
+        height: 1007rpx;
+        background: #ffffff;
+        opacity: 0.5;
+        border-radius: 14rpx;
+    }
+
+    .pop-up {
+        display: flex;
+        flex-direction: column;
+        justify-content: flex-start;
+        position: absolute;
+        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;
+        .top {
+            display: flex;
+            justify-content: space-between;
+            width: 650rpx;
+            height: 90rpx;
+            background: #e7eef5;
+            line-height: 90rpx;
+            text {
+                width: 161rpx;
+                height: 90rpx;
+                margin-left: 35rpx;
+                line-height: 90rpx;
+                font-size: 32rpx;
+                color: #333333;
+            }
+            image {
+                max-width: 18rpx;
+                max-height: 18rpx;
+                margin-top: 36rpx;
+                margin-right: 48rpx;
+            }
+        }
+        .name,
+        .studentNo {
+            display: flex;
+            justify-content: space-around;
+            width: 590rpx;
+            height: 111rpx;
+            margin: 0 auto;
+            border-bottom: 1rpx solid #cccccc;
+            background: #fff;
+            padding-top: 12rpx;
+            box-sizing: border-box;
+            text {
+                display: inline-block;
+                width: 100rpx;
+                height: 111rpx;
+                font-size: 32rpx;
+                color: #313131;
+                line-height: 111rpx;
+                text-align: center;
+            }
+            input {
+                display: inline-block;
+                width: 390rpx;
+                height: 111rpx;
+                text-align: left;
+                line-height: 111rpx;
+            }
+        }
+        .remark {
+            width: 552rpx;
+            height: 24rpx;
+            margin: 0 auto;
+            font-size: 24rpx;
+            color: #999999;
+            line-height: 54rpx;
+        }
+        .confirm {
+            display: flex;
+            justify-content: space-between;
+            width: 410rpx;
+            height: 254rpx;
+            margin: 0 auto;
+            button {
+                width: 170rpx;
+                height: 80rpx;
+                margin-top: 92rpx;
+                background: rgba(255, 255, 255, 1);
+                border: 1rpx solid #298def;
+                border-radius: 4rpx;
+                text-align: center;
+                line-height: 80rpx;
+                color: rgba(41, 141, 239, 1);
+            }
+            button:nth-child(2) {
+                background: rgba(41, 141, 239, 1);
+                color: #fff;
+                border-color: rgba(41, 141, 239, 1);
+            }
+        }
+    }
+    .leaveMess {
+        display: flex;
+        flex-direction: column;
+        justify-content: flex-start;
+        position: absolute;
+        top: 301rpx;
+        left: 50%;
+        transform: translateX(-325rpx);
+        z-index: 5;
+        width: 650rpx;
+        height: 732rpx;
+        background: #ffffff;
+        box-shadow: 0rpx 0rpx 13rpx 0rpx rgba(0, 0, 0, 0.29);
+        border-radius: 10rpx;
+        overflow: hidden;
+        box-sizing: border-box;
+        .top {
+            display: flex;
+            justify-content: space-between;
+            width: 650rpx;
+            height: 90rpx;
+            background: #e7eef5;
+            line-height: 90rpx;
+            text {
+                width: 161rpx;
+                height: 90rpx;
+                margin-left: 35rpx;
+                line-height: 90rpx;
+                font-size: 32rpx;
+                color: #333333;
+            }
+            image {
+                max-width: 18rpx;
+                max-height: 18rpx;
+                margin-top: 36rpx;
+                margin-right: 48rpx;
+            }
+        }
+        .name,
+        .tel {
+            display: flex;
+            justify-content: space-between;
+            width: 570rpx;
+            height: 56rpx;
+            margin: 0 auto;
+            margin-top: 30rpx;
+            text {
+                width: 101rpx;
+                height: 56rpx;
+                font-size: 28rpx;
+                color: #333333;
+                text-align: center;
+                line-height: 56rpx;
+            }
+            input {
+                width: 453rpx;
+                height: 56rpx;
+                border: 1rpx solid #bfbfbf;
+                border-radius: 5rpx;
+                text-align: left;
+            }
+        }
+        .name {
+            text {
+                text-align: right;
+            }
+        }
+        .title {
+            width: 570rpx;
+            height: 30rpx;
+            margin: 0 auto;
+            margin-top: 40rpx;
+            color: #333333;
+            font-size: 28rpx;
+            line-height: 30rpx;
+        }
+        textarea {
+            width: 570rpx;
+            height: 230rpx;
+            border: 1rpx solid #cccccc;
+            border-radius: 10rpx;
+            margin: 0 auto;
+            margin-top: 20rpx;
+        }
+        button {
+            width: 170rpx;
+            height: 80rpx;
+            margin-top: 30rpx;
+            background: #298def;
+            border-radius: 4px;
+            color: #fff;
+            text-align: center;
+            line-height: 80rpx;
+        }
+    }
+}

+ 549 - 0
pages/Pay/pay.vue

@@ -0,0 +1,549 @@
+<template>
+  <view class="container">
+    <view class="status_bar">
+      <!-- 这里是状态栏 -->
+    </view>
+    <view class="order">订单号:{{ orderNo }}</view>
+    <view class="mark" v-show="showSearch || showLeaveMess"></view>
+    <view class="messageBg1"></view>
+    <view class="messageBg2"></view>
+    <view class="messageCard">
+      <view class="item-form">
+        <view class="item">
+          <text class="ite">收费单位 </text>
+          <text class="content">南昌交通学院</text>
+        </view>
+        <view class="item">
+          <text class="ite">姓名 </text>
+          <text class="content">{{ studentName }}</text>
+        </view>
+        <view class="item">
+          <text class="ite">证件号 </text>
+          <text class="content">{{ studentNo }}</text>
+        </view>
+        <view class="item">
+          <text class="ite">专业 </text>
+          <text class="content">{{ majorName }}</text>
+        </view>
+        <view class="item">
+          <text class="ite">班级 </text>
+          <text class="content">{{ className }}</text>
+        </view>
+        <view class="item">
+          <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>
+      <text class="okPay" v-if="payStatu2">已支付</text>
+      <view class="bottom-a">
+        <navigator
+          url="#"
+          open-type="navigate"
+          hover-class="navigator-hover"
+          @click="toSearch"
+        >
+          帮人代缴
+        </navigator>
+        <navigator
+          url="#"
+          open-type="navigate"
+          hover-class="navigator-hover"
+          @click="toLeaveMess"
+        >
+          对此订单有疑问?
+        </navigator>
+      </view>
+    </view>
+    <view class="pop-up" v-show="showSearch">
+      <view class="top">
+        <text>代缴人信息</text>
+        <image
+          src="../../static/images/close.png"
+          mode="scaleToFill"
+          @click="close1"
+        />
+      </view>
+      <view class="name">
+        <text>姓 名</text>
+        <input
+          v-model="studentName"
+          type="text"
+          placeholder="请输入姓名"
+          placeholder-style="color:rgba(0, 0, 0, 0.29);"
+        />
+      </view>
+      <view class="studentNo">
+        <text>身份证</text>
+        <input
+          v-model="studentNo"
+          type="text"
+          placeholder="请输入身份证"
+          placeholder-style="color:rgba(0, 0, 0, 0.29);"
+        />
+      </view>
+      <view class="remark">
+        说明:新生输入身份证号码代替学号,老生输入学号
+      </view>
+      <view class="confirm">
+        <button hover-class="button-hover" @click="close1">取消</button>
+        <button hover-class="button-hover" @click="searchDetailMess">
+          确认
+        </button>
+      </view>
+    </view>
+    <view class="leaveMess" v-show="showLeaveMess">
+      <view class="top">
+        <text>信息反馈</text>
+        <image
+          src="../../static/images/close.png"
+          mode="scaleToFill"
+          @click="close2"
+        />
+      </view>
+      <view class="name">
+        <text>姓&#12288;名 :</text>
+        <input
+          type="text"
+          placeholder="请输入姓名"
+          v-model="feedbackPersonName"
+        />
+      </view>
+      <view class="tel">
+        <text>联系人 :</text>
+        <input
+          type="text"
+          placeholder="请输入联系人手机号码"
+          v-model="feedbackPersonPhone"
+        />
+      </view>
+      <text class="title">反馈信息 :</text>
+      <textarea
+        placeholder=""
+        placeholder-class="textarea-placeholder"
+        maxlength="512"
+        v-model="feedbackInfo"
+      />
+      <button hover-class="button-hover" @click="putMess">提交</button>
+    </view>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      showLeaveMess: false,
+      showSearch: false,
+      studentName: "",
+      studentNo: "",
+      majorName: "",
+      className: "",
+      years: "",
+      realPayAmount: "",
+      Arr: [],
+      payStatu1: true,
+      payStatu2: false,
+      homeUrl: "https://jtishfw.ncjti.edu.cn/jiaofei/backendApi",
+      openId: "",
+      orderNo: "", //订单号
+      cardNumber: "",
+      //反馈者
+      feedbackPersonName: "",
+      feedbackPersonPhone: "",
+      feedbackInfo: "",
+      scrollTop: 0,
+      //微信支付参数
+      appId: "",
+      timeStamp: "",
+      nonceStr: "",
+      package: "",
+      signType: "",
+      paySign: "",
+    };
+  },
+  onLoad(options) {
+    // this.loginFilter(); //获取用户cardNumber
+  },
+  methods: {
+    toSearch() {
+      this.showSearch = !this.showSearch;
+    },
+    close1() {
+      this.showSearch = !this.showSearch;
+    },
+    close2() {
+      this.showLeaveMess = !this.showLeaveMess;
+    },
+    toLeaveMess() {
+      this.showLeaveMess = !this.showLeaveMess;
+    },
+
+    //获取cardNumber
+    loginFilter() {
+      let cardNumber = localStorage.getItem("cardNumber");
+      if (!cardNumber) {
+        let cardNumber = this.getQueryString("cardNumber");
+        let error = this.getQueryString("error");
+        let homeWeb =
+          "https://open.wecard.qq.com/connect/oauth/authorize?app_key=2DDC9DBF32F28845&response_type=code&scope=snsapi_userinfo&ocode=1015730314&redirect_uri=https://jtishfw.ncjti.edu.cn/jiaofei/backendApi/wechat/weixiao/auth/&connect=curLogin&state=https://jtishfw.ncjti.edu.cn/jiaofei/backendApi/wechat/weixiao/auth/";
+        if (!cardNumber) {
+          window.location.href = homeWeb;
+        } else if (error) {
+          uni.showToast({
+            title: "cardNumber获取失败",
+            icon: "error",
+            mask: true,
+            duration: 1000,
+          });
+        } else {
+          localStorage.setItem("cardNumber", cardNumber);
+          this.getDetailMess();
+        }
+      } else {
+        this.getDetailMess();
+      }
+    },
+
+    //换取详情信息
+    getDetailMess() {
+      let that = this;
+      let cardNumber = localStorage.getItem("cardNumber");
+      let url = that.homeUrl + "/tuitionpayment/payableinfo/payableInfo";
+      uni.request({
+        url: url,
+        data: {},
+        header: {
+          card_number: cardNumber,
+          Accept: "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.data === null) {
+            uni.navigateTo({ url: "/pages/parentPay/parentPay" });
+          } else {
+            let res = data.data;
+            that.studentName = res.studentName;
+            that.studentNo = res.studentNo;
+            that.majorName = res.majorName;
+            that.className = res.className;
+            that.years = res.years;
+            that.realPayAmount = res.realPayAmount;
+            that.getPayDetail(res.payItemDetail);
+            if (res.pay) {
+              that.payStatu1 = false;
+              that.payStatu2 = true;
+            } else {
+              that.payStatu1 = true;
+              that.payStatu2 = false;
+            }
+            that.getOpenId();
+          }
+        },
+        fail: (error) => {},
+      });
+    },
+
+    //获取学费明细
+    getPayDetail(len) {
+      //获取明细款项名称数组
+      var arr = len.match(/[^\\u4e00-\\u9fa5]+/g);
+      var itemIdArr = arr.filter(function (value) {
+        return value !== ".";
+      });
+      //获取明细金额数组
+      var itemMoneyArr = len.match(/([0-9]+\.[0-9]+)+/g);
+      //拼接成对象数组
+      var item = [];
+      for (var i in (itemIdArr, itemMoneyArr)) {
+        var c = {
+          id: itemIdArr[i],
+          money: itemMoneyArr[i],
+        };
+        item.push(c);
+      }
+      this.Arr = item;
+    },
+
+    //获取openid
+    getOpenId() {
+      let openId = localStorage.getItem("openId");
+      if (!openId) {
+        let openId = this.getQueryString("openId");
+        let error = this.getQueryString("error");
+        let homeWeb =
+          "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxd87cbe1db0437303&redirect_uri=https://jtishfw.ncjti.edu.cn/jiaofei/backendApi/wechat/pub/auth&response_type=code&scope=snsapi_base&state=pages/Pay/pay#wechat_redire";
+        if (!openId) {
+          window.location.href = homeWeb;
+        } else if (error) {
+          uni.showToast({
+            title: "openId获取失败",
+            icon: "error",
+            mask: true,
+            duration: 1000,
+          });
+        } else {
+          localStorage.setItem("openId", openId);
+        }
+      }
+    },
+
+    //支付
+    getPay() {
+      uni.showToast({
+        title: "支付中,请稍等",
+        icon: "loading",
+        mask: true,
+        duration: 1000,
+      });
+      this.getOrderNo(); //获取订单号
+    },
+
+    //获取订单号
+    getOrderNo() {
+      let that = this;
+      let cardNumber = localStorage.getItem("cardNumber");
+      let url =
+        that.homeUrl + `/tuitionpayment/payorder/${that.studentNo}/create`;
+      uni.request({
+        url: url,
+        data: {},
+        header: {
+          card_number: cardNumber,
+          Accept: "application/json",
+          "Content-Type": "application/json",
+          "X-Requested-With": "XMLHttpRequest",
+        },
+        method: "POST",
+        sslVerify: true,
+        success: ({ data, statusCode, header }) => {
+          let res = data.data;
+          that.orderNo = res.orderNo;
+          if (!data.success) {
+            uni.showToast({
+              title: data.message,
+              icon: "error",
+              mask: true,
+              duration: 2000,
+            });
+          } else {
+            that.getwxParam(); //拿微信支付参数
+          }
+        },
+        fail: (error) => {},
+      });
+    },
+
+    //获取微信支付参数
+    getwxParam() {
+      let that = this;
+      let cardNumber = localStorage.getItem("cardNumber");
+      let openId = localStorage.getItem("openId");
+      let url = that.homeUrl + "/pay/ccb/getJsApiParam";
+      uni.request({
+        url: url,
+        data: {
+          orderNo: that.orderNo,
+          openId: openId,
+        },
+        header: {
+          card_number: cardNumber,
+          Accept: "application/json",
+          "Content-Type": "application/json",
+          "X-Requested-With": "XMLHttpRequest",
+        },
+        method: "GET",
+        sslVerify: true,
+        success: ({ data, statusCode, header }) => {
+          if (!data.success) {
+            uni.showToast({
+              title: data.message,
+              icon: "error",
+              mask: true,
+              duration: 2000,
+            });
+          } else {
+            let res = data.data;
+            that.appId = res.appId;
+            that.timeStamp = res.timeStamp;
+            that.nonceStr = res.nonceStr;
+            that.package = res.package;
+            that.signType = res.signType;
+            that.paySign = res.paySign;
+            that.wxPay();
+          }
+        },
+        fail: (error) => {},
+      });
+    },
+
+    //吊起微信支付
+    wxPay() {
+      let that = this;
+      function onBridgeReady() {
+        WeixinJSBridge.invoke(
+          "getBrandWCPayRequest",
+          {
+            appId: that.appId, //公众号ID,由商户传入
+            timeStamp: that.timeStamp, //时间戳,自1970年以来的秒数
+            nonceStr: that.nonceStr, //随机串
+            package: that.package,
+            signType: that.signType, //微信签名方式:
+            paySign: that.paySign, //微信签名
+          },
+          function (res) {
+            if (res.err_msg == "get_brand_wcpay_request:ok") {
+              // 使用以上方式判断前端返回,微信团队郑重提示:
+              //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
+            }
+          }
+        );
+      }
+      if (typeof WeixinJSBridge == "undefined") {
+        if (document.addEventListener) {
+          document.addEventListener(
+            "WeixinJSBridgeReady",
+            onBridgeReady,
+            false
+          );
+        } else if (document.attachEvent) {
+          document.attachEvent("WeixinJSBridgeReady", onBridgeReady);
+          document.attachEvent("onWeixinJSBridgeReady", onBridgeReady);
+        }
+      } else {
+        onBridgeReady();
+      }
+    },
+
+    //获取当前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]); // 输出指定的参数值 中文也可以
+    },
+
+    //代缴费
+    searchDetailMess() {
+      let that = this;
+      let cardNumber = localStorage.getItem("cardNumber");
+      let url =
+        that.homeUrl +
+        `/tuitionpayment/payableinfo/payableInfo/${that.studentNo}/${that.studentName}`;
+      uni.request({
+        url: url,
+        header: {
+          card_number: cardNumber,
+          Accept: "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",
+              mask: true,
+              duration: 1000,
+            });
+          } else {
+            uni.showToast({
+              title: "信息查询中",
+              icon: "loading",
+              mask: true,
+              duration: 500,
+            });
+            that.showSearch = !that.showSearch;
+            let res = data.data;
+            that.studentName = res.studentName;
+            that.studentNo = res.studentNo;
+            that.years = res.years;
+            that.majorName = res.majorName;
+            that.className = res.className;
+            that.realPayAmount = res.realPayAmount;
+            that.getPayDetail(res.payItemDetail);
+            if (res.pay) {
+              that.payStatu1 = false;
+              that.payStatu2 = true;
+            } else {
+              that.payStatu1 = true;
+              that.payStatu2 = false;
+            }
+          }
+        },
+        fail: (error) => {},
+      });
+    },
+
+    //提交反馈信息
+    putMess() {
+      let that = this;
+      let cardNumber = localStorage.getItem("cardNumber");
+      let url = that.homeUrl + "/tuitionpayment/feedbackmsg/save";
+      uni.request({
+        url: url,
+        data: {
+          feedbackPersonName: that.feedbackPersonName,
+          feedbackPersonPhone: that.feedbackPersonPhone,
+          feedbackInfo: that.feedbackInfo,
+        },
+        header: {
+          card_number: cardNumber,
+          Accept: "application/json",
+          "Content-Type": "application/json",
+          "X-Requested-With": "XMLHttpRequest",
+        },
+        method: "POST",
+        sslVerify: true,
+        success: ({ data, statusCode, header }) => {
+          if (data.success) {
+            uni.showToast({
+              title: data.message,
+              icon: "success",
+              mask: true,
+              duration: 1000,
+            });
+            that.close2();
+            that.feedbackPersonName = "";
+            that.feedbackPersonPhone = "";
+            that.feedbackInfo = "";
+          } else {
+            uni.showToast({
+              title: data.message,
+              icon: "error",
+              mask: true,
+              duration: 1000,
+            });
+          }
+        },
+        fail: (error) => {},
+      });
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+@import url("./css/pay.min.css");
+</style>

+ 353 - 0
pages/parentPay/css/parentPay.css

@@ -0,0 +1,353 @@
+page {
+  height: 100%;
+}
+
+.container {
+  width: 100%;
+  height: 1334rpx;
+}
+
+.content1 {
+  position: relative;
+  width: 100%;
+  height: 100%;
+  font-family: "MicrosoftYaHei";
+  font-weight: 400;
+  background-image: url(../../static/images/bg.png);
+  background-size: 100% 100%;
+  background-attachment: fixed;
+  background-repeat: no-repeat;
+}
+
+.content1 .mark {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  background: #000000;
+  opacity: 0.2;
+  z-index: 4;
+}
+
+.content1 .messageCard {
+  display: flex;
+  flex-direction: column;
+  justify-content: flex-start;
+  position: absolute;
+  top: 170rpx;
+  left: 36rpx;
+  width: 678rpx;
+  height: 1000rpx;
+  background: #fff;
+  border-radius: 14rpx;
+  box-sizing: border-box;
+}
+
+.content1 .messageCard image {
+  max-width: 438rpx;
+  max-height: 360rpx;
+  margin: 0 auto;
+  margin-top: 152rpx;
+}
+
+.content1 .messageCard text {
+  width: 438rpx;
+  height: 33rpx;
+  font-size: 32rpx;
+  margin: 0 auto;
+  margin-top: 42rpx;
+  color: #333333;
+  text-align: center;
+  line-height: 54rpx;
+}
+
+.content1 .messageCard button {
+  width: 318rpx;
+  height: 80rpx;
+  margin: 0 auto;
+  margin-top: 224rpx;
+  background: #298def;
+  border-radius: 10rpx;
+  color: #fff;
+  line-height: 80rpx;
+  font-size: 28rpx;
+}
+
+.content1 .messageBg1 {
+  position: absolute;
+  top: 190rpx;
+  left: 51rpx;
+  width: 648rpx;
+  height: 1005rpx;
+  background: #ffffff;
+  opacity: 0.7;
+  border-radius: 14rpx;
+}
+
+.content1 .messageBg2 {
+  position: absolute;
+  top: 209rpx;
+  left: 58rpx;
+  width: 634rpx;
+  height: 1007rpx;
+  background: #ffffff;
+  opacity: 0.5;
+  border-radius: 14rpx;
+}
+
+.content1 .pop-up {
+  display: flex;
+  flex-direction: column;
+  justify-content: flex-start;
+  position: absolute;
+  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;
+}
+
+.content1 .pop-up .top {
+  display: flex;
+  justify-content: space-between;
+  width: 650rpx;
+  height: 90rpx;
+  background: #e7eef5;
+  line-height: 90rpx;
+}
+
+.content1 .pop-up .top text {
+  width: 161rpx;
+  height: 90rpx;
+  margin-left: 35rpx;
+  line-height: 90rpx;
+  font-size: 32rpx;
+  color: #333333;
+}
+
+.content1 .pop-up .top image {
+  max-width: 18rpx;
+  max-height: 18rpx;
+  margin-top: 36rpx;
+  margin-right: 48rpx;
+}
+
+.content1 .pop-up .name,
+.content1 .pop-up .studentNo {
+  display: flex;
+  justify-content: space-around;
+  width: 590rpx;
+  height: 111rpx;
+  margin: 0 auto;
+  border-bottom: 1rpx solid #cccccc;
+  background: #fff;
+  padding-top: 12rpx;
+  box-sizing: border-box;
+}
+
+.content1 .pop-up .name text,
+.content1 .pop-up .studentNo text {
+  display: inline-block;
+  width: 100rpx;
+  height: 111rpx;
+  font-size: 32rpx;
+  color: #313131;
+  line-height: 111rpx;
+  text-align: center;
+}
+
+.content1 .pop-up .name input,
+.content1 .pop-up .studentNo input {
+  display: inline-block;
+  width: 390rpx;
+  height: 111rpx;
+  text-align: left;
+  line-height: 111rpx;
+}
+
+.content1 .pop-up .remark {
+  width: 552rpx;
+  height: 24rpx;
+  margin: 0 auto;
+  font-size: 24rpx;
+  color: #999999;
+  line-height: 54rpx;
+}
+
+.content1 .pop-up .confirm {
+  display: flex;
+  justify-content: space-between;
+  width: 410rpx;
+  height: 254rpx;
+  margin: 0 auto;
+}
+
+.content1 .pop-up .confirm button {
+  width: 170rpx;
+  height: 80rpx;
+  margin-top: 92rpx;
+  background: white;
+  border: 1rpx solid #298def;
+  border-radius: 4rpx;
+  text-align: center;
+  line-height: 80rpx;
+  color: #298def;
+}
+
+.content1 .pop-up .confirm button:nth-child(2) {
+  background: #298def;
+  color: #fff;
+  border-color: #298def;
+}
+
+.content2 {
+  position: relative;
+  width: 100%;
+  height: 100%;
+  font-family: "MicrosoftYaHei";
+  font-weight: 400;
+  background-image: url(../../static/images/bg.png);
+  background-size: 100% 100%;
+  background-attachment: fixed;
+  background-repeat: no-repeat;
+}
+
+.content2 button::after {
+  border: none;
+}
+
+.content2 .order {
+  position: absolute;
+  top: 115rpx;
+  left: 50%;
+  transform: translateX(-345rpx);
+  width: 690rpx;
+  height: 28rpx;
+  font-size: 28rpx;
+  color: #ffffff;
+  line-height: 54rpx;
+  text-align: right;
+}
+
+.content2 .messageCard {
+  display: flex;
+  flex-direction: column;
+  justify-content: flex-start;
+  position: absolute;
+  top: 170rpx;
+  left: 36rpx;
+  width: 678rpx;
+  height: 1000rpx;
+  background: #fff;
+  border-radius: 14rpx;
+}
+
+.content2 .messageCard .item-form {
+  width: 618rpx;
+  height: 906rpx;
+  margin: 0 auto;
+  overflow: scroll;
+}
+
+.content2 .messageCard .item-form .item,
+.content2 .messageCard .item-form .item-pay {
+  display: flex;
+  justify-content: space-between;
+  width: 618rpx;
+  height: 89rpx;
+  margin: 0 auto;
+  margin-top: 8rpx;
+  border-bottom: 1rpx solid #d9d9d9;
+  line-height: 89rpx;
+  box-sizing: border-box;
+}
+
+.content2 .messageCard .item-form .item .ite,
+.content2 .messageCard .item-form .item-pay .ite {
+  display: inline-block;
+  width: 150rpx;
+  height: 60rpx;
+  line-height: 89rpx;
+  margin-left: 20rpx;
+  font-size: 32rpx;
+  color: #808080;
+}
+
+.content2 .messageCard .item-form .item .content,
+.content2 .messageCard .item-form .item-pay .content {
+  display: inline-block;
+  width: 400rpx;
+  height: 60rpx;
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+  line-height: 89rpx;
+  margin-left: 40rpx;
+  color: #000;
+  background: #fff;
+}
+
+.content2 .messageCard button {
+  width: 618rpx;
+  height: 100rpx;
+  background: #298def;
+  font-size: 28rpx;
+  color: #fff;
+  text-align: center;
+  line-height: 100rpx;
+}
+
+.content2 .messageCard .okPay {
+  width: 618rpx;
+  height: 100rpx;
+  margin: 0 auto;
+  border-radius: 5rpx;
+  background: #b3b3b3;
+  opacity: 0.6;
+  font-size: 28rpx;
+  color: #fff;
+  text-align: center;
+  line-height: 100rpx;
+}
+
+.content2 .messageCard .bottom-a {
+  display: flex;
+  justify-content: space-between;
+  width: 618rpx;
+  height: 80rpx;
+  margin: 0 auto;
+}
+
+.content2 .messageCard .bottom-a navigator {
+  height: 80rpx;
+  font-size: 26rpx;
+  color: #298def;
+  text-align: center;
+  line-height: 80rpx;
+}
+
+.content2 .messageBg1 {
+  position: absolute;
+  top: 190rpx;
+  left: 51rpx;
+  width: 648rpx;
+  height: 1005rpx;
+  background: #ffffff;
+  opacity: 0.7;
+  border-radius: 14rpx;
+}
+
+.content2 .messageBg2 {
+  position: absolute;
+  top: 209rpx;
+  left: 58rpx;
+  width: 634rpx;
+  height: 1007rpx;
+  background: #ffffff;
+  opacity: 0.5;
+  border-radius: 14rpx;
+}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 0
pages/parentPay/css/parentPay.min.css


+ 320 - 0
pages/parentPay/css/parentPay.scss

@@ -0,0 +1,320 @@
+page {
+    height: 100%;
+}
+.container {
+    width: 100%;
+    height: 1334rpx;
+}
+.content1 {
+    position: relative;
+    width: 100%;
+    height: 100%;
+    font-family: "MicrosoftYaHei";
+    font-weight: 400;
+    background-image: url(../../static/images/bg.png);
+    background-size: 100% 100%;
+    background-attachment: fixed;
+    background-repeat: no-repeat;
+    .mark {
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        background: #000000;
+        opacity: 0.2;
+        z-index: 4;
+    }
+    .messageCard {
+        display: flex;
+        flex-direction: column;
+        justify-content: flex-start;
+        position: absolute;
+        top: 170rpx;
+        left: 36rpx;
+        width: 678rpx;
+        height: 1000rpx;
+        background: #fff;
+        border-radius: 14rpx;
+        box-sizing: border-box;
+        image {
+            max-width: 438rpx;
+            max-height: 360rpx;
+            margin: 0 auto;
+            margin-top: 152rpx;
+        }
+        text {
+            width: 438rpx;
+            height: 33rpx;
+            font-size: 32rpx;
+            margin: 0 auto;
+            margin-top: 42rpx;
+            color: #333333;
+            text-align: center;
+            line-height: 54rpx;
+        }
+        button {
+            width: 318rpx;
+            height: 80rpx;
+            margin: 0 auto;
+            margin-top: 224rpx;
+            background: #298def;
+            border-radius: 10rpx;
+            color: #fff;
+            line-height: 80rpx;
+            font-size: 28rpx;
+        }
+    }
+    .messageBg1 {
+        position: absolute;
+        top: 190rpx;
+        left: 51rpx;
+        width: 648rpx;
+        height: 1005rpx;
+        background: #ffffff;
+        opacity: 0.7;
+        border-radius: 14rpx;
+    }
+
+    .messageBg2 {
+        position: absolute;
+        top: 209rpx;
+        left: 58rpx;
+        width: 634rpx;
+        height: 1007rpx;
+        background: #ffffff;
+        opacity: 0.5;
+        border-radius: 14rpx;
+    }
+    .pop-up {
+        display: flex;
+        flex-direction: column;
+        justify-content: flex-start;
+        position: absolute;
+        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;
+        .top {
+            display: flex;
+            justify-content: space-between;
+            width: 650rpx;
+            height: 90rpx;
+            background: #e7eef5;
+            line-height: 90rpx;
+            text {
+                width: 161rpx;
+                height: 90rpx;
+                margin-left: 35rpx;
+                line-height: 90rpx;
+                font-size: 32rpx;
+                color: #333333;
+            }
+            image {
+                max-width: 18rpx;
+                max-height: 18rpx;
+                margin-top: 36rpx;
+                margin-right: 48rpx;
+            }
+        }
+        .name,
+        .studentNo {
+            display: flex;
+            justify-content: space-around;
+            width: 590rpx;
+            height: 111rpx;
+            margin: 0 auto;
+            border-bottom: 1rpx solid #cccccc;
+            background: #fff;
+            padding-top: 12rpx;
+            box-sizing: border-box;
+            text {
+                display: inline-block;
+                width: 100rpx;
+                height: 111rpx;
+                font-size: 32rpx;
+                color: #313131;
+                line-height: 111rpx;
+                text-align: center;
+            }
+            input {
+                display: inline-block;
+                width: 390rpx;
+                height: 111rpx;
+                text-align: left;
+                line-height: 111rpx;
+            }
+        }
+        .remark {
+            width: 552rpx;
+            height: 24rpx;
+            margin: 0 auto;
+            font-size: 24rpx;
+            color: #999999;
+            line-height: 54rpx;
+        }
+        .confirm {
+            display: flex;
+            justify-content: space-between;
+            width: 410rpx;
+            height: 254rpx;
+            margin: 0 auto;
+            button {
+                width: 170rpx;
+                height: 80rpx;
+                margin-top: 92rpx;
+                background: rgba(255, 255, 255, 1);
+                border: 1rpx solid #298def;
+                border-radius: 4rpx;
+                text-align: center;
+                line-height: 80rpx;
+                color: rgba(41, 141, 239, 1);
+            }
+            button:nth-child(2) {
+                background: rgba(41, 141, 239, 1);
+                color: #fff;
+                border-color: rgba(41, 141, 239, 1);
+            }
+        }
+    }
+}
+.content2 {
+    position: relative;
+    width: 100%;
+    height: 100%;
+    font-family: "MicrosoftYaHei";
+    font-weight: 400;
+    background-image: url(../../static/images/bg.png);
+    background-size: 100% 100%;
+    background-attachment: fixed;
+    background-repeat: no-repeat;
+    button::after {
+        border: none;
+    }
+    .order {
+        position: absolute;
+        top: 115rpx;
+        left: 50%;
+        transform: translateX(-345rpx);
+        width: 690rpx;
+        height: 28rpx;
+        font-size: 28rpx;
+        color: #ffffff;
+        line-height: 54rpx;
+        text-align: right;
+    }
+    .messageCard {
+        display: flex;
+        flex-direction: column;
+        justify-content: flex-start;
+        position: absolute;
+        top: 170rpx;
+        left: 36rpx;
+        width: 678rpx;
+        height: 1000rpx;
+        background: #fff;
+        border-radius: 14rpx;
+        // box-sizing: border-box;
+
+        .item-form {
+            width: 618rpx;
+            height: 906rpx;
+            margin: 0 auto;
+            overflow: scroll;
+            .item,
+            .item-pay {
+                display: flex;
+                justify-content: space-between;
+                width: 618rpx;
+                height: 89rpx;
+                margin: 0 auto;
+                margin-top: 8rpx;
+                border-bottom: 1rpx solid #d9d9d9;
+                line-height: 89rpx;
+                box-sizing: border-box;
+                .ite {
+                    display: inline-block;
+                    width: 150rpx;
+                    height: 60rpx;
+                    line-height: 89rpx;
+                    margin-left: 20rpx;
+                    font-size: 32rpx;
+                    color: #808080;
+                }
+                .content {
+                    display: inline-block;
+                    width: 400rpx;
+                    height: 60rpx;
+                    overflow: hidden; //多出部分隐藏
+                    white-space: nowrap; //一行显示
+                    text-overflow: ellipsis; //是否显示省略号
+                    line-height: 89rpx;
+                    margin-left: 40rpx;
+                    color: #000;
+                    background: #fff;
+                }
+            }
+        }
+        button {
+            width: 618rpx;
+            height: 100rpx;
+            background: #298def;
+            font-size: 28rpx;
+            color: #fff;
+            text-align: center;
+            line-height: 100rpx;
+        }
+        .okPay {
+            width: 618rpx;
+            height: 100rpx;
+            margin: 0 auto;
+            border-radius: 5rpx;
+            background: #b3b3b3;
+            opacity: 0.6;
+            font-size: 28rpx;
+            color: #fff;
+            text-align: center;
+            line-height: 100rpx;
+        }
+        .bottom-a {
+            display: flex;
+            justify-content: space-between;
+            width: 618rpx;
+            height: 80rpx;
+            margin: 0 auto;
+            navigator {
+                height: 80rpx;
+                font-size: 26rpx;
+                color: #298def;
+                text-align: center;
+                line-height: 80rpx;
+            }
+        }
+    }
+
+    .messageBg1 {
+        position: absolute;
+        top: 190rpx;
+        left: 51rpx;
+        width: 648rpx;
+        height: 1005rpx;
+        background: #ffffff;
+        opacity: 0.7;
+        border-radius: 14rpx;
+    }
+
+    .messageBg2 {
+        position: absolute;
+        top: 209rpx;
+        left: 58rpx;
+        width: 634rpx;
+        height: 1007rpx;
+        background: #ffffff;
+        opacity: 0.5;
+        border-radius: 14rpx;
+    }
+}

+ 388 - 0
pages/parentPay/parentPay.vue

@@ -0,0 +1,388 @@
+<template>
+  <view class="container">
+    <view class="content1" v-if="content1">
+      <view class="mark" v-show="showSearch"></view>
+      <view class="messageBg1"></view>
+      <view class="messageBg2"></view>
+      <view class="messageCard">
+        <image src="../../static/images/null.png" mode="scaleToFill" />
+        <text>暂无缴费信息</text>
+        <button hover-class="button-hover" @click="toSearch">帮人代缴</button>
+      </view>
+      <view class="pop-up" v-show="showSearch">
+        <view class="top">
+          <text>代缴人信息</text>
+          <image
+            src="../../static/images/close.png"
+            mode="scaleToFill"
+            @click="close1"
+          />
+        </view>
+        <view class="name">
+          <text>姓 名</text>
+          <input
+            v-model="studentName"
+            type="text"
+            placeholder="请输入姓名"
+            placeholder-style="color:rgba(0, 0, 0, 0.29);"
+          />
+        </view>
+        <view class="studentNo">
+          <text>身份证</text>
+          <input
+            v-model="studentNo"
+            type="text"
+            placeholder="请输入身份证"
+            placeholder-style="color:rgba(0, 0, 0, 0.29);"
+          />
+        </view>
+        <view class="remark">
+          说明:新生输入身份证号码代替学号,老生输入学号
+        </view>
+        <view class="confirm">
+          <button hover-class="button-hover" @click="close1">取消</button>
+          <button hover-class="button-hover" @click="searchDetailMess">
+            确认
+          </button>
+        </view>
+      </view>
+    </view>
+    <view class="content2" v-if="showMess">
+      <view class="order">订单号:{{ orderNo }}</view>
+      <view class="mark" v-show="showSearch"></view>
+      <view class="messageBg1"></view>
+      <view class="messageBg2"></view>
+      <view class="messageCard">
+        <view class="item-form">
+          <view class="item">
+            <text class="ite">收费单位 </text>
+            <text class="content">南昌交通学院</text>
+          </view>
+          <view class="item">
+            <text class="ite">姓名 </text>
+            <text class="content">{{ studentName }}</text>
+          </view>
+          <view class="item">
+            <text class="ite">证件号 </text>
+            <text class="content">{{ studentNo }}</text>
+          </view>
+          <view class="item">
+            <text class="ite">专业 </text>
+            <text class="content">{{ majorName }}</text>
+          </view>
+          <view class="item">
+            <text class="ite">班级 </text>
+            <text class="content">{{ className }}</text>
+          </view>
+          <view class="item">
+            <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>
+        <text class="okPay" v-if="payStatu2">已支付</text>
+      </view>
+    </view>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      content1: true,
+      showMess: false,
+      showSearch: false,
+      studentName: "",
+      studentNo: "",
+      majorName: "",
+      className: "",
+      years: "",
+      realPayAmount: "",
+      Arr: [],
+      payStatu1: true,
+      payStatu2: false,
+      homeUrl: "https://jtishfw.ncjti.edu.cn/jiaofei/backendApi",
+      openId: "",
+      cardNumber: "",
+      orderNo: "", //订单号
+      //微信支付参数
+      appId: "",
+      timeStamp: "",
+      nonceStr: "",
+      package: "",
+      signType: "",
+      paySign: "",
+    };
+  },
+  onLoad(options) {
+    this.getOpenId();
+  },
+  methods: {
+    toSearch() {
+      this.showSearch = !this.showSearch;
+    },
+    close1() {
+      this.showSearch = !this.showSearch;
+    },
+    toShowMess() {
+      this.showMess = !this.showMess;
+      this.content1 = false;
+    },
+
+    //获取openId
+    getOpenId() {
+      let openId = localStorage.getItem("openId");
+      if (!openId) {
+        let openId = this.getQueryString("openId");
+        let error = this.getQueryString("error");
+        let homeWeb =
+          "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxd87cbe1db0437303&redirect_uri=https://jtishfw.ncjti.edu.cn/jiaofei/backendApi/wechat/pub/auth&response_type=code&scope=snsapi_base&state=pages/parentPay/parentPay#wechat_redire";
+        if (!openId) {
+          window.location.href = homeWeb;
+        } else if (error) {
+          uni.showToast({
+            title: "openId获取失败",
+            icon: "error",
+            mask: true,
+            duration: 1000,
+          });
+        } else {
+          localStorage.setItem("openId", openId);
+        }
+      }
+    },
+
+    //代缴费
+    searchDetailMess() {
+      let that = this;
+      let cardNumber = localStorage.getItem("cardNumber");
+      let url =
+        that.homeUrl +
+        `/tuitionpayment/payableinfo/payableInfo/${that.studentNo}/${that.studentName}`;
+      uni.request({
+        url: url,
+        header: {
+          card_number: cardNumber,
+          Accept: "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",
+              mask: true,
+              duration: 1000,
+            });
+          } else {
+            uni.showToast({
+              title: "信息查询中",
+              icon: "loading",
+              mask: true,
+              duration: 500,
+            });
+            that.showSearch = !that.showSearch;
+            that.toShowMess();
+            let res = data.data;
+            that.studentName = res.studentName;
+            that.studentNo = res.studentNo;
+            that.years = res.years;
+            that.majorName = res.majorName;
+            that.className = res.className;
+            that.realPayAmount = res.realPayAmount;
+            that.getPayDetail(res.payItemDetail);
+            if (res.pay) {
+              that.payStatu1 = false;
+              that.payStatu2 = true;
+            } else {
+              that.payStatu1 = true;
+              that.payStatu2 = false;
+            }
+          }
+        },
+        fail: (error) => {},
+      });
+    },
+
+    //获取学费明细
+    getPayDetail(len) {
+      //获取明细款项名称数组
+      var arr = len.match(/[^\\u4e00-\\u9fa5]+/g);
+      var itemIdArr = arr.filter(function (value) {
+        return value !== ".";
+      });
+      //获取明细金额数组
+      var itemMoneyArr = len.match(/([0-9]+\.[0-9]+)+/g);
+      //拼接成对象数组
+      var item = [];
+      for (var i in (itemIdArr, itemMoneyArr)) {
+        var c = {
+          id: itemIdArr[i],
+          money: itemMoneyArr[i],
+        };
+        item.push(c);
+      }
+      this.Arr = item;
+    },
+
+    //支付
+    getPay() {
+      uni.showToast({
+        title: "支付中,请稍等",
+        icon: "loading",
+        mask: true,
+        duration: 1000,
+      });
+      this.getOrderNo(); //获取订单号
+    },
+
+    //获取订单号
+    getOrderNo() {
+      let that = this;
+      let cardNumber = localStorage.getItem("cardNumber");
+      let url =
+        that.homeUrl + `/tuitionpayment/payorder/${that.studentNo}/create`;
+      uni.request({
+        url: url,
+        data: {},
+        header: {
+          card_number: cardNumber,
+          Accept: "application/json",
+          "Content-Type": "application/json",
+          "X-Requested-With": "XMLHttpRequest",
+        },
+        method: "POST",
+        sslVerify: true,
+        success: ({ data, statusCode, header }) => {
+          let res = data.data;
+          that.orderNo = res.orderNo;
+          if (!data.success) {
+            uni.showToast({
+              title: data.message,
+              icon: "error",
+              mask: true,
+              duration: 2000,
+            });
+          } else {
+            that.getwxParam(); //拿微信支付参数
+          }
+        },
+        fail: (error) => {},
+      });
+    },
+
+    //获取微信支付参数
+    getwxParam() {
+      let that = this;
+      let cardNumber = localStorage.getItem("cardNumber");
+      let openId = localStorage.getItem("openId");
+      let url = that.homeUrl + "/pay/ccb/getJsApiParam";
+      uni.request({
+        url: url,
+        data: {
+          orderNo: that.orderNo,
+          openId: openId,
+        },
+        header: {
+          card_number: cardNumber,
+          Accept: "application/json",
+          "Content-Type": "application/json",
+          "X-Requested-With": "XMLHttpRequest",
+        },
+        method: "GET",
+        sslVerify: true,
+        success: ({ data, statusCode, header }) => {
+          if (!data.success) {
+            uni.showToast({
+              title: data.message,
+              icon: "error",
+              mask: true,
+              duration: 2000,
+            });
+          } else {
+            let res = data.data;
+            that.appId = res.appId;
+            that.timeStamp = res.timeStamp;
+            that.nonceStr = res.nonceStr;
+            that.package = res.package;
+            that.signType = res.signType;
+            that.paySign = res.paySign;
+            that.wxPay();
+          }
+        },
+        fail: (error) => {},
+      });
+    },
+
+    //吊起微信支付
+    wxPay() {
+      let that = this;
+      function onBridgeReady() {
+        WeixinJSBridge.invoke(
+          "getBrandWCPayRequest",
+          {
+            appId: that.appId, //公众号ID,由商户传入
+            timeStamp: that.timeStamp, //时间戳,自1970年以来的秒数
+            nonceStr: that.nonceStr, //随机串
+            package: that.package,
+            signType: that.signType, //微信签名方式:
+            paySign: that.paySign, //微信签名
+          },
+          function (res) {
+            if (res.err_msg == "get_brand_wcpay_request:ok") {
+              // 使用以上方式判断前端返回,微信团队郑重提示:
+              //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
+            }
+          }
+        );
+      }
+      if (typeof WeixinJSBridge == "undefined") {
+        if (document.addEventListener) {
+          document.addEventListener(
+            "WeixinJSBridgeReady",
+            onBridgeReady,
+            false
+          );
+        } else if (document.attachEvent) {
+          document.attachEvent("WeixinJSBridgeReady", onBridgeReady);
+          document.attachEvent("onWeixinJSBridgeReady", onBridgeReady);
+        }
+      } else {
+        onBridgeReady();
+      }
+    },
+
+    //获取当前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>
+
+<style lang="scss" scoped>
+@import url("./css/parentPay.min.css");
+</style>

+ 87 - 0
pages/paySuccess/css/paySuccess.css

@@ -0,0 +1,87 @@
+.content {
+  position: relative;
+  width: 100%;
+  height: 100%;
+  font-family: "MicrosoftYaHei";
+  font-weight: 400;
+}
+
+.content image {
+  position: absolute;
+  top: 50rpx;
+  left: 50%;
+  transform: translateX(-115rpx);
+  max-width: 230rpx;
+  max-height: 230rpx;
+  margin-top: 100rpx;
+}
+
+.content .tip {
+  position: absolute;
+  top: 280rpx;
+  left: 50%;
+  transform: translateX(-50rpx);
+  height: 54rpx;
+  margin-top: 100rpx;
+  font-size: 28rpx;
+  font-weight: 700;
+  color: #33cc33;
+}
+
+.content .item {
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+  position: absolute;
+  top: 300rpx;
+  left: 50%;
+  transform: translateX(-375rpx);
+  width: 750rpx;
+  height: 180rpx;
+  margin-top: 300rpx;
+  text-align: center;
+}
+
+.content .item text:nth-child(1) {
+  font-size: 24rpx;
+  color: rgba(104, 100, 100, 0.8);
+}
+
+.content .item text:nth-child(2) {
+  font-size: 100rpx;
+  font-weight: 700;
+  color: #000;
+}
+
+.content .item-show {
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+  position: absolute;
+  top: 300rpx;
+  left: 50%;
+  transform: translateX(-375rpx);
+  width: 750rpx;
+  height: 180rpx;
+  margin-top: 300rpx;
+  text-align: center;
+}
+
+.content .item-show text {
+  font-size: 100rpx;
+  font-weight: 700;
+  color: #000;
+}
+
+.content button {
+  position: absolute;
+  top: 1000rpx;
+  left: 50%;
+  transform: translateX(-200rpx);
+  width: 400rpx;
+  height: 100rpx;
+  font-size: 40rpx;
+  color: #33cc33;
+  background: #fff;
+  border: 1rpx solid #33cc33;
+}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 0
pages/paySuccess/css/paySuccess.min.css


+ 85 - 0
pages/paySuccess/css/paySuccess.scss

@@ -0,0 +1,85 @@
+.content {
+    position: relative;
+    width: 100%;
+    height: 100%;
+    font-family: "MicrosoftYaHei";
+    font-weight: 400;
+
+    image {
+        position: absolute;
+        top: 50rpx;
+        left: 50%;
+        transform: translateX(-115rpx);
+        max-width: 230rpx;
+        max-height: 230rpx;
+        margin-top: 100rpx;
+    }
+
+    .tip {
+        position: absolute;
+        top: 280rpx;
+        left: 50%;
+        transform: translateX(-50rpx);
+        // width: 150rpx;
+        height: 54rpx;
+        margin-top: 100rpx;
+        font-size: 28rpx;
+        font-weight: 700;
+        color: #33cc33;
+    }
+
+    .item {
+        display: flex;
+        flex-direction: column;
+        justify-content: space-between;
+        position: absolute;
+        top: 300rpx;
+        left: 50%;
+        transform: translateX(-375rpx);
+        width: 750rpx;
+        height: 180rpx;
+        margin-top: 300rpx;
+        text-align: center;
+
+        & text:nth-child(1) {
+            font-size: 24rpx;
+            color: rgba(104, 100, 100, 0.8);
+        }
+
+        & text:nth-child(2) {
+            font-size: 100rpx;
+            font-weight: 700;
+            color: #000;
+        }
+    }
+    .item-show {
+        display: flex;
+        flex-direction: column;
+        justify-content: space-between;
+        position: absolute;
+        top: 300rpx;
+        left: 50%;
+        transform: translateX(-375rpx);
+        width: 750rpx;
+        height: 180rpx;
+        margin-top: 300rpx;
+        text-align: center;
+        text {
+            font-size: 100rpx;
+            font-weight: 700;
+            color: #000;
+        }
+    }
+    button {
+        position: absolute;
+        top: 1000rpx;
+        left: 50%;
+        transform: translateX(-200rpx);
+        width: 400rpx;
+        height: 100rpx;
+        font-size: 40rpx;
+        color: #33cc33;
+        background: #fff;
+        border: 1rpx solid #33cc33;
+    }
+}

+ 108 - 0
pages/paySuccess/paySuccess.vue

@@ -0,0 +1,108 @@
+<template>
+  <view class="content">
+    <image src="../../static/images/pay.png" />
+    <text class="tip">付款成功</text>
+    <view class="item" v-show="isShow2">
+      <text>南昌交通学院</text>
+      <text>{{ realPayAmount }}</text>
+    </view>
+    <view class="item-show" v-show="isShow1">
+      <text>请通知本人查询</text>
+    </view>
+    <button @click="navigateToIndex">返回首页</button>
+  </view>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      realPayAmount: "",
+      isShow1: false,
+      isShow2: true,
+    };
+  },
+  onLoad(options) {
+    // this.loginFilter();
+  },
+  methods: {
+    //获取cardNumber
+    loginFilter() {
+      let cardNumber = this.getQueryString("cardNumber");
+      let error = this.getQueryString("error");
+      let homeWeb =
+        "https://open.wecard.qq.com/connect/oauth/authorize?app_key=2DDC9DBF32F28845&response_type=code&scope=snsapi_userinfo&ocode=1015730314&redirect_uri=https://jtishfw.ncjti.edu.cn/jiaofei/backendApi/wechat/weixiao/auth/&connect=curLogin&state=https://jtishfw.ncjti.edu.cn/jiaofei/backendApi/wechat/weixiao/auth/";
+      if (!cardNumber) {
+        window.location.href = homeWeb;
+      } else if (error) {
+        uni.showToast({
+          title: "cardNumber获取失败",
+          icon: "error",
+          mask: true,
+          duration: 2000,
+        });
+      } else {
+        localStorage.setItem("cardNumber", cardNumber);
+        this.getDetailMess();
+      }
+    },
+
+    //换取详情信息
+    getDetailMess() {
+      let that = this;
+      let cardNumber = localStorage.getItem("cardNumber");
+      let url = that.homeUrl + "/tuitionpayment/payableinfo/payableInfo";
+      uni.request({
+        url: url,
+        data: {},
+        header: {
+          card_number: cardNumber,
+          Accept: "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: "获取信息失败",
+              icon: " error",
+              mask: true,
+              duration: 2000,
+            });
+          } else {
+            if (data.data === null) {
+              that.isShow1 = !that.isShow1;
+              that.isShow2 = !that.isShow2;
+            } else {
+              let res = data.data;
+              that.realPayAmount = res.realPayAmount;
+            }
+          }
+        },
+        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]); // 输出指定的参数值 中文也可以
+    },
+
+    // 退出支付成功页面
+    navigateToIndex() {
+      uni.navigateTo({ url: "/pages/Pay/pay" });
+    },
+  },
+};
+</script>
+
+<style lang="scss">
+@import url("./css/paySuccess.min.css");
+</style>

BIN
static/images/bg.png


BIN
static/images/close.png


BIN
static/images/null.png


BIN
static/images/pay.png


+ 76 - 0
uni.scss

@@ -0,0 +1,76 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:24rpx;
+$uni-font-size-base:28rpx;
+$uni-font-size-lg:32rpx;
+
+/* 图片尺寸 */
+$uni-img-size-sm:40rpx;
+$uni-img-size-base:52rpx;
+$uni-img-size-lg:80rpx;
+
+/* Border Radius */
+$uni-border-radius-sm: 4rpx;
+$uni-border-radius-base: 6rpx;
+$uni-border-radius-lg: 12rpx;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 10px;
+$uni-spacing-row-base: 20rpx;
+$uni-spacing-row-lg: 30rpx;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 8rpx;
+$uni-spacing-col-base: 16rpx;
+$uni-spacing-col-lg: 24rpx;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:40rpx;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:36rpx;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:30rpx;

+ 0 - 0
unpackage/dist/build/.automator/h5/.automator.json