浏览代码

登录增加状态记录功能

chenwen 9 月之前
父节点
当前提交
b95edb8c2f
共有 2 个文件被更改,包括 34 次插入18 次删除
  1. 10 0
      src/api/login.js
  2. 24 18
      src/pages/Login.vue

+ 10 - 0
src/api/login.js

@@ -13,6 +13,14 @@ api.getCaptcha=()=>{
 	});
 }
 
+api.silentLogin=(tokenId)=>{
+	return request({
+	    url: '/login/autoLogin',
+		method: 'post',
+		data:{tokenId}
+	});
+}
+
 api.checkLogin = async loginForm => {
 	loginForm.pwd=md5(loginForm.pwd)
     /* return request({
@@ -31,7 +39,9 @@ api.checkLogin = async loginForm => {
 			app.setToken(resp.data.tokenId)
 			app.putSetting("usName",resp.data.usName)
 			app.putSetting("loginId",loginForm.loginId)
+			app.putSetting("rembIf",loginForm.rembIf)
 			store.connStatus=200
+			
 			return Promise.resolve(true)
 		}
 		else{

+ 24 - 18
src/pages/Login.vue

@@ -30,6 +30,7 @@
 					<img :src="captchaImgUrl" style="z-index: 100;border-radius: 2px;cursor: pointer;" @click="loadCaptcha"/>
 				</el-form-item>
 	            <div class="login-btn">
+					<el-checkbox v-model="rembme" checked label="记住我" true-value="1" true-label="1" style="color:#fff;margin-right: 10px;"/>
 	                <el-button type="primary" @click="submitForm()" size="default" tabindex="3" :loading="isLoading">登录</el-button>
 	            </div>
 	            <p class="login-tips"></p>
@@ -56,6 +57,8 @@ import { useHomeStore } from "../store/home.js"
 			captchaCode:null,
 			captchaId:null
         });
+		
+		const rembme=ref(1)
 
         const rules = {
             loginId: [{required: true, message: "请输入用户名",trigger: "blur"}],
@@ -70,22 +73,8 @@ import { useHomeStore } from "../store/home.js"
 				if (valid) {
 					isLoading.value=true
 					let {loginId,pwd,captchaCode,captchaId}=loginForm
-					loginAPI.checkLogin({loginId,pwd,captchaCode,captchaId}).then(resp=>{
-						/* console.log(resp)
-						isLoading.value=false
-						if(resp.code===0){
-							ElMessage.success("登录成功");
-							
-							//app.putSetting("token",resp.data.tokenId)
-							app.setToken(resp.data.tokenId)
-							app.putSetting("usName",resp.data.usName)
-							app.putSetting("loginId",loginId)
-							store.connStatus=200
-							router.push("/home");
-						}
-						else{
-							ElMessage.error(resp.msg);
-						} */
+					loginAPI.checkLogin({loginId,pwd,captchaCode,captchaId,rembIf:rembme.value==1}).then(resp=>{
+						
 						if(resp){
 							ElMessage.success("登录成功");
 							router.push("/home");
@@ -112,8 +101,19 @@ import { useHomeStore } from "../store/home.js"
 			})
 		}
 		
-		onMounted(()=>{
+		
+		
+		onMounted(async ()=>{
+			if(app.getToken() && app.takeSetting("rembIf")){
+				let rst=await  loginAPI.silentLogin(app.getToken())
+				if(rst.code==0){
+					router.push("/home");
+					return
+				}
+				
+			}
 			loadCaptcha()
+			
 		})
 </script>
 
@@ -163,12 +163,18 @@ import { useHomeStore } from "../store/home.js"
 }
 .login-btn {
     text-align: center;
+	display: flex;
+	align-items: center;
 }
 .login-btn button {
-    width: 100%;
+    /* width: 100%; */
+	flex:1;
     height: 40px;
     margin-bottom: 10px;
 }
+.login-btn:deep(.el-checkbox__input.is-checked+.el-checkbox__label){
+	color:#0ce914;
+}
 .login-tips {
     font-size: 12px;
     line-height: 30px;