马宇豪
2024-07-24 33413c6be7f338ba1ee92b3218e5c078364675dc
pages/index/index.vue
@@ -1,13 +1,20 @@
<template>
   <view class="box">
    <image :src="loginTop" class="topImg" mode="widthFix"></image>
    <view class="main">
      <view class="header">
        <view class="titleFirst"><b>安全在线教育平台</b></view>
        <view class="titleFirst">
          你好~<br/>欢迎来到安全教育在线平台</view>
      </view>
      <view>
        <u-form :model="form" ref="uForm" class="form" >
          <u-form-item style="width: 75%;"><u-input :customStyle="cstyle" v-model="form.username" placeholder="请输入用户名"  /></u-form-item>
          <u-form-item style="margin-top: 10px;width: 75%;" ><u-input :customStyle="cstyle" v-model="form.password" type="password" placeholder="请输入密码"  /></u-form-item>
          <u-form-item style="width: 75%;"><u-input v-model="form.username" :class="{'isFocused': userFocused}" placeholder="请输入用户名" @focus="focusUser"/></u-form-item>
          <u-form-item style="margin-top: 10px;width: 75%;" ><u-input v-model="form.password" :class="{'isFocused': codeFocused}" :type="codeType" placeholder="请输入密码"  @focus="focusCode">
            <template slot="suffix">
              <u-icon v-show="codeType == 'password'" name="eye" color="#999" size="20" @click="viewCode"></u-icon>
              <u-icon v-show="codeType == 'text'" name="eye-off" color="#999" size="20" @click="viewCode"></u-icon>
            </template>
          </u-input></u-form-item>
          <!-- <view class="loginPsw">
                 <u-checkbox-group >
                <u-checkbox disabled="true"></u-checkbox><text style="color: #fff;">自动登录</text>
@@ -15,7 +22,7 @@
                  <text style="color: lightblue;">忘记密码</text>
          </view> -->
          <u-form-item style="margin-top: 10px;width: 75%;">
            <u-button class="loginBtn" :loading="isLogining" style="width: 100%;height: 44px" @click="Login" type="primary">登录</u-button>
            <u-button class="loginBtn" :loading="isLogining" style="width: 100%;height: 56px;border-radius: 28px" @click="Login" type="primary">登录</u-button>
          </u-form-item>
          <!--            <view style="color: white;margin-top: 150px;">技术支持:技术保障部</view>-->
        </u-form>
@@ -30,26 +37,25 @@
   import store from '@/store/index.js'
   import VUE_APP_BASE_URL from '../../common/constant.js'
   const jpushModule = uni.requireNativePlugin('JG-JPush')
  import loginTop from '../../static/loginTop1.png'
   export default {
      data() {
         return {
        loginTop: loginTop,
        userFocused: false,
        codeFocused: false,
            form: {
               username: '',
               password: '',
          code: '',
          uuid: ''
            },
        codeType: 'password',
            type: '',
            //极光推送
            connectStatus: '未连接',
            registrationID: '未获得',
            isLogining: false,
        cstyle: {
          background: '#fff',
          padding: '10px',
          boxShadow: '0 2px 4px rgba(0,0,0,.2),0 -2px 4px rgba(255,255,255,.2),inset 0 2px 4px rgba(0,0,0,.1)',
          border: '1px solid #fff'
        }
            isLogining: false
         }
      },
      onShow() {
@@ -91,6 +97,7 @@
        const {username,password,code,uuid} = this.form
        const data = {username,password,code,uuid}
        data.password = this.base64Encode(data.password)
        uni.removeStorageSync('tk');
            login(data).then(res => {
               if (res.code === 200) {
                  this.isLogining = false;
@@ -156,32 +163,50 @@
         getRegistrationID() {
            jpushModule.getRegistrationID(result => {
               let registerID = result.registerID
               console.log('registerID',registerID)
               this.registrationID = registerID
               this.form.registrationId = registerID;
               uni.setStorageSync('registrationID', registerID);
               console.log("iddd",uni.getStorageSync('registrationID'))
            })
         },
      focusUser(){
        this.userFocused = true
        this.codeFocused = false
      },
      focusCode(){
        this.codeFocused = true
        this.userFocused = false
      },
      viewCode(){
        if(this.codeType == 'password'){
          this.codeType = 'text'
        } else{
          this.codeType = 'password'
        }
      }
      }
   }
</script>
<style scoped>
<style scoped lang="scss">
.box{
   width: 100%;
   height: 100vh;
   background: url('../../static/login.jpg') no-repeat;
   background-size: 100% 100%;
   background-attachment: fixed;/* 不设置的话页面滑动时,背景会不铺满*/
  background: #f5f5f5;
   display: flex;
   flex-direction: column;
  justify-content: center;
}
.topImg{
  width: 100%;
  height: 100%;
  filter: drop-shadow(0 3px 5px rgba(21,148,232,.1))
}
.main{
  width: 100%;
  height: 50vh;
  margin-top: 24rpx;
  display: flex;
  flex-direction: column;
  justify-content: left;
@@ -192,21 +217,21 @@
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-shadow:0 0 1px #000;
}
.titleFirst{
   text-align: center;
   font-size: 32px;
  letter-spacing: 6px;
   color:#fff;
  text-shadow: 2px 2px 6px rgba(0,0,0,.1);
  width: 75%;
   font-size: 40rpx;
  line-height: 1.5;
  font-weight: bold;
  letter-spacing: 2px;
   color: #333;
}
.titleSecond{
   text-align: center;
   font-size: 19px;
   color:#fff;
   color: #fff;
   margin-top: 10px;
}
.form{
@@ -214,8 +239,29 @@
   display: flex;
   flex-direction: column;
   align-items: center;
  margin-top: 40px;
  margin-top: 40rpx;
}
.u-input{
  border-color: #f5f5f5 !important;
  border-radius: 99px;
  background: #f5f5f5;
  padding: 15px 20px !important;
  box-shadow: 0px -6px 10px rgba(255, 255, 255, 1), 0px 4px 15px rgba(0, 0, 0, 0.1) !important;
  transition: box-shadow .1s ease !important;
  &:active{
    box-shadow: 0px -6px 10px rgba(255, 255, 255, 1), 0px 4px 12px rgba(0, 0, 0, 0.1),inset 0 3px 6px rgba(50, 50, 50, .05) !important;
  }
}
.isFocused{
  background: #fff;
  border-width: 1.5px !important;
  border-color: #e6e6e6 !important;
  box-shadow: 0px -6px 10px rgba(255, 255, 255, 0), 0px 4px 12px rgba(0, 0, 0, 0),inset 0 3px 6px rgba(50, 50, 50, .05) !important;
}
.loginPsw{
   margin-bottom: 20px;
   display: flex;
@@ -224,9 +270,10 @@
.loginBtn{
  border: 1px solid rgba(255,255,255,.4);
  letter-spacing: 10px;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  background-image: linear-gradient(#41a2ff,#0f7ff9);
  transition: box-shadow .25s ease !important;
  transition: box-shadow .15s ease !important;
}
.loginBtn:active{