From 7df781c76f651d21cac02bcdae7f7b3f9e41e275 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期五, 27 十二月 2024 17:47:41 +0800
Subject: [PATCH] ll

---
 h5/pages/staffLogin/login.vue |  140 ++++++++++++++++++++++++++++++++++++----------
 1 files changed, 110 insertions(+), 30 deletions(-)

diff --git a/h5/pages/staffLogin/login.vue b/h5/pages/staffLogin/login.vue
index f6252d7..af0b5a4 100644
--- a/h5/pages/staffLogin/login.vue
+++ b/h5/pages/staffLogin/login.vue
@@ -1,20 +1,20 @@
 <template>
-  <view class="login">
-    <image class="login_bg" src="@/static/login_bg@2x.png" />
+  <view class="login" :style="{height: windowHeight  + 'px'}">
+    <image class="login_bg" src="@/static/login_bg@2x.png" mode="widthFix" />
     <image class="login_logo" src="@/static/logo@2x.png" mode="widthFix" />
     <view class="login_title">瀹夋嘲鐗╂祦鏅烘収鍥尯</view>
     <view class="login_list">
       <view class="login_list_item">
         <image src="@/static/login_ic_phone@2x.png" mode="widthFix" />
-        <input v-model="form.username" maxlength="18" placeholder="璐﹀彿" />
+        <input v-model="form.username" type="number" maxlength="18" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder="璐﹀彿" />
       </view>
       <view class="login_list_item">
         <image src="@/static/login_ic_password@2x.png" mode="widthFix" />
-        <input v-model="form.password" type="password" placeholder="瀵嗙爜" />
+        <input v-model="form.password" @focus="showKeyboard = true" @blur="showKeyboard = false" type="password" placeholder="瀵嗙爜" />
       </view>
       <view class="login_list_item">
         <image src="@/static/ic_captcha.png" mode="widthFix"></image>
-        <input v-model="form.code" placeholder="楠岃瘉鐮�" type="text" />
+        <input v-model="form.code" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder="楠岃瘉鐮�" type="text" />
         <image
           @click="initCaptcha"
           :src="captcha.image"
@@ -31,25 +31,44 @@
     </view>
 
     <view class="deal_wrap">
-      <checkbox @change="dealChange" />
+      <image
+        @click="changeFalg"
+        v-if="ProtocolFlag"
+        src="@/static/checkbox_sel@2x.png"
+        mode="widthFix"
+        class="checked"
+      ></image>
+      <image
+        @click="changeFalg"
+        v-if="!ProtocolFlag"
+        src="@/static/meeting/icon/ic_choose@2x.png"
+        mode="widthFix"
+        class="checked"
+				
+      ></image>
       <text>鐧诲綍鍗冲悓鎰�</text>
-      <text class="deal" @click="isShowProtocol = true"
-        >銆婂畨娉扮墿娴佺敤鎴峰崗璁��</text
-      >
+      <text class="deal" @click="showContent">銆婂畨娉扮墿娴佺敤鎴峰崗璁��</text>
     </view>
     <!--  -->
     <u-popup
       :show="isShowProtocol"
       @close="isShowProtocol = false"
+			closeable
+      :round="8"
       mode="center"
     >
-      <view class="modal">111</view>
+      <view class="modal">
+        <!-- <view v-html="htmlText"></view> -->
+				<view class="content">
+					<mp-html :content="htmlText" />
+				</view>
+      </view>
     </u-popup>
   </view>
 </template>
 
 <script>
