11<script setup>
2- import { reactive , ref } from " vue" ;
3- import { adminLoginService , loginService } from " @/methods/login" ;
2+ import {reactive , ref } from " vue" ;
3+ import {adminLoginService , loginService } from " @/methods/login" ;
44import router from " @/router" ;
5- import { useTokenStore } from " @/stores/token" ;
6- import { useReaderStore } from " @/stores/reader.js" ;
7- import { ElNotification } from " element-plus" ;
8- import { useAdminStore } from " @/stores/admin.js" ;
5+ import {useTokenStore } from " @/stores/token" ;
6+ import {useReaderStore } from " @/stores/reader.js" ;
7+ import {ElLoading , ElNotification } from " element-plus" ;
8+ import {useAdminStore } from " @/stores/admin.js" ;
99
1010const adminStore = useAdminStore ();
1111const readerStore = useReaderStore ();
@@ -16,7 +16,7 @@ const ruleFormRef = ref();
1616// 表单校验规则
1717const rules = {
1818 username: [
19- { min: 1 , max: 10 , message: " 长度在 1 到 10 个字符" , trigger: " change" },
19+ {min: 1 , max: 10 , message: " 长度在 1 到 10 个字符" , trigger: " change" },
2020 ],
2121};
2222
@@ -36,14 +36,28 @@ const loginDto = ref({
3636 password: " " ,
3737});
3838const login = async function () {
39+ // 显示加载中动画
40+ const loading = ElLoading .service ({
41+ lock: true ,
42+ text: ' 长时间加载请刷新页面......' ,
43+ background: ' rgba(0, 0, 0, 0.7)' ,
44+ })
45+
3946 const result = await loginService (loginDto .value );
4047 returnReader = result .data ;
41- console .log (returnReader);
48+
49+ // console.log(returnReader);
50+
4251 // 保存用户信息和token
4352 readerStore .setReader (returnReader);
4453 tokenStore .setToken (returnReader .token );
4554 adminStore .setIsAdmin (false );
46- console .log (" tokenStore:" + tokenStore .token );
55+
56+ // 关闭动画
57+ loading .close ();
58+
59+ // console.log("tokenStore:" + tokenStore.token);
60+
4761 await router .push (" /book" );
4862 ElNotification .success ({
4963 title: " 登录成功" ,
@@ -100,44 +114,46 @@ let isAdmin = ref(false);
100114<template >
101115 <!-- 用户登录表单-->
102116 <el-form
103- ref =" ruleFormRef"
104- status-icon
105- label-width =" 120px"
106- class =" centered-form"
107- :model =" loginDto"
108- :rules =" rules"
109- title =" 登录"
117+ ref =" ruleFormRef"
118+ status-icon
119+ label-width =" 120px"
120+ class =" centered-form"
121+ :model =" loginDto"
122+ :rules =" rules"
123+ title =" 登录"
110124 >
111125 <!-- 用户名-->
112126 <el-form-item label =" 用户名" prop =" username" class =" form-row" required >
113- <el-input v-model =" loginDto.username" />
127+ <el-input v-model =" loginDto.username" />
114128 </el-form-item >
115129 <!-- 密码-->
116130 <el-form-item label =" 密码" prop =" password" class =" form-row" required >
117131 <el-input
118- v-model.number =" loginDto.password"
119- type =" password"
120- show-password
132+ v-model.number =" loginDto.password"
133+ type =" password"
134+ show-password
121135 />
122136 </el-form-item >
123137 <div class =" button-row" >
124138 <el-form-item >
125139 <el-button type =" primary" @click =" submitForm(ruleFormRef)"
126- >登录</el-button
140+ >登录
141+ </el-button
127142 >
128143 <el-button type =" success" @click =" router.push('/register')"
129- >注册</el-button
144+ >注册
145+ </el-button
130146 >
131147 </el-form-item >
132148
133149 <el-switch
134- v-model =" isAdmin"
135- class =" mb-2"
136- style =" --el-switch-on-color : #13ce66 ; --el-switch-off-color : #fd8250 "
137- inline-prompt
138- size =" large"
139- active-text =" 管理员"
140- inactive-text =" 读者"
150+ v-model =" isAdmin"
151+ class =" mb-2"
152+ style =" --el-switch-on-color : #13ce66 ; --el-switch-off-color : #fd8250 "
153+ inline-prompt
154+ size =" large"
155+ active-text =" 管理员"
156+ inactive-text =" 读者"
141157 />
142158 </div >
143159 </el-form >
0 commit comments