ソースを参照

2023-12-2 跳转到争霸赛报小程序

zhiquz 1 年間 前
コミット
198451a79f

+ 2 - 0
apis/app.js

@@ -14,4 +14,6 @@ export const _API_CheckAuth = () => request.get('/QYInfo/CheckAuth') // 判断
 
 export const _API_Auth = () => request.get('/QYInfo/Auth') // 获取契约认证二维码
 
+export const getSignPackage = data => request.get('/store/get_sign_package', data) //使用微信的jsdk分享功能
+
 

+ 5 - 1
apis/zbs.js

@@ -10,4 +10,8 @@ export const _API_QuickBankPay = data => request.post('/HuiFu/QuickBankPay', dat
 
 export const _API_QuickBankSms = data => request.post('/HuiFu/QuickBankSms', data) // 携带验证码支付
 
-export const _API_CheckStatus = data => request.post('/HuiFu/CheckStatus', data) // 根据id查询支付状态
+export const _API_CheckStatus = data => request.post('/HuiFu/CheckStatus', data) // 根据id查询支付状态
+
+export const _API_UnbindBank = data => request.post('/HuiFu/UnbindBank', data) // 解绑银行
+
+export const _API_BankInfo = data => request.post('/HuiFu/BankInfo', data) // 获取银行信息

+ 1 - 0
common/util/request.js

@@ -69,6 +69,7 @@ request.interceptors.response.use((response, ...args) => { // 拦截器
 		uni.$emit('TOAST', '登录信息过期,请重新登录')
 		uni.$emit('RELAUNCH')
 	} else {
+		
 		// uni.$emit('TOAST', `网络好像出了点问题:${response.statusCode}/${args[1]}`)
 	}
 	return response

+ 5 - 5
package-lock.json

@@ -67,11 +67,11 @@
       "resolved": "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz",
       "integrity": "sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM="
     },
-    "uview-ui": {
-      "version": "2.0.31",
-      "resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.31.tgz",
-      "integrity": "sha512-I/0fGuvtiKHH/mBb864SGYk+SJ7WaF32tsBgYgeBOsxlUp+Th+Ac2tgz2cTvsQJl6eZYWsKZ3ixiSXCAcxZ8Sw=="
-    },
+	"uview-ui": {
+	  "version": "2.0.31",
+	  "resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.31.tgz",
+	  "integrity": "sha512-I/0fGuvtiKHH/mBb864SGYk+SJ7WaF32tsBgYgeBOsxlUp+Th+Ac2tgz2cTvsQJl6eZYWsKZ3ixiSXCAcxZ8Sw=="
+	},
     "vue-qr": {
       "version": "2.2.1",
       "resolved": "https://registry.npm.taobao.org/vue-qr/download/vue-qr-2.2.1.tgz",

+ 56 - 0
pages.json

@@ -399,6 +399,62 @@
 				"enablePullDownRefresh": false
 			}
 		
+		},
+		{
+			"path": "pages/zbs/unBank",
+			"style": {
+				"navigationBarTitleText": "银行卡绑定",
+				"enablePullDownRefresh": false
+			}
+		
+		},
+		{
+			"path": "pages/test/test",
+			"style": {
+				"navigationBarTitleText": "测试",
+				"enablePullDownRefresh": false
+			}
+		
+		},
+		{
+			"path": "pages/test/test1",
+			"style": {
+				"navigationBarTitleText": "测试1",
+				"enablePullDownRefresh": false
+			}
+		
+		},
+		{
+			"path": "pages/test/test2",
+			"style": {
+				"navigationBarTitleText": "测试2",
+				"enablePullDownRefresh": false
+			}
+		
+		},
+		{
+			"path": "pages/test/test3",
+			"style": {
+				"navigationBarTitleText": "测试3",
+				"enablePullDownRefresh": false
+			}
+		
+		},
+		{
+			"path": "pages/test/test4",
+			"style": {
+				"navigationBarTitleText": "测试4",
+				"enablePullDownRefresh": false
+			}
+		
+		},
+		{
+			"path": "pages/test/test5",
+			"style": {
+				"navigationBarTitleText": "测试5",
+				"enablePullDownRefresh": false
+			}
+		
 		}
 	],
 	"tabBar": {

+ 1 - 0
pages/index/index.vue

@@ -50,6 +50,7 @@
 							messageInfo = {};
 							messageVis = false;
 						"></view>
+						
 					<view class="title">公告</view>
 					<scroll-view :scroll-y="true" class="contents">{{ messageInfo.contents }}</scroll-view>
 				</view>

+ 493 - 0
pages/test/test.vue

@@ -0,0 +1,493 @@
+<template>
+	<view>
+		<view v-if="showSignup" style="padding-top: 50rpx;">
+			<view class="pay">
+				<image src="https://qnys.chuliu.cc/daweiboshi_szy/1_1615541900_nrG1vctYn8.jpg"
+					mode="widthFix" style="width: 750rpx;margin-bottom: 60rpx;"></image>
+				<view class="pay_title">
+					大卫博士学位争霸赛第43季
+				</view>
+				<view class="item">
+					<input maxlength="6" type="number" v-model="sms_code" placeholder="请输入验证码" />
+					<view v-throttle="2000" class="countdown" @tap="getCode">
+						{{ countDown ? `重新获取(${countDown}s)` : '获取验证码' }}
+					</view>
+				</view>
+				<view v-throttle="2000" class="pay_btnSig" :class="status ? 'red' : 'gray'" @click="singup">支付9.9报名</view>
+			</view>
+		</view>
+		<view v-else class="top">
+			<view class="top_flex">
+				<image src="../../static/team/green.png" mode="widthFix" style="width: 150rpx;"></image>
+				<view class="topt">
+					<view class="title">
+						报名成功!
+					</view>
+					<view class="tip">
+						感谢您的支持
+					</view>
+				</view>
+			</view>
+<!-- 			<view class="bottom">
+				<view class="bottom_box">
+					<view class="show"></view>
+					<view class="bottom-money">
+						<text>¥</text>{{ data.money }}
+					</view>
+					<view class="line" />
+					<view class="bottom-p">
+						订单编号:{{ data.pay_number }}
+					</view>
+					<view class="bottom-p">
+						支付时间:{{ data.time }}
+					</view>
+					<view class="bottom-p">
+						支付方式:银行卡支付
+					</view>
+				</view>
+			</view> -->
+			<!-- 公众号跳转小程序 -->
+			<view class="ceshi" v-html="html"></view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import { getSignPackage } from '@/apis/app.js';
+	import { _API_HuiFuCheck, _API_QuickBankPay, _API_QuickBankSms, _API_CheckStatus } from '../../apis/zbs.js';
+	const jweixin = require('jweixin-module');
+	export default {
+		data() {
+			return {
+				status: true,
+				data: {},
+				showSignup: false,
+				countDown: 0, // 倒计时,
+				sms_code: '', // 验证码,
+				id: '',
+				payId: '',
+				html: ''
+			}
+		},
+		onShow() {
+			// this.getData()
+		},
+		computed: {
+			userinfo() {
+				return this.$store.state.userinfo
+			}
+		},
+		onReady() {
+			this.signInit();
+			// 微信 config 信息验证后,渲染开放标签
+			uni.$on('jweixinReady', () => {
+				console.log('完成')
+				this.init()
+			})
+		},
+		methods: {
+			//进入争霸赛按钮
+			init() {
+				this.html =
+				`<wx-open-launch-weapp
+				    id="launch-btn"
+				    username="gh_170e5722c167"
+				    path="pages/index/index"
+				>
+				    <template>
+				        <style>
+							.link_btn {
+								width: 400rpx;
+								margin: 600rpx auto 0;
+								height: 88rpx;
+								background: linear-gradient(88deg, #5FBC23 0%, #85CE52 100%);
+								opacity: 1;
+								border-radius: 44rpx;
+								color: #fff;
+								text-align: center;
+								line-height: 88rpx;
+								font-size: 32rpx;
+							}
+						</style>
+				        <div class="link_btn">前往争霸赛小程序下</div>
+				    </template>
+				</wx-open-launch-weapp>`
+					
+			},
+			//进入争霸赛小程序
+			signInit() {
+				const _this = this;
+				let link = window.location.href;
+				getSignPackage({
+					url: link
+				}).then(res => {
+					if (res.code == 200) {
+						let data = JSON.parse(res.data);
+						// 判断是否支持分享
+						jweixin.config({
+							debug: false, //开启debug模式.正式环境设置为false,测试环境设置为true
+							appId: data.appId,
+							timestamp: data.timestamp,
+							nonceStr: data.nonceStr,
+							signature: data.signature,
+							jsApiList: ['wx-open-launch-weapp'], //根据需要看需要哪些SDK的功能
+							openTagList: ['wx-open-launch-weapp'] // 跳转小程序时必填
+						});
+						jweixin.ready(res => {
+							uni.showToast({
+								title: '获取成功',
+							})
+							uni.$emit('jweixinReady', res)
+							this.$nextTick(() => {
+								let btn = document.getElementById('launch-btn');
+								btn.addEventListener('launch', e => {
+									console.log('success');
+								});
+								btn.addEventListener('error', e => {
+									alert('小程序打开失败');
+									console.log('fail', e.detail);
+								});
+							});
+						});
+			
+						jweixin.error(err => {
+							uni.showToast({
+								title: '获取失败',
+							})
+							console.log(err, 'err')
+							uni.showModal({
+								content: err || '失败',
+								showCancel: false
+							})
+						});
+					} else {
+						uni.showModal({
+							content: res.msg || '分享失败',
+							showCancel: false
+						})
+					}
+				});
+			},
+			// 查询报名信息
+			getData() {
+				_API_HuiFuCheck().then(res => {
+					if (res.code == 200) {
+						this.id = res.data.id
+						if (res.data.status) {
+							this.showSignup = false
+							this.data = res.data
+						}
+					} else if (res.code == 50014) {
+						uni.showModal({
+							title: '提示',
+							content: '检测到您还未绑定银行卡,请前往绑定',
+							showCancel: false,
+							success: (res) => {
+								if (res.confirm) {
+									uni.redirectTo({
+										url: './form'
+									})
+								}
+							}
+						})
+						return
+					} else {
+						uni.showModal({
+							content: res.message || '获取验证码失败',
+							showCancel: false
+						});
+						return false;
+					}
+				})
+			},
+			// 1.发送验证码
+			getCode() {
+				let that = this
+				_API_QuickBankPay({ id: this.id }).then(res => {
+					if (res.code == 200) {
+						uni.showModal({
+							content: '验证码发送成功',
+							showCancel: false,
+							success: (e) => {
+								if (e.confirm) {
+									that.payId = res.data.id
+									that.countDown = 180;
+									that.timer = setInterval(() => {
+										that.countDown--;
+										if (!that.countDown) {
+											that.countDown = 0;
+											clearInterval(that.timer);
+										}
+									}, 1000);
+								}
+							}
+						})
+					} else {
+						uni.showModal({
+							content: res.message || '获取验证码失败',
+							showCancel: false
+						});
+						return false;
+					}
+				})
+			},
+			// 2. 携带验证码支付
+			singup() {
+				let that = this
+				if (!this.sms_code) {
+					uni.showModal({
+						content: '请先输入验证码',
+						showCancel: false
+					})
+					return
+				}
+				uni.showModal({
+					title: '提示',
+					content: '确定要支付吗?',
+					success: (res) => {
+						if (res.confirm) {
+							_API_QuickBankSms({ id: that.payId, sms_code: that.sms_code }).then(res => {
+								if (res.code == 200) {
+									if (res.data.status == 0) {
+										that.SearchStatus()
+									} else if (res.data.status == 1) {
+										that.showSignup = false
+									}
+								} else {
+									uni.showModal({
+										title: '失败',
+										content: res.message || '获取失败',
+										showCancel: false
+									})
+									return false;
+								}
+							})
+								.catch(err => {})
+								.finally(() => {
+									setTimeout(() => {}, 3000)
+								})
+						}
+					}
+				})
+			},
+			// 3. 查询支付状态
+			SearchStatus() {
+				let that = this
+				uni.showLoading({
+				    title: '查询支付状态中...',
+				    mask: true
+				});
+				_API_CheckStatus({ id: this.payId }).then(res => {
+					if (res.code == 200) {
+						if (res.data.status == 1) {
+							uni.hideLoading()
+							that.getData()
+							that.showSignup = false
+						} else {
+							that.SearchStatus()
+						}
+					} else {
+						uni.hideLoading()
+						uni.showModal({
+							content: res.message || '查询失败',
+							showCancel: false
+						})
+					}
+				}).catch(err => {
+					uni.hideLoading()
+					uni.showModal({
+						content: err || '查询失败',
+						showCancel: false
+					})
+				})
+			}
+		}
+	}
+</script>
+<style>
+	page {
+		background-color: #F5F5F5;
+	}
+</style>
+<style lang="scss" scoped>
+	.link_btn {
+		width: 400rpx;
+		margin: 600rpx auto 0;
+		height: 88rpx;
+		background: linear-gradient(88deg, #5FBC23 0%, #85CE52 100%);
+		opacity: 1;
+		border-radius: 44rpx;
+		color: #fff;
+		text-align: center;
+		line-height: 88rpx;
+		font-size: 32rpx;
+	}
+	.pay {
+		margin: 0 30rpx 0 30rpx;
+		border-radius: 16rpx;
+		background-color: #fff;
+		padding: 40rpx 20rpx 40rpx 20rpx;
+		&_title {
+			font-size: 34rpx;
+			font-weight: bold;
+		}
+		
+		&_time {
+			margin-top: 20rpx;
+			font-size: 32rpx;
+		}
+		
+		&_btnSig {
+			margin: 50rpx auto 0;
+			width: 600rpx;
+			line-height: 88rpx;
+			border-radius: 44rpx;
+			text-align: center;
+			color: #fff;
+			font-size: 32rpx;
+		}
+		.red {
+			background: linear-gradient(93deg, #FF232C 0%, #FF571B 100%);
+		}
+		.gray {
+			background-color: #E1E1E1;
+		}
+	}
+	.item {
+		@include flex();
+		height: 104rpx;
+		box-sizing: border-box;
+		color: $app-sec-text-color;
+		background: #F8F8F8;
+		margin: 50rpx 0 40rpx 0;
+		border-radius: 8rpx;
+		padding-left: 24rpx;
+	
+	
+	
+		.login_icon {
+			width: 36rpx;
+			height: 44rpx;
+		}
+	
+		.icon,
+		.cuIcon-roundclosefill {
+			margin: 0 20rpx;
+			font-size: 36rpx;
+		}
+	
+		input {
+			flex: 1;
+			height: 104rpx;
+			margin-left: 15rpx;
+		}
+	
+		.countdown {
+			@include flex();
+			height: 60rpx;
+			font-size: 24rpx;
+			padding: 0 20rpx;
+			border: 2rpx solid #FB231F;
+			margin-right: 20rpx;
+			border-radius: 33rpx;
+			color: $base-color;
+	
+			text {
+				margin-left: 8rpx;
+			}
+		}
+	}
+	.top {
+		width: 100%;
+		height: 340rpx;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		background: linear-gradient(88deg, #72DB2E 0%, #92E25A 100%);
+		&_flex {
+			display: flex;
+			align-items: center;
+			margin-top: 40rpx;
+			.topt {
+				color: #fff;
+				margin-left: 24rpx;
+				.title {
+					font-size: 38rpx;
+					font-weight: bold;
+					color: #fff;
+				}
+				.tip {
+					font-size: 28rpx;
+					color: #fff;
+					margin-top: 10rpx;
+				}
+			}
+		}
+		.bottom {
+			width: 750rpx;
+			height: 28rpx;
+			border-radius: 490rpx;
+			margin-top: 42rpx;
+			position: relative;
+			background: #419F05;
+			&_box {
+				// width: 702rpx;
+				width: 94%;
+				// height: 300rpx;
+				background-color: #fff;
+				position: absolute;
+				left: 24rpx;
+				top: 14rpx;
+				padding-bottom: 16rpx;
+				.tip {
+					margin-top: 30rpx;
+					padding: 0 24rpx;
+					margin-bottom: 150rpx;
+					.tipTitle {
+						font-size: 36rpx;
+						font-weight: bold;
+						color: #333;
+						margin-bottom: 14rpx;
+					}
+				}
+				.show {
+					width: 100%;
+					height: 38rpx;
+					background: linear-gradient(180deg, #419F05 0%, rgba(65, 159, 5, 0) 100%);
+					opacity: 0.49;
+				}
+			}
+			&-money {
+				text-align: center;
+				font-size: 72rpx;
+				font-family: PingFang SC, PingFang SC;
+				font-weight: bold;
+				color: #77C740;
+				line-height: 100rpx;
+				padding: 10rpx 0 48rpx 0;
+				text {
+					font-size: 40rpx;
+					font-family: PingFang SC, PingFang SC;
+					font-weight: bold;
+					color: #77C740;
+				}
+			}
+			.line {
+				margin: 0 auto;
+				width: 654rpx;
+				height: 0px;
+				opacity: 1;
+				border: 2rpx dashed #EEEEEE;
+				margin-bottom: 40rpx;
+			}
+			&-p {
+				font-size: 32rpx;
+				font-family: PingFang SC, PingFang SC;
+				font-weight: 400;
+				color: #333333;
+				padding: 0 24rpx;
+				margin-bottom: 24rpx;
+			}
+		}
+	}
+</style>

+ 297 - 0
pages/test/test1.vue

@@ -0,0 +1,297 @@
+<template>
+	<view>
+			<!-- 公众号跳转小程序 -->
+			 <view style="padding: 100rpx">
+			    <wx-open-launch-weapp
+			        id="launch-btn"
+			        username="gh_170e5722c167"
+					appid="wxa9d1325fd98f5a7d"
+			        path="pages/index/index"
+			    >
+			        <script type="text/wxtag-template">
+			            <style>
+							.link_btn {
+								width: 400rpx;
+								/* margin: 600rpx auto 0; */
+								height: 88rpx;
+								background: linear-gradient(88deg, #5FBC23 0%, #85CE52 100%);
+								opacity: 1;
+								border-radius: 44rpx;
+								color: #fff;
+								text-align: center;
+								line-height: 88rpx;
+								font-size: 50rpx;
+							}
+						</style>
+			            <div class="link_btn">前往争霸赛小程序</div>
+			        </script>
+			    </wx-open-launch-weapp>
+			  </view>
+	</view>
+</template>
+
+<script>
+	import { getSignPackage } from '@/apis/app.js';
+	const jweixin = require('jweixin-module');
+	export default {
+		data() {
+			return {
+				html: ''
+			}
+		},
+		onReady() {
+			this.signInit();
+			// 微信 config 信息验证后,渲染开放标签
+			uni.$on('jweixinReady', () => {
+			})
+		},
+		methods: {
+			//进入争霸赛小程序
+			signInit() {
+				const _this = this;
+				let link = window.location.href;
+				getSignPackage({
+					url: link
+				}).then(res => {
+					if (res.code == 200) {
+						let data = JSON.parse(res.data);
+						// 判断是否支持分享
+						jweixin.config({
+							debug: false, //开启debug模式.正式环境设置为false,测试环境设置为true
+							appId: data.appId,
+							timestamp: data.timestamp,
+							nonceStr: data.nonceStr,
+							signature: data.signature,
+							jsApiList: ['wx-open-launch-weapp'], //根据需要看需要哪些SDK的功能
+							openTagList: ['wx-open-launch-weapp'] // 跳转小程序时必填
+						});
+						jweixin.ready(res => {
+							uni.showToast({
+								title: '获取成功',
+							})
+							uni.$emit('jweixinReady', res)
+							this.$nextTick(() => {
+								let btn = document.getElementById('launch-btn');
+								btn.addEventListener('launch', e => {
+									uni.showToast({
+										title: '小程序打开成功',
+									})
+									console.log('success');
+								});
+								btn.addEventListener('error', e => {
+									uni.showToast({
+										title: '小程序打开失败',
+									})
+									console.log('fail', e.detail);
+								});
+							});
+						});
+			
+						jweixin.error(err => {
+							uni.showToast({
+								title: '获取失败',
+							})
+							console.log(err, 'err')
+							uni.showModal({
+								content: err || '失败',
+								showCancel: false
+							})
+						});
+					} else {
+						uni.showModal({
+							content: res.msg || '分享失败',
+							showCancel: false
+						})
+					}
+				});
+			},
+		}
+	}
+</script>
+<style>
+	page {
+		background-color: #F5F5F5;
+	}
+</style>
+<style lang="scss" scoped>
+	.link_btn {
+		width: 400rpx;
+		margin: 600rpx auto 0;
+		height: 88rpx;
+		background: linear-gradient(88deg, #5FBC23 0%, #85CE52 100%);
+		opacity: 1;
+		border-radius: 44rpx;
+		color: #fff;
+		text-align: center;
+		line-height: 88rpx;
+		font-size: 32rpx;
+	}
+	.pay {
+		margin: 0 30rpx 0 30rpx;
+		border-radius: 16rpx;
+		background-color: #fff;
+		padding: 40rpx 20rpx 40rpx 20rpx;
+		&_title {
+			font-size: 34rpx;
+			font-weight: bold;
+		}
+		
+		&_time {
+			margin-top: 20rpx;
+			font-size: 32rpx;
+		}
+		
+		&_btnSig {
+			margin: 50rpx auto 0;
+			width: 600rpx;
+			line-height: 88rpx;
+			border-radius: 44rpx;
+			text-align: center;
+			color: #fff;
+			font-size: 32rpx;
+		}
+		.red {
+			background: linear-gradient(93deg, #FF232C 0%, #FF571B 100%);
+		}
+		.gray {
+			background-color: #E1E1E1;
+		}
+	}
+	.item {
+		@include flex();
+		height: 104rpx;
+		box-sizing: border-box;
+		color: $app-sec-text-color;
+		background: #F8F8F8;
+		margin: 50rpx 0 40rpx 0;
+		border-radius: 8rpx;
+		padding-left: 24rpx;
+	
+	
+	
+		.login_icon {
+			width: 36rpx;
+			height: 44rpx;
+		}
+	
+		.icon,
+		.cuIcon-roundclosefill {
+			margin: 0 20rpx;
+			font-size: 36rpx;
+		}
+	
+		input {
+			flex: 1;
+			height: 104rpx;
+			margin-left: 15rpx;
+		}
+	
+		.countdown {
+			@include flex();
+			height: 60rpx;
+			font-size: 24rpx;
+			padding: 0 20rpx;
+			border: 2rpx solid #FB231F;
+			margin-right: 20rpx;
+			border-radius: 33rpx;
+			color: $base-color;
+	
+			text {
+				margin-left: 8rpx;
+			}
+		}
+	}
+	.top {
+		width: 100%;
+		height: 340rpx;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		background: linear-gradient(88deg, #72DB2E 0%, #92E25A 100%);
+		&_flex {
+			display: flex;
+			align-items: center;
+			margin-top: 40rpx;
+			.topt {
+				color: #fff;
+				margin-left: 24rpx;
+				.title {
+					font-size: 38rpx;
+					font-weight: bold;
+					color: #fff;
+				}
+				.tip {
+					font-size: 28rpx;
+					color: #fff;
+					margin-top: 10rpx;
+				}
+			}
+		}
+		.bottom {
+			width: 750rpx;
+			height: 28rpx;
+			border-radius: 490rpx;
+			margin-top: 42rpx;
+			position: relative;
+			background: #419F05;
+			&_box {
+				// width: 702rpx;
+				width: 94%;
+				// height: 300rpx;
+				background-color: #fff;
+				position: absolute;
+				left: 24rpx;
+				top: 14rpx;
+				padding-bottom: 16rpx;
+				.tip {
+					margin-top: 30rpx;
+					padding: 0 24rpx;
+					margin-bottom: 150rpx;
+					.tipTitle {
+						font-size: 36rpx;
+						font-weight: bold;
+						color: #333;
+						margin-bottom: 14rpx;
+					}
+				}
+				.show {
+					width: 100%;
+					height: 38rpx;
+					background: linear-gradient(180deg, #419F05 0%, rgba(65, 159, 5, 0) 100%);
+					opacity: 0.49;
+				}
+			}
+			&-money {
+				text-align: center;
+				font-size: 72rpx;
+				font-family: PingFang SC, PingFang SC;
+				font-weight: bold;
+				color: #77C740;
+				line-height: 100rpx;
+				padding: 10rpx 0 48rpx 0;
+				text {
+					font-size: 40rpx;
+					font-family: PingFang SC, PingFang SC;
+					font-weight: bold;
+					color: #77C740;
+				}
+			}
+			.line {
+				margin: 0 auto;
+				width: 654rpx;
+				height: 0px;
+				opacity: 1;
+				border: 2rpx dashed #EEEEEE;
+				margin-bottom: 40rpx;
+			}
+			&-p {
+				font-size: 32rpx;
+				font-family: PingFang SC, PingFang SC;
+				font-weight: 400;
+				color: #333333;
+				padding: 0 24rpx;
+				margin-bottom: 24rpx;
+			}
+		}
+	}
+</style>

+ 116 - 0
pages/test/test2.vue

@@ -0,0 +1,116 @@
+<template>
+	<view>
+		<view  class="container" v-html="html"></view>
+	</view>
+</template>
+
+<script>
+	import { getSignPackage } from '@/apis/app.js';
+	const jweixin = require('jweixin-module');
+	export default {
+		data() {
+			return {
+				html: '',
+				username: 'gh_170e5722c167',
+				path: 'pages/index/index', //争霸赛小程序初始进入路径
+			}
+		},
+		onReady() {
+			this.signInit();
+			// 微信 config 信息验证后,渲染开放标签
+			uni.$on('jweixinReady', () => {
+				this.init()
+				console.log(111)
+			})
+		},
+		methods: {
+			//进入争霸赛按钮
+			init() {
+				this.html =
+					`<wx-open-launch-weapp id="launch-btn" username="${this.username}" path="${this.path}">  
+							        <template>  
+							            <style>  
+										   .open_img {
+												width:50px;
+												height:50px;
+												color: #f30;
+										   } 
+							            </style> 
+										<div class="open_img">测试</div>
+							        </template>  
+							    </wx-open-launch-weapp>`;
+					console.log('html', this.html)
+			},
+			//进入争霸赛小程序
+			signInit() {
+				const _this = this;
+				let link = window.location.href;
+				getSignPackage({
+					url: link
+				}).then(res => {
+					if (res.code == 200) {
+						let data = JSON.parse(res.data);
+						// 判断是否支持分享
+						jweixin.config({
+							debug: false, //开启debug模式.正式环境设置为false,测试环境设置为true
+							appId: data.appId,
+							timestamp: data.timestamp,
+							nonceStr: data.nonceStr,
+							signature: data.signature,
+							jsApiList: ['wx-open-launch-weapp'], //根据需要看需要哪些SDK的功能
+							openTagList: ['wx-open-launch-weapp'] // 跳转小程序时必填
+						});
+						jweixin.ready(res => {
+							uni.showToast({
+								title: '获取成功',
+							})
+							uni.$emit('jweixinReady', res)
+							this.$nextTick(() => {
+								uni.showToast({
+									title: '拿到了',
+								})
+								let btn = document.getElementById('launch-btn');
+								btn.addEventListener('launch', e => {
+									uni.showToast({
+										title: '小程序打开成功',
+									})
+									console.log('success');
+								});
+								btn.addEventListener('error', e => {
+									uni.showToast({
+										title: '小程序打开失败',
+									})
+									console.log('fail', e.detail);
+								});
+							});
+						});
+			
+						jweixin.error(err => {
+							uni.showToast({
+								title: '获取失败',
+							})
+							console.log(err, 'err')
+							uni.showModal({
+								content: err || '失败',
+								showCancel: false
+							})
+						});
+					} else {
+						uni.showModal({
+							content: res.msg || '分享失败',
+							showCancel: false
+						})
+					}
+				});
+			},
+		}
+	}
+</script>
+<style>
+	page {
+		background-color: #F5F5F5;
+	}
+</style>
+<style lang="scss" scoped>
+	
+</style>

+ 135 - 0
pages/test/test3.vue

@@ -0,0 +1,135 @@
+<template>
+	<view class="container" v-html="html"></view>
+</template>
+
+<script>
+	import { getSignPackage } from '@/apis/app.js';
+	export default {
+		name: 'ShareIndex',
+		data() {
+			return {
+				html: '',
+				username: 'gh_170e5722c167',
+				path: 'pages/index/index', //争霸赛小程序初始进入路径
+			}
+		},
+		onReady() {
+			this.signInit();
+			// 微信 config 信息验证后,渲染开放标签
+			uni.$on('jweixinReady', () => {
+				this.init()
+			})
+		},
+		methods: {
+			//进入争霸赛按钮
+			init() {
+				this.html =
+					`<wx-open-launch-weapp id="launch-btn" username="${this.username}" path="${this.path}">  
+							        <template>  
+							            <style>  
+										   .open_img {
+												width:50px;
+												height:50px;
+												color: #f30;
+										   } 
+							            </style> 
+										<div class="open_img">测试</div>
+							        </template>  
+							    </wx-open-launch-weapp>`;
+					console.log('html', this.html)
+			},
+			//进入争霸赛小程序
+			signInit() {
+				let script = document.createElement('script')
+				script.type = 'text/javascript'
+				script.src = 'https://res.wx.qq.com/open/js/jweixin-1.6.0.js'
+				document.getElementsByTagName('head')[0].appendChild(script)
+				let _this = this;
+				let link = window.location.href;
+				getSignPackage({
+					url: link
+				}).then(res => {
+					if (res.code == 200) {
+						let data = JSON.parse(res.data);
+						// 判断是否支持分享
+						wx.config({
+							debug: false, //开启debug模式.正式环境设置为false,测试环境设置为true
+							appId: data.appId,
+							timestamp: data.timestamp,
+							nonceStr: data.nonceStr,
+							signature: data.signature,
+							jsApiList: ['wx-open-launch-weapp'], //根据需要看需要哪些SDK的功能
+							openTagList: ['wx-open-launch-weapp'] // 跳转小程序时必填
+						});
+						wx.ready(() => {
+							uni.showToast({
+								title: '获取成功',
+							})
+							uni.$emit('jweixinReady', res)
+							this.$nextTick(() => {
+								uni.showToast({
+									title: '拿到了',
+								})
+								let btn = document.getElementById('launch-btn');
+								btn.addEventListener('launch', e => {
+									uni.showToast({
+										title: '小程序打开成功',
+									})
+									console.log('success');
+								});
+								btn.addEventListener('error', e => {
+									uni.showToast({
+										title: '小程序打开失败',
+									})
+									console.log('fail', e.detail);
+								});
+							});
+						})
+						wx.error(err => {
+							uni.showToast({
+								title: '获取失败',
+							})
+							console.log(err, 'err')
+							uni.showModal({
+								content: err || '失败',
+								showCancel: false
+							})
+						});
+					} else {
+						uni.showModal({
+							content: res.msg || '分享失败',
+							showCancel: false
+						})
+					}
+				});
+			},
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	#share_container {
+		width: 100%;
+		height: 100%;
+		display: flex;
+		justify-content: space-between;
+		flex-direction: column;
+	}
+	#imgWrapper {
+		flex: 1;
+		@include flex();
+		.showCan {
+			width: 680rpx;
+			height: 960rpx;
+			border-radius: 14rpx;
+			box-shadow:0px 0px 23px 2px rgba(194,133,58,0.5);
+		}
+	}
+	.sharetext {
+		font-size: 80rpx;
+		text-align: center;
+		margin: 8rpx 0;
+		box-sizing: border-box;
+		padding: 30rpx 24rpx;
+	}
+</style>

+ 143 - 0
pages/test/test4.vue

@@ -0,0 +1,143 @@
+<template>
+	<view style="padding: 100rpx">
+	   <wx-open-launch-weapp
+	       id="launch-btn"
+	       username="gh_170e5722c167"
+	       path="pages/index/index"
+	   >
+	       <script type="text/wxtag-template">
+	           <style>
+								.link_btn {
+									width: 400rpx;
+									/* margin: 600rpx auto 0; */
+									height: 88rpx;
+									background: linear-gradient(88deg, #5FBC23 0%, #85CE52 100%);
+									opacity: 1;
+									border-radius: 44rpx;
+									color: #fff;
+									text-align: center;
+									line-height: 88rpx;
+									font-size: 50rpx;
+								}
+							</style>
+	           <div class="link_btn">前往争霸赛小程序</div>
+	       </script>
+	   </wx-open-launch-weapp>
+	 </view>
+</template>
+
+<script>
+	import { getSignPackage } from '@/apis/app.js';
+
+	export default {
+		name: 'ShareIndex',
+		data() {
+			return {
+				html: '',
+				username: 'gh_170e5722c167',
+				path: 'pages/index/index', //争霸赛小程序初始进入路径
+			}
+		},
+		onReady() {
+			this.signInit();
+			// 微信 config 信息验证后,渲染开放标签
+			uni.$on('jweixinReady', () => {
+				// this.init()
+			})
+		},
+		methods: {
+			//进入争霸赛小程序
+			signInit() {
+				const script = document.createElement('script')
+				script.type = 'text/javascript'
+				script.src = 'https://res.wx.qq.com/open/js/jweixin-1.6.0.js'
+				document.getElementsByTagName('head')[0].appendChild(script)
+				const _this = this;
+				let link = window.location.href;
+				getSignPackage({
+					url: link
+				}).then(res => {
+					if (res.code == 200) {
+						let data = JSON.parse(res.data);
+						// 判断是否支持分享
+						wx.config({
+							debug: false, //开启debug模式.正式环境设置为false,测试环境设置为true
+							appId: data.appId,
+							timestamp: data.timestamp,
+							nonceStr: data.nonceStr,
+							signature: data.signature,
+							jsApiList: ['wx-open-launch-weapp'], //根据需要看需要哪些SDK的功能
+							openTagList: ['wx-open-launch-weapp'] // 跳转小程序时必填
+						});
+						wx.ready(() => {
+							uni.showToast({
+								title: '获取成功',
+							})
+							uni.$emit('jweixinReady', res)
+							this.$nextTick(() => {
+								uni.showToast({
+									title: '拿到了',
+								})
+								let btn = document.getElementById('launch-btn');
+								btn.addEventListener('launch', e => {
+									uni.showToast({
+										title: '小程序打开成功',
+									})
+									console.log('success');
+								});
+								btn.addEventListener('error', e => {
+									uni.showToast({
+										title: '小程序打开失败',
+									})
+									console.log('fail', e.detail);
+								});
+							});
+						})
+						wx.error(err => {
+							uni.showToast({
+								title: '获取失败',
+							})
+							console.log(err, 'err')
+							uni.showModal({
+								content: err || '失败',
+								showCancel: false
+							})
+						});
+					} else {
+						uni.showModal({
+							content: res.msg || '分享失败',
+							showCancel: false
+						})
+					}
+				});
+			},
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	#share_container {
+		width: 100%;
+		height: 100%;
+		display: flex;
+		justify-content: space-between;
+		flex-direction: column;
+	}
+	#imgWrapper {
+		flex: 1;
+		@include flex();
+		.showCan {
+			width: 680rpx;
+			height: 960rpx;
+			border-radius: 14rpx;
+			box-shadow:0px 0px 23px 2px rgba(194,133,58,0.5);
+		}
+	}
+	.sharetext {
+		font-size: 80rpx;
+		text-align: center;
+		margin: 8rpx 0;
+		box-sizing: border-box;
+		padding: 30rpx 24rpx;
+	}
+</style>

+ 116 - 0
pages/test/test5.vue

@@ -0,0 +1,116 @@
+<template>
+	<view class="link_btn">
+	   <wx-open-launch-weapp
+	       id="launch-btn"
+	       username="gh_170e5722c167"
+	       path="pages/index/index"
+	   >
+	       <script type="text/wxtag-template">
+	           <div style="width: 400rpx">前往争霸赛小程序</div>
+	       </script>
+	   </wx-open-launch-weapp>
+	 </view>
+</template>
+
+<script>
+	import { getSignPackage } from '@/apis/app.js';
+	export default {
+		name: 'ShareIndex',
+		data() {
+			return {
+				html: '',
+				username: 'gh_170e5722c167',
+				path: 'pages/index/index', //争霸赛小程序初始进入路径
+			}
+		},
+		onReady() {
+			this.signInit();
+			// 微信 config 信息验证后,渲染开放标签
+			uni.$on('jweixinReady', () => {
+				// this.init()
+			})
+		},
+		methods: {
+			//进入争霸赛小程序
+			signInit() {
+				const script = document.createElement('script')
+				script.type = 'text/javascript'
+				script.src = 'https://res.wx.qq.com/open/js/jweixin-1.6.0.js'
+				document.getElementsByTagName('head')[0].appendChild(script)
+				const _this = this;
+				let link = window.location.href;
+				getSignPackage({
+					url: link
+				}).then(res => {
+					if (res.code == 200) {
+						let data = JSON.parse(res.data);
+						// 判断是否支持分享
+						wx.config({
+							debug: false, //开启debug模式.正式环境设置为false,测试环境设置为true
+							appId: data.appId,
+							timestamp: data.timestamp,
+							nonceStr: data.nonceStr,
+							signature: data.signature,
+							jsApiList: ['wx-open-launch-weapp'], //根据需要看需要哪些SDK的功能
+							openTagList: ['wx-open-launch-weapp'] // 跳转小程序时必填
+						});
+						wx.ready(() => {
+							uni.showToast({
+								title: '获取成功',
+							})
+							uni.$emit('jweixinReady', res)
+							this.$nextTick(() => {
+								uni.showToast({
+									title: '拿到了',
+								})
+								let btn = document.getElementById('launch-btn');
+								btn.addEventListener('launch', e => {
+									uni.showToast({
+										title: '小程序打开成功',
+									})
+									console.log('success');
+								});
+								btn.addEventListener('error', e => {
+									uni.showToast({
+										title: '小程序打开失败',
+									})
+									console.log('fail', e.detail);
+								});
+							});
+						})
+						wx.error(err => {
+							uni.showToast({
+								title: '获取失败',
+							})
+							console.log(err, 'err')
+							uni.showModal({
+								content: err || '失败',
+								showCancel: false
+							})
+						});
+					} else {
+						uni.showModal({
+							content: res.msg || '分享失败',
+							showCancel: false
+						})
+					}
+				});
+			},
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.link_btn {
+		width: 400rpx;
+		margin: 600rpx auto 0;
+		height: 88rpx;
+		background: linear-gradient(88deg, #5FBC23 0%, #85CE52 100%);
+		opacity: 1;
+		border-radius: 44rpx;
+		color: #fff;
+		text-align: center;
+		line-height: 88rpx;
+		font-size: 50rpx;
+	}
+</style>

+ 136 - 2
pages/zbs/detail.vue

@@ -15,6 +15,9 @@
 				</view>
 				<view v-throttle="2000" class="pay_btnSig" :class="status ? 'red' : 'gray'" @click="singup">支付9.9报名</view>
 			</view>
+			<view v-show="showBank" class="payB" @click="goUnbank">
+				支付不了,重新绑定?
+			</view>
 		</view>
 		<view v-else class="top">
 			<view class="top_flex">
@@ -46,12 +49,40 @@
 					</view>
 				</view>
 			</view>
+			<!-- 公众号跳转小程序 -->
+			<!-- <div class="wx-open-weapp">
+			    <wx-open-launch-weapp
+			        id="launch-btn"
+			        username="gh_xxxxxxxx"
+			        :path="`pages/home/index.html?user=123&action=abc`"
+			    >
+			        <script type="text/wxtag-template">
+			            <style>
+							.link_btn {
+								width: 400rpx;
+								margin: 600rpx auto 0;
+								height: 88rpx;
+								background: linear-gradient(88deg, #5FBC23 0%, #85CE52 100%);
+								opacity: 1;
+								border-radius: 44rpx;
+								color: #fff;
+								text-align: center;
+								line-height: 88rpx;
+								font-size: 32rpx;
+							}
+						</style>
+			            <div class="link_btn">前往争霸赛小程序</div>
+			        </script>
+			    </wx-open-launch-weapp>
+			  </div> -->
 		</view>
 	</view>
 </template>
 
 <script>
+	import { getSignPackage } from '@/apis/app.js';
 	import { _API_HuiFuCheck, _API_QuickBankPay, _API_QuickBankSms, _API_CheckStatus } from '../../apis/zbs.js';
+	const jweixin = require('jweixin-module');
 	export default {
 		data() {
 			return {
@@ -61,7 +92,8 @@
 				countDown: 0, // 倒计时,
 				sms_code: '', // 验证码,
 				id: '',
-				payId: ''
+				payId: '',
+				showBank: false
 			}
 		},
 		onShow() {
@@ -72,12 +104,72 @@
 				return this.$store.state.userinfo
 			}
 		},
+		// onReady() {
+		// 	this.signInit();
+		// 	// 微信 config 信息验证后,渲染开放标签
+		// 	uni.$on('jweixinReady', () => {
+		// 		console.log('完成')
+		// 	})
+		// },
 		methods: {
+			// 去重新绑定
+			goUnbank() {
+				uni.navigateTo({
+					url: './unBank'
+				})
+			},
+			//进入争霸赛小程序
+			signInit() {
+				const _this = this;
+				let link = window.location.href;
+				getSignPackage({
+					url: link
+				}).then(res => {
+					if (res.code == 200) {
+						let data = JSON.parse(res.data);
+						// 判断是否支持分享
+						jweixin.config({
+							debug: false, //开启debug模式.正式环境设置为false,测试环境设置为true
+							appId: data.appId,
+							timestamp: data.timestamp,
+							nonceStr: data.nonceStr,
+							signature: data.signature,
+							jsApiList: ['wx-open-launch-weapp'], //根据需要看需要哪些SDK的功能
+							openTagList: ['wx-open-launch-weapp'] // 跳转小程序时必填
+						});
+						jweixin.ready(res => {
+							uni.$emit('jweixinReady', res)
+							this.$nextTick(() => {
+								let btn = document.getElementById('launch-btn');
+								btn.addEventListener('launch', e => {
+									console.log('success');
+								});
+								btn.addEventListener('error', e => {
+									alert('小程序打开失败');
+									console.log('fail', e.detail);
+								});
+							});
+						});
+			
+						jweixin.error(err => {
+							console.log(err, 'err')
+						});
+					} else {
+						uni.showModal({
+							content: res.msg || '分享失败',
+							showCancel: false
+						})
+					}
+				});
+			},
 			// 查询报名信息
 			getData() {
+				uni.showLoading()
 				_API_HuiFuCheck().then(res => {
+					uni.hideLoading()
 					if (res.code == 200) {
 						this.id = res.data.id
+						this.showBank = true
 						if (res.data.status) {
 							this.showSignup = false
 							this.data = res.data
@@ -98,7 +190,7 @@
 						return
 					} else {
 						uni.showModal({
-							content: res.message || '获取验证码失败',
+							content: res.message || '获取失败',
 							showCancel: false
 						});
 						return false;
@@ -215,6 +307,48 @@
 	}
 </style>
 <style lang="scss" scoped>
+	.bank {
+		border-radius: 16rpx;
+		margin: 30rpx 30rpx 0 30rpx;
+		background-color: #fff;
+		// border: 2rpx dashed #FF232C;
+		padding: 24rpx;
+		font-size: 28rpx;
+		&_name {
+			// text-align: center;
+			font-weight: bold;
+			font-size: 32rpx;
+			margin-bottom: 20rpx;
+		}
+		&_btn {
+			margin: 50rpx auto 0;
+			width: 600rpx;
+			line-height: 88rpx;
+			border-radius: 44rpx;
+			text-align: center;
+			color: #FF232C;
+			font-size: 32rpx;
+			border: 2rpx solid #FF232C;
+		}
+	}
+	.link_btn {
+		width: 400rpx;
+		margin: 600rpx auto 0;
+		height: 88rpx;
+		background: linear-gradient(88deg, #5FBC23 0%, #85CE52 100%);
+		opacity: 1;
+		border-radius: 44rpx;
+		color: #fff;
+		text-align: center;
+		line-height: 88rpx;
+		font-size: 32rpx;
+	}
+	.payB {
+		margin-top: 30rpx;
+		text-align: center;
+		color: #FF232C;
+		font-weight: bold;
+	}
 	.pay {
 		margin: 0 30rpx 0 30rpx;
 		border-radius: 16rpx;

+ 1 - 1
pages/zbs/form.vue

@@ -104,7 +104,7 @@
 					<view class="inp flexB">
 						<input type="text" placeholder="请输入验证码" maxlength="6" placeholder-style="font-size:28rpx;color:#999"
 							v-model="params.sms_code" />
-						<view v-throttle="2000" class="inp_code" @click="getNew">{{ newDown ? `重新获取(${newDown}s)` : '获取验证码' }}</view>
+						<view v-throttle="2000" class="inp_code" @click="getNew">{{ newDown ? `${newDown}s` : '获取验证码' }}</view>
 					</view>
 				</view>
 			</view>

+ 102 - 0
pages/zbs/unBank.vue

@@ -0,0 +1,102 @@
+<template>
+	<view style="padding-top: 50rpx;">
+		<view class="bank">
+			<view class="bank_name">
+				{{ bankInfo.bank_name}}
+			</view>
+			<view class="bank_time">
+				绑定时间:{{ bankInfo.time}}
+			</view>
+			<view class="bank_btn" @click="UnBank">
+				解除绑定
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import { _API_BankInfo, _API_UnbindBank  } from '../../apis/zbs.js';
+	export default {
+		data() {
+			return {
+				bankInfo: {}
+			}
+		},
+		onShow() {
+			this.getBankInfo()
+		},
+		methods: {
+			getBankInfo() {
+				_API_BankInfo().then(res => {
+					if (res.code == 200) {
+						this.showBank = true
+						this.bankInfo = res.data
+					} else {
+						uni.showModal({
+							content: res.message || '获取失败',
+							showCancel: false
+						});
+						return false;
+					}
+				})
+			},
+			// 解除绑定
+			UnBank() {
+				uni.showModal({
+					title: '提示',
+					content: '确定要解绑该银行卡吗?',
+					success: (res) => {
+						if (res.confirm) {
+							uni.showLoading()
+							_API_UnbindBank({ id: this.bankInfo.id }).then(res => {
+								uni.hideLoading()
+								if (res.code == 200) {
+									uni.reLaunch({
+										url: './detail'
+									})
+								} else {
+									uni.showModal({
+										title: '失败',
+										content: res.message || '操作失败',
+										showCancel: false
+									})
+									return false;
+								}
+							})
+								.catch(err => {
+									uni.hideLoading()
+								})
+						}
+					}
+				})
+			},
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	.bank {
+		border-radius: 16rpx;
+		margin: 0 30rpx 0 30rpx;
+		background-color: #fff;
+		// border: 2rpx dashed #FF232C;
+		padding: 24rpx;
+		font-size: 28rpx;
+		&_name {
+			// text-align: center;
+			font-weight: bold;
+			font-size: 32rpx;
+			margin-bottom: 20rpx;
+		}
+		&_btn {
+			margin: 50rpx auto 0;
+			width: 600rpx;
+			line-height: 88rpx;
+			border-radius: 44rpx;
+			text-align: center;
+			color: #FF232C;
+			font-size: 32rpx;
+			border: 2rpx solid #FF232C;
+		}
+	}
+</style>

+ 1 - 1
store/modules/app.js

@@ -8,7 +8,7 @@ export default {
 		indextabbarHeight: uni.upx2px(98), // 首页 tabbar 高
 		token: uni.getStorageSync('token'),
 		// token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9hcGkuYXBwLmNsaXUuY2NcL2FwaVwvbG9naW5cL2dldF91c2VyX29wZW5pZCIsImlhdCI6MTY5ODgxNTc0OSwiZXhwIjoxNjk5Njc5NzQ5LCJuYmYiOjE2OTg4MTU3NDksImp0aSI6InRMU25oSTdmMHVOZEZFamgiLCJzdWIiOjM5NTE2LCJwcnYiOiIyM2JkNWM4OTQ5ZjYwMGFkYjM5ZTcwMWM0MDA4NzJkYjdhNTk3NmY3In0.9W32gsVAoq1N1P1W38SCc-H8lCqKLxUfhWwHaGWszoM',
-		// token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9hcGkuYXBwLmNsaXUuY2NcL2FwaVwvbG9naW5cL2dldF91c2VyX29wZW5pZCIsImlhdCI6MTcwMTI1NDY5NSwiZXhwIjoxNzAyMTE4Njk1LCJuYmYiOjE3MDEyNTQ2OTUsImp0aSI6IjJNbXlnNjlGdVBUSVprYkQiLCJzdWIiOjc1NjYwLCJwcnYiOiIyM2JkNWM4OTQ5ZjYwMGFkYjM5ZTcwMWM0MDA4NzJkYjdhNTk3NmY3In0.qH90YDzqfzozW4N23DeN_ysFLs8NDOxG5P_WXJvF38g',
+		token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9hcGkuYXBwLmNsaXUuY2NcL2FwaVwvbG9naW5cL2dldF91c2VyX29wZW5pZCIsImlhdCI6MTcwMTI1NDY5NSwiZXhwIjoxNzAyMTE4Njk1LCJuYmYiOjE3MDEyNTQ2OTUsImp0aSI6IjJNbXlnNjlGdVBUSVprYkQiLCJzdWIiOjc1NjYwLCJwcnYiOiIyM2JkNWM4OTQ5ZjYwMGFkYjM5ZTcwMWM0MDA4NzJkYjdhNTk3NmY3In0.qH90YDzqfzozW4N23DeN_ysFLs8NDOxG5P_WXJvF38g',
 	},
 	mutations: {
 		LOGIN(state, payload) { // 登录 保存 token