1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
| <template> <div class="login-wrap"> <!-- :rules="rules"为表单自定义规则 :model="loginForm" 绑定js中的return 参数 --> <el-form ref="loginFormRef" :rules="rules" :model="loginForm" class="login_form"> <h1 class="title">用户登录</h1> <el-form-item label="用户名" prop="username"> <el-input type="text" placeholder="用户账号" v-model="loginForm.username" auto-complete="off"></el-input> </el-form-item> <el-form-item label="密码" prop="password" style="margin-left:10px;"> <el-input type="password" placeholder="密码" v-model="loginForm.password" auto-complete="off"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm(loginFormRef)" style="width: 100%;">登录</el-button> </el-form-item> <el-form-item> <el-button type="primary" @click="resetForm(loginFormRef)" style="width: 100%;">重置</el-button> </el-form-item> </el-form> </div> </template> <script lang="ts" setup> import { reactive, ref } from 'vue' import type { FormInstance, FormRules } from 'element-plus' import { ElMessage } from 'element-plus'
// 引用登录请求 import { LoginPost } from "../utils/html.js"
//引入路由函数 import { useRouter } from "vue-router"; const router = useRouter()
interface LoginForm { username: string password: string } const loginFormRef = ref<FormInstance>() // 定义表单绑定的model const loginForm = reactive({ username: "test", password: "", }) // 定义规则 const rules = reactive<FormRules<LoginForm>>({ username: [ { required: true, message: '请输入用户名', trigger: 'blur' }, // { min: 3, max: 5, message: 'Length should be 3 to 5', trigger: 'blur' }, ],
password: [ { required: true, message: '请输入密码', }, ], });
const submitForm = (formEl: FormInstance | undefined) => { if (!formEl) return formEl.validate(async (valid, fields) => { if (valid) { console.log('submit!') LoginPost(JSON.stringify(loginForm)).then(res => { console.log(res) if (res["data"]["code"] == 1) { // console.log("登录成功") ElMessage({ message: '登录成功.', type: 'success', }) localStorage.setItem('username', loginForm.username); router.push("/home") } else { ElMessage({ message: res.data.msg, type: 'error', }) } }) } else { console.log('error submit!', fields)
} }) } const resetForm = (formEl: FormInstance | undefined) => { if (!formEl) return formEl.resetFields() } </script> <style scoped> .login-wrap { box-sizing: border-box; width: 100%; height: 100%; padding-top: 10%; background-image: url(zdmc+); /* background-color: #112346; */ background-repeat: no-repeat; background-position: center right; background-size: 100%; }
.login-container { border-radius: 10px; margin: 0px auto; width: 350px; padding: 30px 35px 15px 35px; background: #fff; border: 1px solid #eaeaea; text-align: left; box-shadow: 0 0 20px 2px rgba(0, 0, 0, 0.1); }
.title { margin: 0px auto 40px auto; text-align: center; color: #505458; } </style>
|