-import { loginPost, loginCaptcha, getUserInfo } from '@/api'
+import { loginPost, loginCaptcha, getUserInfo, getSystemDictData, saveHkUserOpenid } from '@/api'
 import { mapState, mapMutations } from 'vuex'
 export default {
   name: 'login',
@@ -57,22 +76,55 @@
   data() {
     return {
       form: {
-        account: '',
+        // username: '18056814089',
+        username: '',
         password: '',
+				code: ''
       },
+			showKeyboard: false,
       isShowProtocol: false,
-      captcha: {}
+      ProtocolFlag: false,
+      captcha: {},
+      htmlText: '',
+			windowHeight: '',
+			
+			ywinfo: {}
     }
   },
 
   onLoad() {
     this.initCaptcha()
+		const result = uni.getWindowInfo()
+		this.windowHeight = result.windowHeight
+		
+		const ywinfo = uni.getStorageSync('ywinfo') || {}
+		if (ywinfo.ywid && ywinfo.type == 2) {
+			this.ywinfo = ywinfo
+			uni.setStorageSync('ywinfo', {})
+		}
   },
-
+  onBackPress(options) {
+    uni.redirectTo({
+      url: '/pages/login/login'
+    })
+    return true
+  },
   methods: {
     ...mapMutations(["setToken", "setUserInfo"]),
-    dealChange(e) {
-      console.log(e)
+    changeFalg() {
+      this.ProtocolFlag = !this.ProtocolFlag
+    },
+    getContent() {
+      getSystemDictData({
+        dictCode: 'SYSTEM',
+        label: 'USER_PROTOCOL'
+      }).then(res => {
+        this.htmlText = res.data.code
+        this.isShowProtocol = true
+      })
+    },
+    showContent() {
+      this.getContent()
     },
     initCaptcha() {
       loginCaptcha().then(res => {
@@ -81,7 +133,11 @@
     },
 
     onLogin() {
-      const { form } = this
+      const { form, ProtocolFlag } = this
+      if (!ProtocolFlag) return uni.showToast({
+        title: '璇峰厛闃呰骞跺悓鎰忕敤鎴峰崗璁�',
+        icon: 'none'
+      })
       if (!form.username) return uni.showToast({
         title: '璐﹀彿涓嶈兘涓虹┖',
         icon: 'none'
@@ -97,17 +153,21 @@
       loginPost({
         ...form,
         uuid: this.captcha.uuid,
-        openId: this.$store.state.openId
+        openid: this.$store.state.openId
       }).then(res => {
         if (res.code === 200) {
           this.setToken(res.data)
           getUserInfo().then(ress => {
+						uni.setStorageSync('ywinfo', this.ywinfo)
             this.setUserInfo(ress.data)
             uni.redirectTo({
               url: "/pages/staff/index"
             })
           })
-        }
+					saveHkUserOpenid({})
+        }else{
+					this.initCaptcha()
+				}
       })
     }
   }
@@ -117,12 +177,12 @@
 <style lang="scss" scoped>
 .login {
   width: 100%;
-  height: 100vh;
   display: flex;
-  padding-top: 160rpx;
+  padding-top: 130rpx;
   box-sizing: border-box;
   align-items: center;
   flex-direction: column;
+	position: relative;
   background: linear-gradient(
     180deg,
     rgba(39, 155, 170, 0.2) 0%,
@@ -133,16 +193,18 @@
     height: 180rpx;
   }
   .login_bg {
-    position: absolute;
-    top: 0;
-    width: 750rpx;
+  	position: absolute;
+  	top: 0;
+  	left: 0;
+  	width: 100%;
+  	z-index: -1;
   }
   .login_title {
     font-size: 44rpx;
     font-weight: 600;
     color: #333333;
     margin-top: 40rpx;
-    margin-bottom: 120rpx;
+    margin-bottom: 80rpx;
   }
   .login_list {
     width: 100%;
@@ -183,10 +245,9 @@
     width: 100%;
     padding: 0 60rpx;
     box-sizing: border-box;
-    margin-top: 80rpx;
+    margin-top: 60rpx;
     .for_psd {
       color: $uni-color-primary;
-      margin-top: 40rpx;
       width: 140rpx;
       text-align: center;
       margin: 40rpx auto;
@@ -199,7 +260,7 @@
       display: flex;
       align-items: center;
       justify-content: center;
-      font-weight: 500;
+      font-weight: 600;
       font-size: 32rpx;
       color: #ffffff;
       border-radius: 50rpx;
@@ -210,13 +271,32 @@
     width: 100%;
     left: 0;
     text-align: center;
-    bottom: 108rpx;
+    bottom: 48rpx;
+    display: flex;
+    justify-content: center;
+    align-items: center;
     .deal {
       color: $uni-color-primary;
     }
+    .checked {
+      width: 48rpx;
+      margin-right: 12rpx;
+    }
   }
+	.rela_wrap{
+		position: relative;
+		margin-top: 360rpx;
+	}
 }
 .modal {
-  padding: 32rpx;
+  width: 690rpx;
+  max-height: 80vh;
+  border-radius: 24rpx;
+  padding: 30rpx 30rpx;
+	overflow: auto;
+	// .content{
+	// 	height: 100%;
+	// 	overflow: auto;
+	// }
 }
 </style>

--
Gitblit v1.9.3