<template> <div class="box"> <div class="loginInput"> <div class="litterSemicircle"><img src="/images/logo.png"/> </div> <div class="importInput"> <h1>南京生态环境评估决策平台</h1> <el-input placeholder="请输入账户" type="text" class="input" v-model="inputName"> <template #prefix> <el-icon><img src="/images/pen.png"></el-icon> </template> </el-input> <el-input placeholder="请输入登录密码" type="password" v-model="inputPassword" class="input" > <template #prefix> <el-icon><img src="/images/lock.png"></el-icon> </template> </el-input> <el-button type="primary" class="btn" @click="onLoginClick">登录</el-button> </div> </div> </div> </template> <script lang="ts"> import {reactive, toRefs} from "vue"; import { post } from "./../uilts/axios"; import { useRouter } from "vue-router" import { ElMessage } from 'element-plus' export default { name: 'Login', setup() { let option = reactive({ inputName: "", inputPassword:"" , centerDialogVisible:false }) const router = useRouter() const staffValidate = ()=> { const errors = []; if (option.inputName == null || option.inputName.trim().length == 0) errors.push('登录名'); if (option.inputPassword == null || option.inputPassword.trim().length == 0) errors.push('登录密码'); return errors; } const onLoginClick = () => { const errors = staffValidate(); if (errors.length > 0) { ElMessage.warning({ message: '请输入' + errors.join('、'), type: 'warning' }) }else { post("user/userLogin",{ userAccountNumber: option.inputName, userPassword: option.inputPassword }).then((res :any)=>{ if (res.error !=0){ ElMessage.error({ message: res.message, type: 'error' }); }else { console.log(res) router.push("/MicrowaveRadiation") } }) } } return { ...toRefs(option), onLoginClick } } } </script> <style lang="less" scoped> .loginInput { width: 6.51rem; height: 6.89rem; background: #FFFFFF; border: 1px solid #707070; opacity: 1; border-radius: 10px; position: relative; left: 50%; top: 1.55rem; transform: translateX(-50%); .litterSemicircle { position: absolute; width: 2.39rem; height: 2.39rem; background: #FFFFFF; border-radius: 50%; opacity: 1; display: flex; justify-content: center; left: 50%; transform: translate(-50%, -50%); } .importInput { //width: 6.51rem; //height: 6.89rem; background: #FFFFFF; border: 1px solid #707070; opacity: 1; border-radius: 0.10rem; display: flex; flex-wrap: wrap; justify-content: center; align-content: flex-start; h1 { width: 3.93rem; height: 0.4rem; font-size: 0.30rem; font-weight: bold; line-height: 0.4rem; color: #222222; text-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16); opacity: 1; margin-top: 1.20rem; margin-bottom: 0.52rem; padding-left: 0.12rem; } :deep(.input) { width: 4.96rem; height: 0.69rem; background: #FFFFFF; border: 1px solid #BCBCBC; opacity: 1; margin-bottom: 0.71rem; .el-input__inner{ height: 100% !important; position: relative; border: none; font-size: 0.15rem; font-weight: 400; line-height: 0.24rem; color: #999999; padding-left: 0.54rem; } } img { width: 0.18rem; height: 0.1792rem; position: absolute; top: -0.10rem; left: 0.18rem; } } } img { width: 1.5733rem; height: 1.5715rem; margin-top: .35rem; } .btn{ width: 4.96rem; height: 0.69rem; background: #498DF0; opacity: 1; color: #FFFFFF; border: none; font-size: 0.22rem; margin-bottom: 1.27rem; } </style>