| | |
| | | <div id="background"> |
| | | <!-- 产品名称 --> |
| | | <div class="text"> |
| | | <div class="logo"></div> |
| | | <div class="logo"> |
| | | <img |
| | | :src="imgUrl" |
| | | alt=""> |
| | | </div> |
| | | <div class="text-r"> |
| | | <h2 class="title font-extra-large">遂昌县智慧执法平台</h2> |
| | | <div class="title font-title-medium"> |
| | |
| | | </div> |
| | | <el-card class="login-form-layout"> |
| | | <!-- 表单 --> |
| | | <el-form |
| | | autoComplete="on" |
| | | :model="loginForm" |
| | | :rules="loginRules" |
| | | ref="loginForm" |
| | | label-position="left" |
| | | > |
| | | <el-form autoComplete="on" :model="loginForm" :rules="loginRules" ref="loginForm" label-position="left"> |
| | | <!-- title --> |
| | | <h2 class="login-title">用户登录 / USER LOGIN</h2> |
| | | <el-form-item prop="username"> |
| | | <!-- 用户名输入框 --> |
| | | <el-input |
| | | name="username" |
| | | type="text" |
| | | v-model="loginForm.username" |
| | | autoComplete="on" |
| | | placeholder="请输入用户名称" |
| | | > |
| | | <el-input name="username" type="text" v-model="loginForm.username" autoComplete="on" placeholder="请输入用户名称"> |
| | | <span slot="prefix"> |
| | | <svg-icon icon-class="user" class="color-main"></svg-icon> |
| | | </span> |
| | |
| | | </el-form-item> |
| | | <el-form-item prop="password"> |
| | | <!-- 密码输入框 --> |
| | | <el-input |
| | | name="password" |
| | | :type="pwdType ? 'text' : 'password'" |
| | | @keyup.enter.native="handleLogin" |
| | | v-model="loginForm.password" |
| | | autoComplete="on" |
| | | placeholder="请输入登录密码" |
| | | > |
| | | <el-input name="password" :type="pwdType ? 'text' : 'password'" @keyup.enter.native="handleLogin" |
| | | v-model="loginForm.password" autoComplete="on" placeholder="请输入登录密码"> |
| | | <!-- 输入框前icon --> |
| | | <span slot="prefix"> |
| | | <svg-icon icon-class="password" class="color"></svg-icon> |
| | | </span> |
| | | <!-- 输入框后icon --> |
| | | <span slot="suffix" @click="showPwd"> |
| | | <svg-icon |
| | | :icon-class="pwdType ? 'yanjing-zhengyan' : 'yanjing-biyan'" |
| | | class="pointer" |
| | | ></svg-icon> |
| | | <svg-icon :icon-class="pwdType ? 'yanjing-zhengyan' : 'yanjing-biyan'" class="pointer"></svg-icon> |
| | | </span> |
| | | </el-input> |
| | | </el-form-item> |
| | | <!-- 表单提交按钮 --> |
| | | <el-form-item style="margin-bottom: 60px; text-align: center"> |
| | | <el-button |
| | | style="width: 100%" |
| | | type="primary" |
| | | :loading="loading" |
| | | @click.native.prevent="handleLogin" |
| | | > |
| | | <el-button style="width: 100%" type="primary" :loading="loading" @click.native.prevent="handleLogin"> |
| | | 登录 |
| | | </el-button> |
| | | </el-form-item> |
| | |
| | | }; |
| | | return { |
| | | loginForm: { |
| | | username: "admin", |
| | | password: "macro123", |
| | | username:"", |
| | | password:"", |
| | | // username: "admin", |
| | | // password: "macro123", |
| | | }, |
| | | imgUrl:'', |
| | | loginRules: { |
| | | username: [ |
| | | { required: true, trigger: "blur", validator: validateUsername }, |
| | |
| | | pwdType: false, |
| | | }; |
| | | }, |
| | | created() {}, |
| | | created() { |
| | | const pic = JSON.parse(sessionStorage.getItem('pic')); |
| | | if(pic){ |
| | | this.imgUrl = pic.loginPageIconUrl |
| | | }else{ |
| | | this.$axios({ |
| | | method: 'get', |
| | | url: 'sccg/system/portal/logo/search', |
| | | }).then(res => { |
| | | this.imgUrl = res.data.loginPageIconUrl |
| | | }) |
| | | } |
| | | }, |
| | | methods: { |
| | | showPwd() { |
| | | if (!this.pwdType) { |
| | |
| | | }, |
| | | ...mapActions(["login"]), |
| | | handleLogin() { |
| | | console.log("in login"); |
| | | const { username, password } = this.loginForm; |
| | | const that = this; |
| | | console.log(this.login); |
| | | this.$axios |
| | | .post("http://42.193.1.25:8082/sccg/admin/login", { |
| | | password, |
| | | username, |
| | | .post("sccg/admin/login", { |
| | | password, |
| | | username, |
| | | }) |
| | | .then(function (response) { |
| | | console.log(response); |
| | | if (response.code === 200) { |
| | | // 设置toke时间 |
| | | // 保存token |
| | | console.log(response); |
| | | sessionStorage.setItem('token',response.data.token); |
| | | // 保存token |
| | | sessionStorage.setItem('tokenHead',response.data.tokenHead); |
| | | // 保存用户登录名 |
| | | sessionStorage.setItem('name',username); |
| | | // 跳转到首页 |
| | | that.$router.push("/home"); |
| | | }else{ |
| | | that.$refs.loginForm.validate((valid)=>{ |
| | | if(valid){ |
| | | that.$message({ |
| | | type:'warning', |
| | | message:response.message |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | // console.log(response); |
| | | }) |
| | | .catch(function (error) { |
| | | console.log(error); |
| | |
| | | .color { |
| | | color: red; |
| | | } |
| | | |
| | | #background { |
| | | width: 100vw; |
| | | height: 100vh; |
| | | background: url("@/assets/imgs/login/login_bg.jpg"); |
| | | background: url("@/assets/imgs/login/bk.png"); |
| | | background-size: cover; |
| | | position: relative; |
| | | display: flex; |
| | | min-width: 800px; |
| | | } |
| | | |
| | | .login-form-layout { |
| | | position: absolute; |
| | | top: 20%; |
| | | right: 5%; |
| | | width: 360px; |
| | | &:deep(.el-input__inner){ |
| | | background-color: #fff !important; |
| | | border: 1px solid #dcdfe6 !important; |
| | | } |
| | | } |
| | | |
| | | .text { |
| | | align-self: flex-start; |
| | | position: absolute; |
| | | top: 20%; |
| | | left: 5%; |
| | | display: flex; |
| | | width: 400px; |
| | | width: 420px; |
| | | justify-content: space-between; |
| | | .logo { |
| | | width: 50px; |
| | | height: 50px; |
| | | border-radius: 50%; |
| | | background-color: pink; |
| | | |
| | | .logo>img { |
| | | width: 75px; |
| | | height: 75px; |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | .text-r { |
| | | margin-left: 15px; |
| | | |
| | | .title { |
| | | color: white; |
| | | } |
| | | |
| | | .font-title-medium { |
| | | margin-top: -10px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .login-title { |
| | | text-align: left; |
| | | font-size: 1.2rem; |