From 893ff90c6e21fa3a5241a8ae9b33836037cd5912 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: Thu, 29 Aug 2024 15:19:17 +0800
Subject: [PATCH] 提交
---
pages/index/index.vue | 133 ++++++++++++++++++++++++++++++++-----------
1 files changed, 98 insertions(+), 35 deletions(-)
diff --git a/pages/index/index.vue b/pages/index/index.vue
index b048cda..b2c3f32 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -1,21 +1,28 @@
<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: 80%;"><u-input v-model="form.username" :class="{'isFocused': userFocused}" placeholder="请输入用户名" @focus="focusUser"/></u-form-item>
+ <u-form-item style="margin-top: 10px;width: 80%;" ><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>
</u-checkbox-group>
<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-form-item style="margin-top: 10px;width: 80%;">
+ <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,.2)',
- border: '1px solid #fff'
- }
+ isLogining: false
}
},
onShow() {
@@ -79,16 +85,34 @@
}
},
onLoad() {
- this.connect()
+ // this.connect()
},
methods: {
base64Encode(str) {
return btoa(unescape(encodeURIComponent(str)));
},
Login(){
+ if(this.form.username == ''){
+ uni.showToast({
+ title: '请输入用户名',
+ duration: 1000
+ })
+ return
+ }
+ if(this.form.password == ''){
+ uni.showToast({
+ title: '请输入密码',
+ duration: 1000
+ })
+ return
+ }
this.isLogining = true;
- this.form.password = this.base64Encode(this.form.password)
- login(this.form).then(res => {
+ // this.form.password = this.base64Encode(this.form.password)
+ 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;
//登录成功后
@@ -126,13 +150,11 @@
icon: "none",
title: res.message
});
- this.form.name = '';
- this.form.pwd = '';
+ this.form.password = '';
this.isLogining = false;
}
}).catch(err=>{
- this.form.name = '';
- this.form.pwd = '';
+ this.form.password = '';
this.isLogining = false;
})
},
@@ -153,32 +175,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;
@@ -189,21 +229,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: 80%;
+ font-size: 44rpx;
+ 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{
@@ -211,8 +251,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 15px rgba(0, 0, 0, 0.1),0px 3px 6px rgba(0, 0, 0, 0.1) inset !important;
+ }
+}
+
+.isFocused{
+ background: #fff;
+ border-width: 1.5px !important;
+ border-color: #e6e6e6 !important;
+ box-shadow: 0px -6px 10px rgba(255, 255, 255, 1), 0px 4px 15px rgba(0, 0, 0, 0.1),0px 3px 6px rgba(0, 0, 0, 0.1) inset !important;
+}
+
.loginPsw{
margin-bottom: 20px;
display: flex;
@@ -221,9 +282,11 @@
.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;
+ font-size: 30rpx;
}
.loginBtn:active{
--
Gitblit v1.9.2