diff --git a/App.vue b/App.vue
index fa9f0db..3ffa7df 100644
--- a/App.vue
+++ b/App.vue
@@ -1,11 +1,13 @@
 <script>
 	export default {
 		globalData: {
-			msg: {}
+			msg: {},
+			verno:'10',
+			vername:'2.2.0'
 		},
 		onLaunch() {
 			let that = this
-			
+
 			//获取平台信息
 			uni.getSystemInfo({
 				success(res) {
@@ -13,12 +15,14 @@
 				}
 			})
 			// #ifdef APP-PLUS
-			
+
 			//获取版本号
 			let v = plus.runtime.version
 			let c = plus.runtime.versionCode
 			let version = v + '(' + c + ')'
 			that.globalData.version = version
+			that.globalData.vername = v
+			that.globalData.verno = c
 
 			//获取设备uuid
 			plus.device.getInfo({
@@ -28,6 +32,9 @@
 				}
 			})
 
+
+
+
 			//锁定屏幕
 			plus.screen.lockOrientation("portrait-primary")
 
@@ -120,7 +127,7 @@
 			} else {
 				let routes = getCurrentPages(); // 获取当前打开过的页面路由数组
 				let curRoute = ''
-				if(routes.length != 0){
+				if (routes.length != 0) {
 					curRoute = routes[routes.length - 1].route //获取当前页面路由
 				}
 				//console.log(routes)
@@ -128,22 +135,31 @@
 					if (res.token) {
 						uni.setStorageSync("token", res.token)
 					}
-					if(curRoute != 'pages/sub_tabbar/index'){
-						uni.switchTab({
-							url: "/pages/sub_tabbar/index"
-						})
+					if (curRoute != 'pages/sub_tabbar/index') {
+						let hands = uni.getStorageSync("hands")
+						if (hands) {
+							uni.setStorageSync("login", 2)
+							uni.reLaunch({
+								url: "/pages/sub_mine/lock/index"
+							})
+						} else {
+							uni.switchTab({
+								url: "/pages/sub_tabbar/index"
+							})
+						}
 					}
-					
+
 				}).catch(res => {
-					uni.setStorageSync('token','')
-					if(routes.length != 0 || curRoute != 'pages/sub_basic/login/index'){
+					uni.setStorageSync('token', '')
+					if (routes.length != 0 || curRoute != 'pages/sub_basic/login/index') {
 						uni.reLaunch({
 							url: "/pages/sub_basic/login/index"
 						})
 					}
-					
+
 				})
 			}
+
 			uni.onNetworkStatusChange(function(res) {
 				if (res.networkType == '4g') {
 					uni.showToast({
@@ -161,7 +177,8 @@
 				if (!res.isConnected || res.networkType == '2g' || res.networkType == 'none') {
 					let routes = getCurrentPages()
 					let curRoute = routes[routes.length - 1].route
-					if (curRoute == 'pages/sub_basic/login/index' || curRoute == 'pages/sub_basic/register/index' || curRoute == 'pages/sub_basic/forgetPwd/index') {
+					if (curRoute == 'pages/sub_basic/login/index' || curRoute == 'pages/sub_basic/register/index' || curRoute ==
+						'pages/sub_basic/forgetPwd/index') {
 
 					} else {
 						uni.navigateTo({
@@ -171,7 +188,9 @@
 				}
 			});
 		},
+		onShow() {
 
+		}
 	}
 </script>
 
diff --git a/manifest.json b/manifest.json
index 632e48e..1d51cc8 100644
--- a/manifest.json
+++ b/manifest.json
@@ -1,262 +1,265 @@
 {
-	"name": "大理市民卡",
-	"appid": "__UNI__6DDB720",
-	"description": "大理市民服务app",
-	"versionName": "2.1.0",
-	"versionCode": 7,
-	"transformPx": false,
-	"app-plus": {
-		// APP-VUE分包，可提APP升启动速度，2.7.12开始支持，兼容微信小程序分包方案，默认关闭
-		"compatible": {
-			"ignoreVersion": true //true为忽略版本检查框
-		},
-		"optimization": {
-			"subPackages": true
-		},
-		"safearea": {
-			"bottom": {
-				"offset": "none"
-			}
-		},
-		"splashscreen": {
-			"alwaysShowBeforeRender": true,
-			"waiting": true,
-			"autoclose": true,
-			"delay": 0
-		},
-		"usingComponents": true,
-		"nvueCompiler": "uni-app",
-		"compilerVersion": 3,
-		"modules": {
-			"FaceID": {},
-			"Fingerprint": {},
-			"Maps": {},
-			"Geolocation": {}
-		},
-		"distribute": {
-			"android": {
-				"permissions": [
-					"<uses-feature android:name=\"android.hardware.camera\"/>",
-					"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
-					"<uses-permission android:name=\"android.permission.CAMERA\"/>",
-					"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
-					"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
-					"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
-					"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
-					"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
-					"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.USE_FINGERPRINT\"/>",
-					"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-					"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-					"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
-					"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
-				],
-				"permissionExternalStorage": {
-					"request": "none",
-					"prompt": "应用保存运行状态等信息，需要获取读写手机存储（系统提示为访问设备上的照片、媒体内容和文件）权限，请允许。"
-				},
-				"permissionPhoneState": {
-					"request": "none",
-					"prompt": "为保证您正常、安全地使用，需要获取设备识别码（部分手机提示为获取手机号码）使用权限，请允许。"
-				},
-				"abiFilters": ["armeabi-v7a", "arm64-v8a"]
-			},
-			"ios": {
-				"privacyDescription": {
-					"NSCameraUsageDescription": "使用扫一扫识别二维码需要访问相机权限",
-					"NSPhotoLibraryUsageDescription": "使用app特制功能需要访问相机权限"
-				}
-			},
-			"sdkConfigs": {
-				"ad": {},
-				"maps": {
-					"amap": {
-						"appkey_ios": "301567cad1afe899587917e803441d60",
-						"appkey_android": "6e97c7069def9d8f0f3aa3d421ce196b"
-					}
-				},
-				"geolocation": {
-					"amap": {
-						"__platform__": ["ios", "android"],
-						"appkey_ios": "301567cad1afe899587917e803441d60",
-						"appkey_android": "6e97c7069def9d8f0f3aa3d421ce196b"
-					}
-				}
-			},
-			"icons": {
-				"android": {
-					"hdpi": "unpackage/res/icons/72x72.png",
-					"xhdpi": "unpackage/res/icons/96x96.png",
-					"xxhdpi": "unpackage/res/icons/144x144.png",
-					"xxxhdpi": "unpackage/res/icons/192x192.png"
-				},
-				"ios": {
-					"appstore": "unpackage/res/icons/1024x1024.png",
-					"ipad": {
-						"app": "unpackage/res/icons/76x76.png",
-						"app@2x": "unpackage/res/icons/152x152.png",
-						"notification": "unpackage/res/icons/20x20.png",
-						"notification@2x": "unpackage/res/icons/40x40.png",
-						"proapp@2x": "unpackage/res/icons/167x167.png",
-						"settings": "unpackage/res/icons/29x29.png",
-						"settings@2x": "unpackage/res/icons/58x58.png",
-						"spotlight": "unpackage/res/icons/40x40.png",
-						"spotlight@2x": "unpackage/res/icons/80x80.png"
-					},
-					"iphone": {
-						"app@2x": "unpackage/res/icons/120x120.png",
-						"app@3x": "unpackage/res/icons/180x180.png",
-						"notification@2x": "unpackage/res/icons/40x40.png",
-						"notification@3x": "unpackage/res/icons/60x60.png",
-						"settings@2x": "unpackage/res/icons/58x58.png",
-						"settings@3x": "unpackage/res/icons/87x87.png",
-						"spotlight@2x": "unpackage/res/icons/80x80.png",
-						"spotlight@3x": "unpackage/res/icons/120x120.png"
-					}
-				}
-			},
-			"splashscreen": {
-				"androidStyle": "default"
-			}
-		},
-		"nativePlugins": {
-			"KJ-JPush": {
-				"ios_appkey": "d644d997f2cab0551ff704a3",
-				"android_channel": "huawei",
-				"android_appkey": "d644d997f2cab0551ff704a3",
-				"ios_channel": "appstore",
-				"__plugin_info__": {
-					"name": "【离线包、源码优惠出售】极光推送（ios、andorid）",
-					"description": "【不维护试用合适再购买3.33块】离线包源码优惠价66块，购买源码加QQ：543610866",
-					"platforms": "Android,iOS",
-					"url": "https://ext.dcloud.net.cn/plugin?id=1009",
-					"android_package_name": "com.dalicitycard.app",
-					"ios_bundle_id": "com.dalicitycard.app",
-					"isCloud": true,
-					"bought": 1,
-					"pid": "1009",
-					"parameters": {
-						"ios_appkey": {
-							"des": "发布ios时，必填，填写极光推送的APPKEY",
-							"key": "JPUSH_APPKEY",
-							"value": "${ios_appkey}"
-						},
-						"android_channel": {
-							"des": "发布android时，必填，填写发布渠道，如不知道，填写：huawei",
-							"key": "JPUSH_CHANNEL",
-							"value": "${android_channel}"
-						},
-						"android_appkey": {
-							"des": "发布android时，必填，填写极光推送的APPKEY",
-							"key": "JPUSH_APPKEY",
-							"value": "${android_appkey}"
-						},
-						"ios_channel": {
-							"des": "发布ios时，必填，填写发布渠道，如不知道，填写：appstore",
-							"key": "JPUSH_CHANNEL",
-							"value": "${ios_channel}"
-						}
-					}
-				}
-			},
-			"Mpaas-Scan": {
-				"AppId": "ONEX1D49B6A241152",
-				"WorkspaceId": "default",
-				"License": "zvI8Ix1QYGLcZWTu9pfuwRxhPIERACTAjd2rQ66ky3zCCWLCCZDiISir89uVn4y+OGn0jcPIX/mMsZ8NIZXjfsgvB/m5MzVeaycZ7WRC4cxzoXjMSeN+AYty28ssiJJMdP1kFtIAoy/80VPeOBhl+yozUFaaTtDWEyMqT6XujcLWVuTJp8WHBvvLj0KmoleFV+OAusd+9keF9aSSHGwSwM1IbU9M4JMZsKWmLaKBpC77Ag0MVUhhdnY6MZ5Mff/KDivd5oGu1hbzXBPfoUlEkNppe3gwbxRTUM6k0OndyczPgZdVL9gC1/+UGH7kwiBNjegibMdySzsQuujbtISwFA==",
-				"__plugin_info__": {
-					"name": "支付宝原生扫码插件",
-					"description": "支付宝原生扫码组件，包体积仅0.7MB，15分钟即可完成接入。同时，mPaaS提供「扫码分析」大盘",
-					"platforms": "Android,iOS",
-					"url": "https://ext.dcloud.net.cn/plugin?id=2636",
-					"android_package_name": "com.dalicitycard.app",
-					"ios_bundle_id": "com.dalicitycard.app",
-					"isCloud": true,
-					"bought": 1,
-					"pid": "2636",
-					"parameters": {
-						"AppId": {
-							"des": "Android平台的AppId，请填写Android的config文件中的appId对应的值",
-							"key": "mobilegw.appid",
-							"value": ""
-						},
-						"WorkspaceId": {
-							"des": "Android平台的WorkspaceId，请填写Android的config文件中的workspaceId对应的值",
-							"key": "workspaceId",
-							"value": ""
-						},
-						"License": {
-							"des": "Android平台的License,，请填写Android的config文件中的mpaasConfigLicense对应的值",
-							"key": "mpaasConfigLicense",
-							"value": ""
-						}
-					}
-				}
-			}
-		}
-	},
-	"quickapp": {},
-	"mp-weixin": {
-		"appid": "wxc458a08d7fb5b4d3",
-		"setting": {
-			"urlCheck": true,
-			"es6": false,
-			"minified": true,
-			"postcss": true
-		},
-		"optimization": {
-			"subPackages": true
-		},
-		"usingComponents": true,
-		"permission": {
-			"scope.userLocation": {
-				"desc": "你的位置信息将用于小程序位置接口的效果展示"
-			}
-		}
-	},
-	"mp-alipay": {
-		"usingComponents": true,
-		"component2": true
-	},
-	"mp-baidu": {
-		"usingComponents": true,
-		"appid": ""
-	},
-	"mp-toutiao": {
-		"usingComponents": true
-	},
-	"h5": {
-		"template": "template.h5.html",
-		"router": {
-			"mode": "hash",
-			"base": ""
-		},
-		"optimization": {
-			"treeShaking": {
-				"enable": true
-			}
-		},
-		"title": "uView UI",
-		"devServer": {
-			"proxy": {
-				"/api": {
-					"target": "http://yy.dlsmk.cn:8080/portal/mobileapi",
-					"changeOrigin": true,
-					"pathRewrite": {
-						"^/api": ""
-					}
-				}
-			}
-		}
-	},
-	"channel_list": [{
-		"id": "baidu",
-		"name": "百度应用市场"
-	}]
+    "name" : "大理市民卡",
+    "appid" : "__UNI__6DDB720",
+    "description" : "大理市民服务app",
+    "versionName" : "2.2.0",
+    "versionCode" : 11,
+    "transformPx" : false,
+    "app-plus" : {
+        // APP-VUE分包，可提APP升启动速度，2.7.12开始支持，兼容微信小程序分包方案，默认关闭
+        "compatible" : {
+            "ignoreVersion" : true //true为忽略版本检查框
+        },
+        "optimization" : {
+            "subPackages" : true
+        },
+        "safearea" : {
+            "bottom" : {
+                "offset" : "none"
+            }
+        },
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        "usingComponents" : true,
+        "nvueCompiler" : "uni-app",
+        "compilerVersion" : 3,
+        "modules" : {
+            "FaceID" : {},
+            "Fingerprint" : {},
+            "Maps" : {},
+            "Geolocation" : {}
+        },
+        "distribute" : {
+            "android" : {
+                "permissions" : [
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.USE_FINGERPRINT\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+                ],
+                "permissionExternalStorage" : {
+                    "request" : "none",
+                    "prompt" : "应用保存运行状态等信息，需要获取读写手机存储（系统提示为访问设备上的照片、媒体内容和文件）权限，请允许。"
+                },
+                "permissionPhoneState" : {
+                    "request" : "none",
+                    "prompt" : "为保证您正常、安全地使用，需要获取设备识别码（部分手机提示为获取手机号码）使用权限，请允许。"
+                },
+                "abiFilters" : [ "armeabi-v7a", "arm64-v8a" ]
+            },
+            "ios" : {
+                "privacyDescription" : {
+                    "NSCameraUsageDescription" : "使用扫一扫功能识别二维码需要访问相机权限",
+                    "NSPhotoLibraryUsageDescription" : "使用留言功能上传图片需要访问相册权限",
+                    "NSLocationAlwaysAndWhenInUseUsageDescription" : "使用网点查询功能需要访问位置权限"
+                }
+            },
+            "sdkConfigs" : {
+                "ad" : {},
+                "maps" : {
+                    "amap" : {
+                        "appkey_ios" : "301567cad1afe899587917e803441d60",
+                        "appkey_android" : "6e97c7069def9d8f0f3aa3d421ce196b"
+                    }
+                },
+                "geolocation" : {
+                    "amap" : {
+                        "__platform__" : [ "ios", "android" ],
+                        "appkey_ios" : "301567cad1afe899587917e803441d60",
+                        "appkey_android" : "6e97c7069def9d8f0f3aa3d421ce196b"
+                    }
+                }
+            },
+            "icons" : {
+                "android" : {
+                    "hdpi" : "unpackage/res/icons/72x72.png",
+                    "xhdpi" : "unpackage/res/icons/96x96.png",
+                    "xxhdpi" : "unpackage/res/icons/144x144.png",
+                    "xxxhdpi" : "unpackage/res/icons/192x192.png"
+                },
+                "ios" : {
+                    "appstore" : "unpackage/res/icons/1024x1024.png",
+                    "ipad" : {
+                        "app" : "unpackage/res/icons/76x76.png",
+                        "app@2x" : "unpackage/res/icons/152x152.png",
+                        "notification" : "unpackage/res/icons/20x20.png",
+                        "notification@2x" : "unpackage/res/icons/40x40.png",
+                        "proapp@2x" : "unpackage/res/icons/167x167.png",
+                        "settings" : "unpackage/res/icons/29x29.png",
+                        "settings@2x" : "unpackage/res/icons/58x58.png",
+                        "spotlight" : "unpackage/res/icons/40x40.png",
+                        "spotlight@2x" : "unpackage/res/icons/80x80.png"
+                    },
+                    "iphone" : {
+                        "app@2x" : "unpackage/res/icons/120x120.png",
+                        "app@3x" : "unpackage/res/icons/180x180.png",
+                        "notification@2x" : "unpackage/res/icons/40x40.png",
+                        "notification@3x" : "unpackage/res/icons/60x60.png",
+                        "settings@2x" : "unpackage/res/icons/58x58.png",
+                        "settings@3x" : "unpackage/res/icons/87x87.png",
+                        "spotlight@2x" : "unpackage/res/icons/80x80.png",
+                        "spotlight@3x" : "unpackage/res/icons/120x120.png"
+                    }
+                }
+            },
+            "splashscreen" : {
+                "androidStyle" : "default"
+            }
+        },
+        "nativePlugins" : {
+            "KJ-JPush" : {
+                "ios_appkey" : "d644d997f2cab0551ff704a3",
+                "android_channel" : "huawei",
+                "android_appkey" : "d644d997f2cab0551ff704a3",
+                "ios_channel" : "appstore",
+                "__plugin_info__" : {
+                    "name" : "【离线包、源码优惠出售】极光推送（ios、andorid）",
+                    "description" : "【不维护试用合适再购买3.33块】离线包源码优惠价66块，购买源码加QQ：543610866",
+                    "platforms" : "Android,iOS",
+                    "url" : "https://ext.dcloud.net.cn/plugin?id=1009",
+                    "android_package_name" : "com.dalicitycard.app",
+                    "ios_bundle_id" : "com.dalicitycard.app",
+                    "isCloud" : true,
+                    "bought" : 1,
+                    "pid" : "1009",
+                    "parameters" : {
+                        "ios_appkey" : {
+                            "des" : "发布ios时，必填，填写极光推送的APPKEY",
+                            "key" : "JPUSH_APPKEY",
+                            "value" : "${ios_appkey}"
+                        },
+                        "android_channel" : {
+                            "des" : "发布android时，必填，填写发布渠道，如不知道，填写：huawei",
+                            "key" : "JPUSH_CHANNEL",
+                            "value" : "${android_channel}"
+                        },
+                        "android_appkey" : {
+                            "des" : "发布android时，必填，填写极光推送的APPKEY",
+                            "key" : "JPUSH_APPKEY",
+                            "value" : "${android_appkey}"
+                        },
+                        "ios_channel" : {
+                            "des" : "发布ios时，必填，填写发布渠道，如不知道，填写：appstore",
+                            "key" : "JPUSH_CHANNEL",
+                            "value" : "${ios_channel}"
+                        }
+                    }
+                }
+            },
+            "Mpaas-Scan" : {
+                "AppId" : "ONEX1D49B6A241152",
+                "WorkspaceId" : "default",
+                "License" : "zvI8Ix1QYGLcZWTu9pfuwRxhPIERACTAjd2rQ66ky3zCCWLCCZDiISir89uVn4y+OGn0jcPIX/mMsZ8NIZXjfsgvB/m5MzVeaycZ7WRC4cxzoXjMSeN+AYty28ssiJJMdP1kFtIAoy/80VPeOBhl+yozUFaaTtDWEyMqT6XujcLWVuTJp8WHBvvLj0KmoleFV+OAusd+9keF9aSSHGwSwM1IbU9M4JMZsKWmLaKBpC77Ag0MVUhhdnY6MZ5Mff/KDivd5oGu1hbzXBPfoUlEkNppe3gwbxRTUM6k0OndyczPgZdVL9gC1/+UGH7kwiBNjegibMdySzsQuujbtISwFA==",
+                "__plugin_info__" : {
+                    "name" : "支付宝原生扫码插件",
+                    "description" : "支付宝原生扫码组件，包体积仅0.7MB，15分钟即可完成接入。同时，mPaaS提供「扫码分析」大盘",
+                    "platforms" : "Android,iOS",
+                    "url" : "https://ext.dcloud.net.cn/plugin?id=2636",
+                    "android_package_name" : "com.dalicitycard.app",
+                    "ios_bundle_id" : "com.dalicitycard.app",
+                    "isCloud" : true,
+                    "bought" : 1,
+                    "pid" : "2636",
+                    "parameters" : {
+                        "AppId" : {
+                            "des" : "Android平台的AppId，请填写Android的config文件中的appId对应的值",
+                            "key" : "mobilegw.appid",
+                            "value" : ""
+                        },
+                        "WorkspaceId" : {
+                            "des" : "Android平台的WorkspaceId，请填写Android的config文件中的workspaceId对应的值",
+                            "key" : "workspaceId",
+                            "value" : ""
+                        },
+                        "License" : {
+                            "des" : "Android平台的License,，请填写Android的config文件中的mpaasConfigLicense对应的值",
+                            "key" : "mpaasConfigLicense",
+                            "value" : ""
+                        }
+                    }
+                }
+            }
+        }
+    },
+    "quickapp" : {},
+    "mp-weixin" : {
+        "appid" : "wxc458a08d7fb5b4d3",
+        "setting" : {
+            "urlCheck" : true,
+            "es6" : false,
+            "minified" : true,
+            "postcss" : true
+        },
+        "optimization" : {
+            "subPackages" : true
+        },
+        "usingComponents" : true,
+        "permission" : {
+            "scope.userLocation" : {
+                "desc" : "你的位置信息将用于小程序位置接口的效果展示"
+            }
+        }
+    },
+    "mp-alipay" : {
+        "usingComponents" : true,
+        "component2" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true,
+        "appid" : ""
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "h5" : {
+        "template" : "template.h5.html",
+        "router" : {
+            "mode" : "hash",
+            "base" : ""
+        },
+        "optimization" : {
+            "treeShaking" : {
+                "enable" : true
+            }
+        },
+        "title" : "uView UI",
+        "devServer" : {
+            "proxy" : {
+                "/api" : {
+                    "target" : "http://yy.dlsmk.cn:8080/portal/mobileapi",
+                    "changeOrigin" : true,
+                    "pathRewrite" : {
+                        "^/api" : ""
+                    }
+                }
+            }
+        }
+    },
+    "channel_list" : [
+        {
+            "id" : "baidu",
+            "name" : "百度应用市场"
+        }
+    ]
 }
diff --git a/pages.json b/pages.json
index 94efca2..a918896 100644
--- a/pages.json
+++ b/pages.json
@@ -114,6 +114,12 @@
 				"style": {
 					"navigationBarTitleText": "手机认证"
 				}
+			},
+			{
+				"path": "forgetPwd/question",
+				"style": {
+					"navigationBarTitleText": "密保验证"
+				}
 			}
 
 		]
@@ -381,6 +387,18 @@
 				}
 			},
 			{
+				"path": "question/index",
+				"style": {
+					"navigationBarTitleText": "密保"
+				}
+			},
+			{
+				"path": "setQuestion/index",
+				"style": {
+					"navigationBarTitleText": "设置密保"
+				}
+			},
+			{
 				"path": "integralQuery/index",
 				"style": {
 					"navigationBarTitleText": "积分查询"
diff --git a/pages/sub_basic/forgetPwd/index.vue b/pages/sub_basic/forgetPwd/index.vue
index 523f916..0c5e66e 100644
--- a/pages/sub_basic/forgetPwd/index.vue
+++ b/pages/sub_basic/forgetPwd/index.vue
@@ -1,8 +1,8 @@
 <template>
 	<view class="register" @touchmove.stop.prevent="moveHandle">
 		<!-- #ifndef MP-WEIXIN -->
-		 <u-navbar title="忘记密码" :border-bottom="false" :is-back="false"></u-navbar>
-		 <!-- #endif -->
+		<u-navbar title="忘记密码" :border-bottom="false" :is-back="false"></u-navbar>
+		<!-- #endif -->
 		<view class="register-con">
 			<view class="register-con-logo">
 				<u-image src="/static/images/login/logo.png" width="300rpx" mode="widthFix"></u-image>
@@ -17,6 +17,7 @@
 				</u-field>
 				<u-field v-model="pwd" icon="lock-fill" placeholder="请输入新的密码" label-width="50" icon-color="#999999" :password="true"
 				 maxlength="12" type="number" clear-size="40"></u-field>
+				<view class="register-con-form-secret"><text @click="toUrl('/pages/sub_basic/forgetPwd/question')">密保改密</text></view>
 			</view>
 			<u-button @click="changePwd" :custom-style="registerConBtn">修改密码</u-button>
 		</view>
@@ -33,7 +34,7 @@
 				code: "",
 				isChecked: false,
 				timer: "",
-				registerConBtn:{
+				registerConBtn: {
 					width: '600rpx',
 					backgroundColor: '#2FA8E1',
 					color: '#FFFFFF',
@@ -42,10 +43,10 @@
 					marginTop: '100rpx',
 					padding: '50rpx 0'
 				},
-				btn:{
+				btn: {
 					color: '#2FA8E1',
 					backgroundColor: '#FFFFFF',
-					borderColor:'#2FA8E1',
+					borderColor: '#2FA8E1',
 					borderWidth: '1rpx',
 					borderStyle: 'solid',
 					fontFamily: "PingFang-SC-Regular"
@@ -53,7 +54,7 @@
 			}
 		},
 		methods: {
-			moveHandle(){
+			moveHandle() {
 				return
 			},
 			getCode() {
@@ -70,7 +71,7 @@
 				uni.removeStorageSync('token')
 				that.$u.post('/i/code', {
 					phone: tel,
-					"type":"find"
+					"type": "find"
 				}).then(res => {
 					uni.showToast({
 						title: res.msg,
@@ -152,10 +153,10 @@
 							title: "密码重置成功",
 							icon: "none",
 							duration: 800,
-							complete(res){
+							complete(res) {
 								setTimeout(() => {
 									uni.reLaunch({
-										url:"/pages/sub_basic/login/index"
+										url: "/pages/sub_basic/login/index"
 									})
 								}, 1500)
 							}
@@ -208,6 +209,14 @@
 			&-form {
 				width: 650rpx;
 				margin: auto;
+
+				&-secret {
+					color: #999999;
+					font-size: 28rpx;
+					display: flex;
+					justify-content: flex-end;
+					margin-top: 30rpx;
+				}
 			}
 
 			&-btn {
diff --git a/pages/sub_basic/forgetPwd/question.vue b/pages/sub_basic/forgetPwd/question.vue
new file mode 100644
index 0000000..36b90e7
--- /dev/null
+++ b/pages/sub_basic/forgetPwd/question.vue
@@ -0,0 +1,266 @@
+<template>
+	<view>
+		<view class="setQuestion" v-if="show_question && !show_pwd">
+			<view class="setQuestion-container">
+				<view class="setQuestion-item" v-for="(v,i) in list_select" :key='i'>
+					<u-field :disabled="true" :label="v.q_title" :field-style="field_style" v-model="v.q_value" input-align='right'
+					 @click="choose_list(i,'confirm'+i)"></u-field>
+					<u-field :label="v.a_title" :field-style="field_style" v-model="v.a_value" input-align='right' placeholder="请输入您的答案"
+					 maxlength="20"></u-field>
+					<u-picker mode="selector" v-model="v.isShow" :default-selector="[i]" :range="list" range-key="question" @confirm="v.func"></u-picker>
+				</view>
+			</view>
+			<u-button @click="submit" :custom-style="submit_btn">验证密保</u-button>
+		</view>
+		<view class="setQuestion" v-if="!show_question && !show_pwd">
+			<view class="setQuestion-container">
+				<u-field label="手机号" :field-style="field_style" v-model="phone" input-align='right' placeholder="请输入您设置密保时关联的手机号"></u-field>
+			</view>
+			<u-button @click="check_phone" :custom-style="submit_btn">确认手机号</u-button>
+		</view>
+		<view class="setQuestion" v-if="show_pwd">
+			<view class="setQuestion-container">
+				<u-field label="新密码" :field-style="field_style" v-model="pwd" input-align='right' placeholder="请输入您的新密码" password></u-field>
+			</view>
+			<view class="setQuestion-container">
+				<u-field label="确认密码" :field-style="field_style" v-model="repwd" input-align='right' placeholder="请确认您的新密码"
+				 password></u-field>
+			</view>
+			<u-button @click="change_pwd" :custom-style="submit_btn">修改密码</u-button>
+		</view>
+	</view>
+
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				phone: '',
+				field_style: {
+					'font-size': '30rpx',
+					'color': '#6a6a6a'
+				},
+				submit_btn: {
+					width: '600rpx',
+					backgroundColor: '#2FA8E1',
+					color: '#FFFFFF',
+					fontFamily: "PingFang-SC-Medium",
+					fontSize: '30rpx',
+					marginTop: '100rpx',
+					padding: '50rpx 0'
+				},
+				show_question: false,
+				show_pwd: false,
+				list: [],
+				list_select: [{
+						q_title: 'Q1:',
+						q_value: '请选择您的密保问题',
+						a_value: '',
+						a_title: 'A1:',
+						isShow: false,
+						func: null
+					},
+					{
+						q_title: 'Q2:',
+						q_value: '请选择您的密保问题',
+						a_value: '',
+						a_title: 'A2:',
+						isShow: false,
+						func: null
+					},
+					{
+						q_title: 'Q3:',
+						q_value: '请选择您的密保问题',
+						a_value: '',
+						a_title: 'A3:',
+						isShow: false,
+						func: null
+					},
+				],
+				answers: [{
+						"ssid": "",
+						"answer": ""
+					},
+					{
+						"ssid": "",
+						"answer": ""
+					},
+					{
+						"ssid": "",
+						"answer": ""
+					}
+				],
+				pass: false,
+				pwd: '',
+				repwd: ''
+			}
+		},
+		onLoad(optins) {
+			// this.get_list()
+		},
+		methods: {
+			choose_list(e, fun_name) {
+				this.list_select[e].isShow = true
+				this.list_select[e].func = this[fun_name]
+			},
+			check_phone() {
+				let that = this
+				let phone = that.phone
+				that.$u.get('/i/security/list?phone=' + phone).then(res => {
+					let list = res.data
+					if (list.length == 0) {
+						uni.showModal({
+							title: '提示',
+							content: '您还未设置过密保',
+						})
+						return
+					}
+					uni.setStorageSync("phone", phone)
+					that.list = list
+					that.show_question = true
+				})
+			},
+			confirm0(e) {
+				this.list_select[0].q_value = this.list[e[0]].question
+				this.list_select[0].ssid = this.list[e[0]].ssid
+			},
+			confirm1(e) {
+				this.list_select[1].q_value = this.list[e[0]].question
+				this.list_select[1].ssid = this.list[e[0]].ssid
+			},
+			confirm2(e) {
+				this.list_select[2].q_value = this.list[e[0]].question
+				this.list_select[2].ssid = this.list[e[0]].ssid
+			},
+			submit() {
+				let that = this
+				let list = that.list_select
+				let answer = that.answers
+				list.map((item, index, arr) => {
+					let ssid = item.ssid
+					let length = item.a_value.length
+					answer[index].ssid = ssid
+					answer[index].answer = item.a_value
+				})
+				let str = ''
+				answer.forEach(item => {
+					str = str + item.ssid
+				})
+				for (let i = 0; i < answer.length; i++) {
+					let item = answer[i]
+					let ssid = item.ssid
+					if (!ssid) {
+						uni.showModal({
+							title: '提示',
+							content: '请选择密保问题',
+						})
+						that.pass = false
+						break;
+					} else {
+						that.pass = true
+					}
+					let reg = new RegExp(item.ssid, "g")
+					let length = str.match(reg).length
+					if (length >= 2) {
+						uni.showModal({
+							title: '提示',
+							content: '请选择不同的密保问题',
+						})
+						that.pass = false
+						break;
+					} else {
+						that.pass = true
+					}
+
+					let value_length = item.answer.length
+					if (value_length < 2) {
+						uni.showModal({
+							title: '提示',
+							content: '未填写问题或问题答案长度小于2个字符',
+						})
+						that.pass = false
+						break;
+					} else {
+						that.pass = true
+					}
+				}
+				if (!that.pass) return
+				let phone = that.phone
+				let param = {
+					answers: answer,
+					phone
+				}
+				that.$u.post('/i/security/check', param).then(res => {
+					//console.log(res)
+					if (res.error == null) {
+						that.show_question = false
+						that.show_pwd = true
+					} else {
+						uni.showModal({
+							title: '提示',
+							content: '密保错误，请确认后重新验证'
+						})
+					}
+
+				})
+			},
+			change_pwd() {
+				let that = this
+				let pwd = that.pwd
+				let repwd = that.repwd
+				if (!!!pwd || !!!repwd) {
+					uni.showModal({
+						title: '提示',
+						content: '请输入密码'
+					})
+					return
+				}
+				if (pwd != repwd) {
+					uni.showModal({
+						title: '提示',
+						content: '两次密码不一致,请确认后重新输入'
+					})
+					return
+				}
+				let answers = that.answers
+				let phone = that.phone
+				//console.log(answers)
+				let params = {
+					pwd,
+					repwd,
+					answers,
+					phone
+				}
+				that.$u.post('/i/security/pwdset', params).then(res => {
+					uni.showToast({
+						title: "密码修改成功",
+						icon: "none",
+						duration: 800,
+						complete(res) {
+							setTimeout(() => {
+								uni.reLaunch({
+									url: "/pages/sub_basic/login/index"
+								})
+							}, 1500)
+						}
+					})
+				})
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.setQuestion {
+		margin-top: 30rpx;
+
+		&-container {
+			background-color: #FFFFFF;
+		}
+
+		&-item {
+			margin-bottom: 30rpx;
+		}
+	}
+</style>
diff --git a/pages/sub_basic/login/index.vue b/pages/sub_basic/login/index.vue
index 050f84c..716fc47 100644
--- a/pages/sub_basic/login/index.vue
+++ b/pages/sub_basic/login/index.vue
@@ -291,7 +291,12 @@
 			faceIn() {
 				let face = uni.getStorageSync("face")
 				if (face) {
-
+					uni.showToast({
+						title: "暂不支持面容登录,请使用其他方式登录",
+						duration: 1500,
+						icon: "none",
+						mask: true,
+					})
 				} else {
 					uni.showToast({
 						title: "未开启面容登录,请使用其他方式登录",
diff --git a/pages/sub_index/scanView/index.vue b/pages/sub_index/scanView/index.vue
index dbf9b26..fab08d2 100644
--- a/pages/sub_index/scanView/index.vue
+++ b/pages/sub_index/scanView/index.vue
@@ -23,37 +23,41 @@
 			let userid = uni.getStorageSync("userid")
 			//that.userid = userid
 			let url = option.url
-			if (url.indexOf("?") > 0) {
-				url = url + "&userid=" + userid
-			} else {
-				url = url + "?userid=" + userid
-			}
+			// if (url.indexOf("?") > 0) {
+			// 	url = url + "&userid=" + userid
+			// } else {
+			// 	url = url + "?userid=" + userid
+			// }
 			console.log(url)
 			that.src = url
 		},
+		onBackPress(options) {
+			uni.reLaunch({
+				url: '/pages/sub_tabbar/index'
+			})
+			return true
+		},
 		onReady() {
-			// let userid = uni.getStorageSync("userid")
-			// var pages = getCurrentPages()
-			// var page = pages[pages.length - 1]
-			// var currentWebview = page.$getAppWebview()
-			// var url = currentWebview.children()[0].getURL()
-			// var wx = currentWebview.children()[0]
-			// console.log('=== url ===', url);
-			// wx.addEventListener('loaded', function(e) {
-			// 	console.log('Loaded: ' + wx.getURL());
-			// 	let newUrl = wx.getURL()
-			// 	if (newUrl.indexOf("userid") > -1) {
-			// 		//console.log(1)
-			// 		return false
-			// 	}
-			// 	if (newUrl.indexOf("?") > 0) {
-			// 		newUrl = newUrl + "&userid=" + userid
-			// 	} else {
-			// 		newUrl = newUrl + "?userid=" + userid
-			// 	}
-			// 	//console.log(newUrl)
-			// 	wx.loadURL(newUrl)
-			// }, false);
+			let that = this
+			let userid = uni.getStorageSync("userid")
+			var pages = getCurrentPages()
+			var page = pages[pages.length - 1]
+			var currentWebview = page.$getAppWebview()
+			var url = currentWebview.children()[0].getURL()
+			var wx = currentWebview.children()[0]
+			wx.addEventListener('loaded', function(e) {
+				let newUrl = wx.getURL()
+				if (newUrl.indexOf("userid") > -1) {
+					//console.log(1)
+					return false
+				}
+				if (newUrl.indexOf("?") > 0) {
+					newUrl = newUrl + "&userid=" + userid
+				} else {
+					newUrl = newUrl + "?userid=" + userid
+				}
+				that.src = newUrl
+			}, false);
 		},
 	}
 </script>
diff --git a/pages/sub_medical/appointment.vue b/pages/sub_medical/appointment.vue
index cf7fd6a..a80132d 100644
--- a/pages/sub_medical/appointment.vue
+++ b/pages/sub_medical/appointment.vue
@@ -104,7 +104,7 @@
 						// #endif
 					},
 					fail(ret){
-						that.local = '获取位置失败'
+						that.local = '重新获取位置...'
 						console.log(ret)
 					}
 				})
diff --git a/pages/sub_medical/cashFlow.vue b/pages/sub_medical/cashFlow.vue
index 6f5091b..c1030de 100644
--- a/pages/sub_medical/cashFlow.vue
+++ b/pages/sub_medical/cashFlow.vue
@@ -9,7 +9,7 @@
 		<view v-if="leftOright">
 			<scroll-view scroll-y :enable-back-to-top="true" @scrolltolower="" class="scrollView">
 				<view class="cashFlow-ul">
-					<view class="cashFlow-ul-item" v-for = '(v,i) in unpay_list' :key='i' @click="toPath('/pages/sub_medical/pay?msg=' + JSON.stringify(v)+'&id=unpay')">
+					<view class="cashFlow-ul-item" v-for='(v,i) in unpay_list' :key='i' @click="toPath('/pages/sub_medical/pay?msg=' + JSON.stringify(v)+'&id=unpay')">
 						<view class="cashFlow-ul-item-left">
 							<view class="cashFlow-ul-item-left-top">
 								<u-image src="./images/pay.png" width="80" height="80"></u-image>
@@ -33,7 +33,7 @@
 		<view v-if="!leftOright">
 			<scroll-view scroll-y :enable-back-to-top="true" @scrolltolower="" class="scrollView">
 				<view class="cashFlow-ul">
-					<view class="cashFlow-ul-item" v-for = '(v,i) in payed_list' :key='i' @click="toPath('/pages/sub_medical/pay?msg=' + JSON.stringify(v) +'&id=payed')">
+					<view class="cashFlow-ul-item" v-for='(v,i) in payed_list' :key='i' @click="toPath('/pages/sub_medical/pay?msg=' + JSON.stringify(v) +'&id=payed')">
 						<view class="cashFlow-ul-item-left">
 							<view class="cashFlow-ul-item-left-top">
 								<u-image src="./images/pay.png" width="80" height="80"></u-image>
@@ -47,7 +47,7 @@
 						<view class="cashFlow-ul-item-right">
 							<text>￥{{v.mergingsubtotal}}</text>
 						</view>
-						<view class="cashFlow-ul-item-status" v-if="!v.notifyStatus">通知医院</view>
+						<view class="cashFlow-ul-item-nstatus" v-if="!v.notifyStatus">通知医院</view>
 					</view>
 				</view>
 			</scroll-view>
@@ -60,64 +60,72 @@
 		data() {
 			return {
 				leftOright: true,
-				unpay_list:[],
-				hospitalcode:'',
-				payed_list:[]
+				unpay_list: [],
+				hospitalcode: '',
+				payed_list: []
 			}
 		},
-		onLoad(options){
+		onLoad(options) {
 			let hospitalcode = options.hospitalcode
 			this.hospitalcode = hospitalcode
 			// this.get_unpay_list(hospitalcode)
 		},
 		methods: {
-			get_unpay_list(code){
+			get_unpay_list(code) {
 				let that = this
 				let param = {
-					hospitalcode : code
+					hospitalcode: code
 				}
-				that.$u.post('/medicalapi/unpayed/list',param).then(res=>{
+				that.$u.post('/medicalapi/unpayed/list', param).then(res => {
 					that.unpay_list = res.data
 				})
 			},
-			get_payed_list(code){
+			get_payed_list(code) {
 				let that = this
 				let param = {
-					hospitalcode : code,
-					pageno:1,
-					pagesize:100
+					hospitalcode: code,
+					pageno: 1,
+					pagesize: 100
 				}
-				that.$u.post('/medicalapi/payed/list',param).then(res=>{
+				that.$u.post('/medicalapi/payed/list', param).then(res => {
 					let list = res.data
-					list.forEach(item=>{
+					list.forEach(item => {
 						item.paytime = item.transdate.substr(0, 4) +
-							"-" + item.transdate.substr(4, 2) + "-" + item.transdate.substr(6, 2) + " " + item.transtime.substr(0, 2) + ":" +
-							item.transtime.substr(2, 2) + ":" + item.transtime.substr(4, 2) 
+							"-" + item.transdate.substr(4, 2) + "-" + item.transdate.substr(6, 2) + " " + item.transtime.substr(0, 2) +
+							":" +
+							item.transtime.substr(2, 2) + ":" + item.transtime.substr(4, 2)
 					})
 					that.payed_list = list
 				})
 			},
 			changeTurnoverList(e) {
 				this.leftOright = e
-				if(e){
+				if (e) {
 					this.get_unpay_list(this.hospitalcode)
-				}else{
+				} else {
 					this.get_payed_list(this.hospitalcode)
 				}
 			},
 		},
-		onShow(){
-			this.get_unpay_list(this.hospitalcode)
+		onShow() {
+			let e = this.leftOright
+			if (e) {
+				this.get_unpay_list(this.hospitalcode)
+			} else {
+				this.get_payed_list(this.hospitalcode)
+			}
 		}
 	}
 </script>
 
 <style lang="scss" scoped>
-	.scrollView{
+	.scrollView {
 		height: calc(100vh - 130rpx - 100rpx);
 	}
+
 	.cashFlow {
 		font-family: "PingFang-SC-Medium";
+
 		&-header {
 			width: 80%;
 			display: flex;
@@ -135,18 +143,19 @@
 				border-top: 2rpx solid #F1F1F1;
 				border-bottom: 2rpx solid #F1F1F1;
 			}
+
 			.left {
 				border-top-left-radius: 50rpx;
 				border-bottom-left-radius: 50rpx;
 				border-left: 2rpx solid #F1F1F1;
 			}
-			
+
 			.right {
 				border-top-right-radius: 50rpx;
 				border-bottom-right-radius: 50rpx;
 				border-right: 2rpx solid #F1F1F1;
 			}
-			
+
 			.color {
 				background-color: #3599fb;
 				color: #ffffff;
@@ -154,9 +163,11 @@
 				border: 2rpx solid transparent;
 			}
 		}
-		&-ul{
+
+		&-ul {
 			padding: 0 20rpx;
-			&-item{
+
+			&-item {
 				background-color: #FFFFFF;
 				display: flex;
 				justify-content: space-between;
@@ -165,22 +176,34 @@
 				border-radius: 10rpx;
 				margin-bottom: 30rpx;
 				position: relative;
-				&-status{
+
+				&-status {
 					position: absolute;
 					bottom: 20rpx;
 					right: 20rpx;
 					font-size: 26rpx;
 					color: #18B566;
 				}
-				&-left{
-					display:  flex;
+				
+				&-nstatus{
+					position: absolute;
+					bottom: 20rpx;
+					right: 20rpx;
+					font-size: 26rpx;
+					color: #FF6F6F;
+				}
+
+				&-left {
+					display: flex;
 					flex-direction: column;
 					justify-content: space-between;
 					width: 75%;
-					&-top{
+
+					&-top {
 						display: flex;
 						align-items: center;
-						text{
+
+						text {
 							overflow: hidden;
 							text-overflow: ellipsis;
 							white-space: nowrap;
@@ -189,24 +212,28 @@
 							font-weight: bold;
 						}
 					}
-					&-bottom{
+
+					&-bottom {
 						margin-top: 20rpx;
-						&-bold{
+
+						&-bold {
 							font-size: 32rpx;
 							font-weight: bold;
 						}
-						&-normal{
+
+						&-normal {
 							color: #a1a1a1;
 						}
 					}
 				}
-				&-right{
+
+				&-right {
 					font-size: 40rpx;
 					color: #FF6F6F;
 					font-weight: bold;
 				}
 			}
 		}
-		
+
 	}
 </style>
diff --git a/pages/sub_medical/pay.vue b/pages/sub_medical/pay.vue
index c763a23..5c9ebe5 100644
--- a/pages/sub_medical/pay.vue
+++ b/pages/sub_medical/pay.vue
@@ -11,10 +11,12 @@
 			<u-cell-item title="订单号" :arrow="false" :value="msg.billNo"></u-cell-item>
 			<u-cell-item title="就诊日期" :arrow="false" :value="msg.date"></u-cell-item>
 			<!-- <u-cell-item title="截止日期"  :arrow="false" value="2020/10/28 23:29:29"></u-cell-item> -->
-			<u-cell-item title="交易状态" :arrow="false" :value="msg.status_ok" :value-style="msg.status=='wip'?status_style:vstyle"></u-cell-item>
+			<u-cell-item title="交易状态" :arrow="false" :value="msg.status_ok" :value-style="msg.status=='wip'|| msg.status==undefined?status_style:vstyle"></u-cell-item>
+			<u-cell-item title="退款状态" :arrow="false" :value="msg.refundflag_ok" :value-style="msg.refundflag=='refund'?status_style:vstyle"
+			 v-if="msg.refundflag == 'wip' || msg.refundflag == 'refund'"></u-cell-item>
 		</u-cell-group>
 		<u-button @click="msg.status=='wip'?query():open()" :custom-style="payBtn" v-if="kind =='unpay'">{{msg.status=='wip'?'查询订单状态':'立即支付'}}</u-button>
-		<u-button @click="" :custom-style="payBtn" v-if="kind =='payed'&& msg.notifyStatus == false">通知医院</u-button>
+		<u-button @click="notify_hosiptal" :custom-style="payBtn" v-if="kind =='payed'&& msg.notifyStatus == false">通知医院</u-button>
 		<!-- 支付密码弹框 -->
 		<uni-popup ref="showPassword" class="pwd-wrapper">
 			<view class="uni-tip uni-pwd">
@@ -49,11 +51,11 @@
 				},
 				vstyle: {
 					color: '#FF6F6F',
-					fontSize:'30rpx'
+					fontSize: '30rpx'
 				},
 				status_style: {
 					color: '#18B566',
-					fontSize:'30rpx'
+					fontSize: '30rpx'
 				},
 				payBtn: {
 					backgroundColor: ' #2FA8E1',
@@ -65,7 +67,7 @@
 					marginTop: '50rpx'
 				},
 				msg: {},
-				kind:''
+				kind: ''
 			}
 		},
 		methods: {
@@ -123,12 +125,12 @@
 					let obj = that.msg
 					let date = res.transdate.substr(0, 4) +
 						"-" + res.transdate.substr(4, 2) + "-" + res.transdate.substr(6, 2) + " " + res.transtime.substr(0, 2) + ":" +
-						res.transtime.substr(2, 2) + ":" + res.transtime.substr(4, 2) 
-						setTimeout(()=>{
-							uni.navigateTo({
-								url: `/pages/sub_medical/payResult?status=${status}&msg=${JSON.stringify(obj)}&date=${date}`
-							})
-						},1500)
+						res.transtime.substr(2, 2) + ":" + res.transtime.substr(4, 2)
+					setTimeout(() => {
+						uni.navigateTo({
+							url: `/pages/sub_medical/payResult?status=${status}&msg=${JSON.stringify(obj)}&date=${date}`
+						})
+					}, 1500)
 				})
 			},
 			query() {
@@ -136,31 +138,49 @@
 				let billno = that.msg.billNo
 				that.$u.post('/medicalapi/pay/query/' + billno, {}).then(res => {
 					let status = res.status
-					if(status == 'wip'){
+					if (status == 'wip') {
 						uni.showToast({
-							icon:'none',
-							title:'订单正在支付中，请稍等...'
+							icon: 'none',
+							title: '订单正在支付中，请稍等...'
 						})
-					}else{
+					} else {
 						let status = res.status
 						let obj = that.msg
 						let date = res.transdate.substr(0, 4) +
 							"-" + res.transdate.substr(4, 2) + "-" + res.transdate.substr(6, 2) + " " + res.transtime.substr(0, 2) + ":" +
-							res.transtime.substr(2, 2) + ":" + res.transtime.substr(4, 2) 
-							setTimeout(()=>{
-								uni.navigateTo({
-									url: `/pages/sub_medical/payResult?status=${status}&msg=${JSON.stringify(obj)}&date=${date}`
-								})
-							},1500)
+							res.transtime.substr(2, 2) + ":" + res.transtime.substr(4, 2)
+						setTimeout(() => {
+							uni.navigateTo({
+								url: `/pages/sub_medical/payResult?status=${status}&msg=${JSON.stringify(obj)}&date=${date}`
+							})
+						}, 1500)
 					}
 				})
+			},
+			notify_hosiptal() {
+				let that = this
+				let billno = that.msg.billno
+				that.$u.post('/medicalapi/pay/notify/' + billno).then(res => {
+					uni.showToast({
+						title: res.msg,
+						icon: 'none',
+						duration:800,
+						success(ret) {
+							setTimeout(() => {
+								uni.navigateBack({
+									delta: 1
+								})
+							}, 1500)
+						}
+					})
+				})
 			}
 		},
 		onLoad(options) {
 			let msg = JSON.parse(options.msg)
 			let id = options.id
 			this.kind = id
-			if(id == 'unpay'){
+			if (id == 'unpay') {
 				msg.date = msg.medicalDate.substr(0, 4) + '-' + msg.medicalDate.substr(4, 2) + '-' + msg.medicalDate.substr(6, 2) +
 					' ' + msg.medicalDate.substr(8, 2) + ':' + msg.medicalDate.substr(10, 2) + ':' + msg.medicalDate.substr(12, 2)
 				switch (msg.status) {
@@ -172,14 +192,20 @@
 						break
 				}
 				this.msg = msg
-			}else if(id == 'payed'){
+			} else if (id == 'payed') {
 				msg.date = msg.medicaldate.substr(0, 4) + '-' + msg.medicaldate.substr(4, 2) + '-' + msg.medicaldate.substr(6, 2) +
 					' ' + msg.medicaldate.substr(8, 2) + ':' + msg.medicaldate.substr(10, 2) + ':' + msg.medicaldate.substr(12, 2)
-					msg.billNo = msg.billno
-					msg.mergingSubtotal = msg.mergingsubtotal
-					msg.mergingName = msg.mergingname
-					msg.status_ok = '已完成'
-					msg.hospitalName = msg.hospitalname
+				msg.billNo = msg.billno
+				msg.mergingSubtotal = msg.mergingsubtotal
+				msg.mergingName = msg.mergingname
+				msg.status_ok = '已完成'
+				switch (msg.refundflag) {
+					case 'wip':
+						msg.refundflag_ok = '退款处理中...';
+						break
+					case 'refund':
+						msg.refundflag_ok = '已退款';
+				}
 				this.msg = msg
 			}
 		}
diff --git a/pages/sub_medical/payResult.vue b/pages/sub_medical/payResult.vue
index e36fd54..08d8185 100644
--- a/pages/sub_medical/payResult.vue
+++ b/pages/sub_medical/payResult.vue
@@ -8,7 +8,11 @@
 			<icon type="warn" size="60"></icon>
 			<text class="payResult-status-text">支付失败</text>
 		</view>
-		<view class="payResult-money" v-if="msg.billstatus ==1"><text>-￥{{msg.mergingSubtotal?msg.mergingSubtotal:'0.00'}}</text></view>
+		<view class="payResult-status" v-if="msg.billstatus ==2">
+			<icon type="waiting" size="60"></icon>
+			<text class="payResult-status-text">交易处理中</text>
+		</view>
+		<view class="payResult-money" v-if="msg.billstatus ==1"><text>￥{{msg.mergingSubtotal?msg.mergingSubtotal:'0.00'}}</text></view>
 		<view class="payResult-msg">
 			<u-cell-group>
 				<u-cell-item title="医院名称" :value="msg.hospitalName?msg.hospitalName:'未知医院'" :arrow="false" bg-color="#FFFFFF"></u-cell-item>
diff --git a/pages/sub_mine/accountSafe/index.vue b/pages/sub_mine/accountSafe/index.vue
index afec07c..8a536bd 100644
--- a/pages/sub_mine/accountSafe/index.vue
+++ b/pages/sub_mine/accountSafe/index.vue
@@ -26,6 +26,7 @@
 					{name:"支付(指纹)",icon:"finger",path:"/pages/sub_mine/otherPay/index"},
 					{name:"挂失",icon:"gs",path:"/pages/sub_mine/reportheLoss/index"},
 					{name:"设置邮箱",icon:"email",path:"/pages/sub_mine/bindEmail/index"},
+					{name:"设置密保",icon:"mibao",path:"/pages/sub_mine/question/index"},
 				]
 			}
 		},
diff --git a/pages/sub_mine/agreement/index.vue b/pages/sub_mine/agreement/index.vue
index dce0c57..7952c6a 100644
--- a/pages/sub_mine/agreement/index.vue
+++ b/pages/sub_mine/agreement/index.vue
@@ -59,7 +59,7 @@
 			}
 		},
 		onLoad() {
-			this.getAgreement()
+			//this.getAgreement()
 		}
 	}
 </script>
diff --git a/pages/sub_mine/bindEmail/index.vue b/pages/sub_mine/bindEmail/index.vue
index 4fcbd70..3bc50fe 100644
--- a/pages/sub_mine/bindEmail/index.vue
+++ b/pages/sub_mine/bindEmail/index.vue
@@ -76,6 +76,7 @@
 						icon: "none",
 						duration: 800,
 						complete(res) {
+							uni.setStorageSync('email', email)
 							setTimeout(() => {
 								uni.navigateBack({
 									delta: 1
diff --git a/pages/sub_mine/lock/index.vue b/pages/sub_mine/lock/index.vue
index a2345f5..547e5b0 100644
--- a/pages/sub_mine/lock/index.vue
+++ b/pages/sub_mine/lock/index.vue
@@ -107,10 +107,18 @@
 				if (pwd) {
 					if (pwd.join('') === data.join('')) {
 						let login = uni.getStorageSync("login")
-						if(login){
+						if(login == 1){
 							that.text = '手势正确,即将进入首页'
 							uni.removeStorageSync("login")
 							that.login()
+						}else if(login ==2){
+							that.text = '手势正确'
+							uni.removeStorageSync("login")
+							setTimeout(() => {
+								uni.switchTab({
+									url: "/pages/sub_tabbar/index"
+								})
+							}, 1500)
 						}else{
 							that.text = '手势正确,关闭手势成功'
 							uni.removeStorageSync("hands")
diff --git a/pages/sub_mine/personalMsg/index.vue b/pages/sub_mine/personalMsg/index.vue
index 36960ea..8d6d620 100644
--- a/pages/sub_mine/personalMsg/index.vue
+++ b/pages/sub_mine/personalMsg/index.vue
@@ -7,12 +7,7 @@
 			<u-cell-item title="市民卡号" :arrow="false" :value="cardno"></u-cell-item>
 			<u-cell-item title="身份证号" :arrow="false" :value="idno"></u-cell-item>
 			<u-cell-item title="身份状态" :arrow="false" :value="signed"></u-cell-item>
-			<!-- <u-field v-model="name" :disabled="true" label="姓名" :field-style="fieldStyle" clear-size="40" input-align="right"></u-field>
-			<u-field v-model="tel" :disabled="true" label="手机号" :field-style="fieldStyle" clear-size="40" input-align="right"></u-field>
-			<u-field v-model="bankcardno" :disabled="true" label="银行卡号" :field-style="fieldStyle" clear-size="40" input-align="right"></u-field>
-			<u-field v-model="cardno" :disabled="true" label="市民卡号" :field-style="fieldStyle" clear-size="40" input-align="right"></u-field>
-			<u-field v-model="idno" :disabled="true" label="身份证号" :field-style="fieldStyle" clear-size="40" input-align="right"></u-field>
-			<u-field v-model="signed" :disabled="true" label="身份状态" :field-style="fieldStyle" clear-size="40" input-align="right"></u-field> -->
+			<u-cell-item title="邮箱号" :arrow="false" :value="email"></u-cell-item>
 		</view>
 	</view>
 </template>
@@ -30,7 +25,8 @@
 				cardno:'',
 				idno:'',
 				signed:'',
-				tel:''
+				tel:'',
+				email:''
 			}
 		},
 		methods: {
@@ -39,11 +35,12 @@
 		onLoad() {
 			let that = this
 			that.name = uni.getStorageSync('name')?uni.getStorageSync('name'):'佚名'
-			that.bankcardno = uni.getStorageSync('bankcardno')?uni.getStorageSync('bankcardno'):'暂无银行卡信息'
-			that.cardno = uni.getStorageSync('cardno')?uni.getStorageSync('cardno').substr(0,2) + '****' + uni.getStorageSync('cardno').substr(6,2):'暂无市民卡信息'
-			that.idno = uni.getStorageSync('idno')?uni.getStorageSync('idno'):'暂无身份证信息'
-			that.signed = uni.getStorageSync('signed') == 'yes' ? '已绑定签约':'未绑定'
-			that.tel = uni.getStorageSync('phoneX') ? uni.getStorageSync('phoneX') : '暂无手机号'
+			that.bankcardno = uni.getStorageSync('bankcardno')?uni.getStorageSync('bankcardno'):'无银行卡信息'
+			that.cardno = uni.getStorageSync('cardno')?uni.getStorageSync('cardno').substr(0,2) + '****' + uni.getStorageSync('cardno').substr(6,2):'无市民卡信息'
+			that.idno = uni.getStorageSync('idno')?uni.getStorageSync('idno'):'无身份证信息'
+			that.signed = uni.getStorageSync('signed') == 'yes' ? '已绑定签约':'未绑定签约'
+			that.tel = uni.getStorageSync('phoneX') ? uni.getStorageSync('phoneX') : '无手机号'
+			that.email = uni.getStorageSync('email') ? uni.getStorageSync('email') : '未绑定邮箱'
 		}
 	}
 </script>
diff --git a/pages/sub_mine/question/index.vue b/pages/sub_mine/question/index.vue
new file mode 100644
index 0000000..8fd7082
--- /dev/null
+++ b/pages/sub_mine/question/index.vue
@@ -0,0 +1,63 @@
+<template>
+	<view class="question">
+		<u-cell-group>
+			<u-cell-item title="开启\删除密保" :arrow="false">
+				<u-icon name="mibao" custom-prefix="custom-icon" size="32" slot="icon"></u-icon>
+				<u-switch slot="right-icon" v-model="question" @change="open"></u-switch>
+			</u-cell-item>
+		</u-cell-group>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				question: false
+			}
+		},
+		methods: {
+			open(e) {
+				if (e) {
+					uni.navigateTo({
+						url: '/pages/sub_mine/setQuestion/index'
+					})
+				} else {
+					uni.showModal({
+						title: "提示",
+						content: "该操作将删除您设置的密保问题，是否继续？",
+						success: (res) => {
+							if (res.confirm) {
+								this.delate_question()
+							} else if (res.cancel) {
+								this.question = true
+							}
+						}
+					})
+				}
+			},
+			delate_question() {
+				let that = this
+				that.$u.post('/v1/security/delete').then(res => {
+					uni.showToast({
+						title: '删除成功',
+						icon: 'none'
+					})
+				})
+			},
+			get_status() {
+				let that = this
+				that.$u.get('/i/security/list?phone=').then(res => {
+					let list = res.data
+					list.length ? that.question = true : that.question = false
+				})
+			}
+		},
+		onShow() {
+			this.get_status()
+		},
+	}
+</script>
+
+<style>
+</style>
diff --git a/pages/sub_mine/setQuestion/index.vue b/pages/sub_mine/setQuestion/index.vue
new file mode 100644
index 0000000..c746443
--- /dev/null
+++ b/pages/sub_mine/setQuestion/index.vue
@@ -0,0 +1,189 @@
+<template>
+	<view class="setQuestion">
+		<view class="setQuestion-container">
+			<view class="setQuestion-item" v-for="(v,i) in list_select" :key='i'>
+				<u-field :disabled="true" :label="v.q_title" :field-style="field_style" v-model="v.q_value" input-align='right'
+				 @click="choose_list(i,'confirm'+i)"></u-field>
+				<u-field :label="v.a_title" :field-style="field_style" v-model="v.a_value" input-align='right' placeholder="请输入您的答案"
+				 maxlength="20"></u-field>
+				<u-picker mode="selector" v-model="v.isShow" :default-selector="[i]" :range="list" range-key="question" @confirm="v.func"></u-picker>
+			</view>
+		</view>
+		<u-button @click="submit" :custom-style="submit_btn">保存密保</u-button>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				field_style: {
+					'font-size': '30rpx',
+					'color': '#6a6a6a'
+				},
+				submit_btn: {
+					width: '600rpx',
+					backgroundColor: '#2FA8E1',
+					color: '#FFFFFF',
+					fontFamily: "PingFang-SC-Medium",
+					fontSize: '30rpx',
+					marginTop: '100rpx',
+					padding: '50rpx 0'
+				},
+				show: false,
+				list: [],
+				list_select: [{
+						q_title: 'Q1:',
+						q_value: '请选择您的密保问题',
+						a_value: '',
+						a_title: 'A1:',
+						isShow: false,
+						func: null
+					},
+					{
+						q_title: 'Q2:',
+						q_value: '请选择您的密保问题',
+						a_value: '',
+						a_title: 'A2:',
+						isShow: false,
+						func: null
+					},
+					{
+						q_title: 'Q3:',
+						q_value: '请选择您的密保问题',
+						a_value: '',
+						a_title: 'A3:',
+						isShow: false,
+						func: null
+					},
+				],
+				answers: [{
+						"ssid": "",
+						"answer": ""
+					},
+					{
+						"ssid": "",
+						"answer": ""
+					},
+					{
+						"ssid": "",
+						"answer": ""
+					}
+				],
+				pass: false
+			}
+		},
+		onLoad(optins) {
+			this.get_list()
+		},
+		methods: {
+			choose_list(e, fun_name) {
+				this.list_select[e].isShow = true
+				this.list_select[e].func = this[fun_name]
+			},
+			get_list() {
+				let that = this
+				that.$u.get('/v1/security/all').then(res => {
+					let list = res.data
+					that.list = list
+				})
+			},
+			confirm0(e) {
+				this.list_select[0].q_value = this.list[e[0]].question
+				this.list_select[0].ssid = this.list[e[0]].ssid
+			},
+			confirm1(e) {
+				this.list_select[1].q_value = this.list[e[0]].question
+				this.list_select[1].ssid = this.list[e[0]].ssid
+			},
+			confirm2(e) {
+				this.list_select[2].q_value = this.list[e[0]].question
+				this.list_select[2].ssid = this.list[e[0]].ssid
+			},
+			submit() {
+				let that = this
+				let list = that.list_select
+				let answer = that.answers
+				list.map((item, index, arr) => {
+					let ssid = item.ssid
+					let length = item.a_value.length
+					answer[index].ssid = ssid
+					answer[index].answer = item.a_value
+				})
+				let str = ''
+				answer.forEach(item => {
+					str = str + item.ssid
+				})
+				for (let i = 0; i < answer.length; i++) {
+					let item = answer[i]
+					let ssid = item.ssid
+					if (!ssid) {
+						uni.showModal({
+							title: '提示',
+							content: '请选择密保问题',
+						})
+						that.pass = false
+						break;
+					} else {
+						that.pass = true
+					}
+					let reg = new RegExp(item.ssid, "g")
+					let length = str.match(reg).length
+					if (length >= 2) {
+						uni.showModal({
+							title: '提示',
+							content: '请选择不同的密保问题',
+						})
+						that.pass = false
+						break;
+					} else {
+						that.pass = true
+					}
+
+					let value_length = item.answer.length
+					if (value_length < 2) {
+						uni.showModal({
+							title: '提示',
+							content: '未填写问题或问题答案长度小于2个字符',
+						})
+						that.pass = false
+						break;
+					} else {
+						that.pass = true
+					}
+				}
+				if (!that.pass) return
+				let param = {
+					answers: answer
+				}
+				that.$u.post('/v1/security/save', param).then(res => {
+					uni.showToast({
+						title: "保存成功",
+						icon: 'none',
+						complete(res) {
+							setTimeout(() => {
+								uni.navigateBack({
+									delta: 1
+								})
+							}, 1500)
+						}
+					})
+				})
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.setQuestion {
+		margin-top: 30rpx;
+
+		&-container {
+			background-color: #FFFFFF;
+		}
+
+		&-item {
+			margin-bottom: 30rpx;
+		}
+	}
+</style>
diff --git a/pages/sub_tabbar/index.vue b/pages/sub_tabbar/index.vue
index 0851a76..7264790 100644
--- a/pages/sub_tabbar/index.vue
+++ b/pages/sub_tabbar/index.vue
@@ -14,7 +14,7 @@
 				<view class="img-box" @click="toPath('/pages/sub_index/qrcode/index')">
 					<u-image src="/static/images/index/money.png" width="40rpx" height="40rpx" mode="aspectFit"></u-image>
 				</view>
-				<view class="img-box" @click="toPath('/pages/sub_medical/appointment')">
+				<view class="img-box" @click="toPath('')">
 					<u-image src="/static/images/index/square.png" width="40rpx" height="40rpx" mode="aspectFit"></u-image>
 				</view>
 			</view>
@@ -57,7 +57,7 @@
 						<text class="wrap-active-con-item-desc-desc">签到即可领积分</text>
 					</view>
 				</view>
-				<view class="wrap-active-con-item" @click="toUrl('/pages/sub_index/activeDetails/index?id='+ activity.articleno + '&type=' + activity.code)">
+				<view class="wrap-active-con-item" @click="activity.length == 0?'':toUrl('/pages/sub_index/activeDetails/index?id='+ activity.articleno + '&type=' + activity.code)">
 					<u-image src="/static/images/index/smkhd.png" width="70rpx" height="70rpx"></u-image>
 					<view class="wrap-active-con-item-desc">
 						<text class="wrap-active-con-item-desc-title">{{activity.title?activity.title:''}}</text>
@@ -105,6 +105,7 @@
 </template>
 
 <script>
+	const app = getApp()
 	export default {
 		data() {
 			return {
@@ -141,8 +142,26 @@
 				}, ]
 			}
 		},
-		onShow() {},
 		methods: {
+			get_prompt() {
+				//提示更新或通告
+				let vername = app.globalData.vername
+				let verno = app.globalData.verno
+				let params = {
+					vername,
+					verno
+				}
+				this.$u.get('/i/app/prompt', params).then(res => {
+					let is_have_content = res.prompt
+					if (!!is_have_content) {
+						uni.showModal({
+							title: '提示',
+							content: is_have_content
+						})
+					}
+
+				})
+			},
 			search(e) {
 				uni.showToast({
 					icon: "none",
@@ -175,46 +194,14 @@
 								}
 								//console.log(param.url)
 								that.$u.get('/v1/qrcode/auth', param).then(ret => {
-									//console.log(ret.data.url)
+									// console.log(ret.data)
 									if (ret.data.permit) {
 										if (ret.data.action == 'water') {
-											// setTimeout(() => {
-											// 	uni.navigateTo({
-											// 		url: "/pages/sub_index/scanView/index?url=" + ret.data.url
-											// 	})
-											// }, 1500)
-											let userid = uni.getStorageSync("userid")
-											let url = ret.data.url
-											if (url.indexOf("?") > 0) {
-												url = url + "&userid=" + userid
-											} else {
-												url = url + "?userid=" + userid
-											}
-											let wv = plus.webview.create(url, 'webview_water', {
-												backButtonAutoControl: 'close',
-												popGesture: 'close'
-											})
 											setTimeout(() => {
-												wv.show()
+												uni.navigateTo({
+													url: "/pages/sub_index/scanView/index?url=" + ret.data.url
+												})
 											}, 1500)
-											wv.drag({
-												direction: 'right',
-												moveMode: 'followFinger'
-											}, {
-												view: 'webview_water',
-												moveMode: 'follow'
-											}, function(e) {
-												wv.close()
-											});
-											wv.drag({
-												direction: 'left',
-												moveMode: 'followFinger'
-											}, {
-												view: 'webview_water',
-												moveMode: 'follow'
-											}, function(e) {
-												wv.close()
-											});
 										} else if (ret.data.action == 'dlsmkh5') {
 											let token = uni.getStorageSync('token')
 											let wv = plus.webview.create(ret.data.url, 'webview_pay', {
@@ -241,75 +228,6 @@
 				// #endif
 
 			},
-
-			// scan() {
-			// 	let that = this
-			// 	// #ifndef H5
-			// 	// 只允许通过相机扫码
-			// 	uni.scanCode({
-			// 		success: function(res) {
-			// 			let url = res.result
-			// 			console.log(url)
-			// 			uni.showToast({
-			// 				title: "扫描成功",
-			// 				icon: "none",
-			// 				duration: 800,
-			// 				complete() {
-			// 					let param = {
-			// 						url: url
-			// 					}
-			// 					console.log(param.url)
-			// 					that.$u.get('/v1/qrcode/auth', param).then(ret => {
-			// 						console.log(ret.data.url)
-			// 						if (ret.data.permit) {
-			// 							if (ret.data.action == 'water') {
-			// 								setTimeout(() => {
-			// 									uni.navigateTo({
-			// 										url: "/pages/sub_index/scanView/index?url=" + ret.data.url
-			// 									})
-			// 								}, 1500)
-			// 							} else if (ret.data.action == 'dlsmkh5') {
-			// 								// #ifdef APP-PLUS
-			// 									let token = uni.getStorageSync('token')
-			// 									let wv = plus.webview.create(ret.data.url, 'webview_pay', {
-			// 										backButtonAutoControl:'close',
-			// 										additionalHttpHeaders: {
-			// 											Authorization: 'Bearer ' + token
-			// 										}
-			// 									})
-			// 									setTimeout(() => {
-			// 										wv.show()
-			// 									}, 1500)
-			// 								// #endif
-			// 								// #ifndef APP-PLUS
-			// 								uni.showToast({
-			// 									icon: "none",
-			// 									title: "只支持app端",
-			// 									duration: 1500
-			// 								})
-			// 								// #endif
-			// 							}
-			// 						} else {
-			// 							uni.showToast({
-			// 								icon: "none",
-			// 								title: "暂不支持此二维码",
-			// 								duration: 1500
-			// 							})
-			// 						}
-			// 					})
-			// 				}
-			// 			})
-			// 		}
-			// 	});
-			// 	// #endif
-			// 	// #ifdef H5
-			// 	uni.showToast({
-			// 		icon: "none",
-			// 		title: "H5不支持此功能",
-			// 		duration: 1500
-			// 	})
-			// 	// #endif
-			// },
 			getActivityList() {
 				let that = this
 				let param = [{
@@ -356,6 +274,10 @@
 		},
 		onLoad() {
 			this.getBannarList()
+			setTimeout(() => {
+				this.get_prompt()
+			}, 5 * 1000)
+			this.getActivityList()
 			// #ifdef APP-PLUS
 			//引入插件
 			const KJJPush = uni.requireNativePlugin('KJ-JPush');
diff --git a/static/css/iconfont.css b/static/css/iconfont.css
index 3568e25..e35a107 100644
--- a/static/css/iconfont.css
+++ b/static/css/iconfont.css
@@ -1,5 +1,6 @@
 @font-face {font-family: "custom-icon";
-  src:url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2')
+  src: 
+  url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2')
 }
 
 .custom-icon {
@@ -10,6 +11,10 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.custom-icon-mibao:before {
+  content: "\e6ce";
+}
+
 .custom-icon-email:before {
   content: "\e678";
 }
diff --git a/static/js/http.interceptor.js b/static/js/http.interceptor.js
index 4087b6c..0748b4b 100644
--- a/static/js/http.interceptor.js
+++ b/static/js/http.interceptor.js
@@ -2,10 +2,10 @@
 	// 此为自定义配置参数，具体参数见上方说明
 	Vue.prototype.$u.http.setConfig({
 		// baseUrl: 'https://yy.dlsmk.cn/payapi/mobileapi', // 大理智警域名 
-		baseUrl:'https://yy.dlsmk.cn/portal/mobileapi', //正式地址
+		// baseUrl:'https://yy.dlsmk.cn/portal/mobileapi', //正式地址
 		// baseUrl:'http://yy.dlsmk.cn:8080/portal/mobileapi', //测试地址
 		// baseUrl:'/api',
-		// baseUrl: "http://172.28.43.20:8089/portal/mobileapi",//本地地址
+		baseUrl: "http://172.28.43.20:8089/portal/mobileapi",//本地地址
 		// method: 'POST',
 		// 设置为json，返回后会对数据进行一次JSON.parse()
 		dataType: 'json',
@@ -32,7 +32,8 @@
 		//console.log(config.url,config.header['Authorization'])
 		config.header["X-TENANT-ID"] = tenantid;
 		if (config.url == "/i/activity" || config.url == "/v1/feedback/release" 
-		|| config.url == '/medicineapi/medicalcard/add' || config.url == '/medicalapi/pay') {
+		|| config.url == '/medicineapi/medicalcard/add' || config.url == '/medicalapi/pay'
+		||config.url == '/v1/security/save' || config.url == '/i/security/check' || config.url == '/i/security/pwdset') {
 			config.header['content-type'] = "application/json";
 		} else {
 			config.header['content-type'] = "application/x-www-form-urlencoded";
