165 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			165 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Vue
		
	
	
| <template>
 | ||
|   <view class="container">
 | ||
|     <u-navbar title="扫码登录授权"></u-navbar>
 | ||
|     <view class="wx-auth-container">
 | ||
|       <div class="box">
 | ||
|         <!-- <div v-if="!errorMsg"> -->
 | ||
|         <div>
 | ||
|           <view class="small-tips flex flex-center">
 | ||
|             <u-image
 | ||
|               width="400rpx"
 | ||
|               height="300rpx"
 | ||
|               src="https://lili-system.oss-cn-beijing.aliyuncs.com/confirm.png"
 | ||
|             ></u-image>
 | ||
|             <div>电脑端登录确认</div>
 | ||
|             <div>为确保帐号安全,请确认是您本人操作</div>
 | ||
|           </view>
 | ||
| 
 | ||
|           <view class="btns">
 | ||
|             <button @click="confirmLogin()" class="btn-auth">确认登录</button>
 | ||
|             <div @click="cancelLogin()" class="btn-callback">取消登录</div>
 | ||
|           </view>
 | ||
|         </div>
 | ||
|       </div>
 | ||
|     </view>
 | ||
|   </view>
 | ||
| </template>
 | ||
| 
 | ||
| <script>
 | ||
| import { scannerCodeLogin, scannerCodeLoginConfirm } from "@/api/login";
 | ||
| export default {
 | ||
|   data() {
 | ||
|     return {
 | ||
|       errorMsg: "",
 | ||
|       token: "",
 | ||
|     };
 | ||
|   },
 | ||
|   watch: {
 | ||
|     errorMsg(val) {
 | ||
|       if (val) {
 | ||
|         uni.showToast({
 | ||
|           title: val,
 | ||
|           icon: "none",
 | ||
|         });
 | ||
|         // uni.navigateBack()
 | ||
|       }
 | ||
|     },
 | ||
|   },
 | ||
|   onShow() {
 | ||
|     this.$options.filters.forceLogin();
 | ||
|     scannerCodeLogin({ token: this.token }).then((res) => {
 | ||
|       if (res.data.code == 200) {
 | ||
|         let code = res.data.result;
 | ||
|         switch (code) {
 | ||
|           case 0:
 | ||
|           case 1:
 | ||
|             this.errorMsg = "";
 | ||
|             break;
 | ||
|           case 2:
 | ||
|           case 3:
 | ||
|             this.errorMsg = "请勿重复扫码";
 | ||
|             break;
 | ||
|           case 4:
 | ||
|             this.errorMsg = "二维码已过期,重新扫码";
 | ||
|             break;
 | ||
|           default:
 | ||
|             this.errorMsg = "状态异常";
 | ||
|         }
 | ||
|       } else {
 | ||
|         this.errorMsg = res.data.message;
 | ||
|       }
 | ||
|     });
 | ||
|   },
 | ||
|   onLoad(params) {
 | ||
|     this.token = params.token;
 | ||
|     if (this.token == undefined || this.token == "") {
 | ||
|       this.errorMsg = "信息异常";
 | ||
|     }
 | ||
|   },
 | ||
|   methods: {
 | ||
|     confirmLogin() {
 | ||
|       this.config(1);
 | ||
|     },
 | ||
|     cancelLogin() {
 | ||
|       this.config(0);
 | ||
|     },
 | ||
|     config(code) {
 | ||
|       scannerCodeLoginConfirm({ token: this.token, code: code }).then((res) => {
 | ||
|         let title = res.data.success ? "操作成功" : "操作失败";
 | ||
|         uni.showToast({
 | ||
|           title: title,
 | ||
|           duration: 1500,
 | ||
|           icon: "none",
 | ||
|         });
 | ||
|         setTimeout(function () {
 | ||
|           uni.navigateBack();
 | ||
|         }, 1000);
 | ||
|       });
 | ||
|     },
 | ||
|   },
 | ||
| };
 | ||
| </script>
 | ||
| <style lang="scss" scoped>
 | ||
| page {
 | ||
|   background: #fff;
 | ||
| }
 | ||
| </style>
 | ||
| <style lang="scss" scoped>
 | ||
| .container {
 | ||
|   background-color: #fff;
 | ||
|   width: 100vw;
 | ||
|   height: 100vh;
 | ||
| }
 | ||
| .wx-auth-container {
 | ||
|   width: 100%;
 | ||
|   background: #fff;
 | ||
|   margin-top: 20%;
 | ||
| }
 | ||
| text.title,
 | ||
| text.shop {
 | ||
|   display: inline-block;
 | ||
|   font-size: 60rpx;
 | ||
|   color: #333;
 | ||
| }
 | ||
| 
 | ||
| .box {
 | ||
|   margin: 0 32rpx;
 | ||
| }
 | ||
| 
 | ||
| /* 文字提示*/
 | ||
| .small-tips {
 | ||
|   width: 100%;
 | ||
| 
 | ||
|   padding: 20rpx;
 | ||
|   font-size: 29rpx;
 | ||
|   margin: 0 0 20rpx;
 | ||
|   color: #999;
 | ||
| }
 | ||
| 
 | ||
| .btn-auth {
 | ||
|   width: 92%;
 | ||
|   background: $main-color;
 | ||
|   color: #fff;
 | ||
|   margin: 0 auto 40rpx;
 | ||
|   border-radius: 100px;
 | ||
| }
 | ||
| .btn-callback {
 | ||
|   text-align: center;
 | ||
|   font-size: 30rpx;
 | ||
|   background: #ededed;
 | ||
|   height: 90rpx;
 | ||
|   line-height: 90rpx;
 | ||
|   border-radius: 100px;
 | ||
|   width: 92%;
 | ||
|   margin: 0 auto;
 | ||
| }
 | ||
| 
 | ||
| .btns {
 | ||
|   margin-top: 100rpx;
 | ||
|   display: flex;
 | ||
|   flex-direction: column;
 | ||
|   width: 100%;
 | ||
|   justify-content: center;
 | ||
| }
 | ||
| </style>
 |