|
@@ -0,0 +1,317 @@
|
|
|
|
+<template>
|
|
|
|
+ <div class="login-container">
|
|
|
|
+ <div class="login_box">
|
|
|
|
+ <!-- 头像区域 -->
|
|
|
|
+ <!-- <div class="avatar_box">
|
|
|
|
+ <img src="../assets/logo.png" alt="">
|
|
|
|
+ </div> -->
|
|
|
|
+ <!-- 登录表单区域 -->
|
|
|
|
+ <!-- <el-form ref="loginFormRef" :model="loginForm" :rules="loginFormRules" label-width="0px" class="login_form">
|
|
|
|
+ <el-form-item prop="user_name">
|
|
|
|
+ <el-input prefix-icon="el-icon-search" v-model="loginForm.user_name" placeholder="用户名"></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item prop="password">
|
|
|
|
+ <el-input prefix-icon="el-icon-search" v-model="loginForm.password" placeholder="密码" type="password"></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item class="btns">
|
|
|
|
+ <el-button type="primary" @click="login">登录</el-button>
|
|
|
|
+ <el-button type="info" @click="resetLoginForm">重置</el-button>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form> -->
|
|
|
|
+ </div>
|
|
|
|
+ <div class="new-login">
|
|
|
|
+ <div class="new-login-l">
|
|
|
|
+ <img src="@/assets/images/logo.png" alt="">
|
|
|
|
+ </div>
|
|
|
|
+ <div class="new-login-r">
|
|
|
|
+ <div class="title">用户登录:</div>
|
|
|
|
+ <el-form ref="loginFormRef" :model="loginForm" :rules="loginFormRules" class="login-form" auto-complete="on" label-position="left">
|
|
|
|
+ <el-form-item prop="user_name">
|
|
|
|
+ <!-- <span class="svg-container">
|
|
|
|
+ <svg-icon icon-class="user" />
|
|
|
|
+ </span> -->
|
|
|
|
+ <i class="el-icon-user-solid"></i>
|
|
|
|
+ <el-input ref="user_name" v-model="loginForm.user_name" placeholder="用户名" name="user_name" type="text" tabindex="1" auto-complete="on" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+
|
|
|
|
+ <el-form-item prop="password" class="password">
|
|
|
|
+ <!-- <span class="svg-container">
|
|
|
|
+ <svg-icon icon-class="password" />
|
|
|
|
+ </span> -->
|
|
|
|
+ <i class="el-icon-unlock"></i>
|
|
|
|
+ <el-input :key="passwordType" ref="password" v-model="loginForm.password" :type="passwordType" placeholder="密码" name="password" tabindex="2" auto-complete="on" @keyup.enter.native="handleLogin" />
|
|
|
|
+ <span class="show-pwd" @click="showPwd">
|
|
|
|
+ <!-- <svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'" /> -->
|
|
|
|
+ </span>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <!-- <el-form-item prop="password" class="rememberPassword">
|
|
|
|
+ <input id="remember-password-checkbox" v-model="rememberPassword" type="checkbox" value="remember-me" @click="doRememberPassword($event)">
|
|
|
|
+ <span for="remember-password-checkbox">
|
|
|
|
+ 记住密码
|
|
|
|
+ </span>
|
|
|
|
+ </input>
|
|
|
|
+ </el-form-item> -->
|
|
|
|
+ </el-form>
|
|
|
|
+ <el-button type="primary" :loading="loading" class="btn" @click.native.prevent="login">登录</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div style="position: absolute;bottom: 0;left: 0;right:0;color: #000;background: #fee; opacity: .7; font-size: 14px;">
|
|
|
|
+ <p style="text-align:center;line-height:16px;">
|
|
|
|
+ 版权所有
|
|
|
|
+ <a href="http://www.dairyinfo.com.cn" target="_blank">上海科湃腾信息科技有限公司</a>
|
|
|
|
+ <!-- <a style="margin-left: 20px;" href="https://beian.miit.gov.cn/" target="_blank">沪ICP备11008303号-3 </a> -->
|
|
|
|
+ </p>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script>
|
|
|
|
+import { GetDataByName, PostDataByName, ajaxDataGet, ajaxDataPost, ajaxDataLogin} from '@/api/common'
|
|
|
|
+import {md5} from '@/utils/md5'
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+export default {
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ loginForm:{
|
|
|
|
+ user_name:"", //admin cyj
|
|
|
|
+ password:"" //123456
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ //表单验证规则
|
|
|
|
+ loginFormRules:{
|
|
|
|
+ user_name:[
|
|
|
|
+ { required:true, message:"请输入登录名称", trigger:"blur" }
|
|
|
|
+ ],
|
|
|
|
+ password:[
|
|
|
|
+ { required:true, message:"请输入登录密码", trigger:"blur" }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ loading: false,
|
|
|
|
+ passwordType: 'password',
|
|
|
|
+ redirect: undefined,
|
|
|
|
+ rememberPassword: ''
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ created(){
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ methods:{
|
|
|
|
+ showPwd() {
|
|
|
|
+ if (this.passwordType === 'password') {
|
|
|
|
+ this.passwordType = ''
|
|
|
|
+ } else {
|
|
|
|
+ this.passwordType = 'password'
|
|
|
|
+ }
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
+ this.$refs.password.focus()
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ login(){
|
|
|
|
+ var me = this
|
|
|
|
+
|
|
|
|
+ //validate表单预验证
|
|
|
|
+ this.$refs.loginFormRef.validate( valid => {
|
|
|
|
+ //如果false,就返回
|
|
|
|
+ if(!valid) return;
|
|
|
|
+ // var g_token = 111111
|
|
|
|
+ // sessionStorage.setItem("g_token",g_token)
|
|
|
|
+
|
|
|
|
+ // me.$router.push("/home")
|
|
|
|
+
|
|
|
|
+ //方法一:直接用axios请求
|
|
|
|
+ //.post是请求方式 也可以是Get
|
|
|
|
+ //这里 /test是后端的接口地址
|
|
|
|
+ //loginForm请求发的参数
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // var send_data = {
|
|
|
|
+ // user_name:me.loginForm.user_name,
|
|
|
|
+ // password: md5(me.loginForm.password)
|
|
|
|
+ // }
|
|
|
|
+ // this.$http.post("/login",send_data ,{ headers:{ } }).then(function(res){
|
|
|
|
+ // //打印请求成功结果
|
|
|
|
+ // console.log('res',res)
|
|
|
|
+ // console.log('res.data',res.data)
|
|
|
|
+ // if (res.data.code == 200) {
|
|
|
|
+
|
|
|
|
+ // var g_token = res.data.data.token
|
|
|
|
+ // // 设置全局缓存token
|
|
|
|
+ // sessionStorage.setItem("g_token",g_token)
|
|
|
|
+ // console.log('g_token',g_token)
|
|
|
|
+
|
|
|
|
+ // var g_pastureId = res.data.data.pastureId
|
|
|
|
+ // var g_employeeId = res.data.data.employeeId
|
|
|
|
+ // var g_userNameSee = res.data.data.userName
|
|
|
|
+ // var g_actualName = res.data.data.actualName
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // sessionStorage.setItem("g_pastureId",g_pastureId)
|
|
|
|
+ // sessionStorage.setItem("g_employeeId",g_employeeId)
|
|
|
|
+ // sessionStorage.setItem("g_userNameSee",g_userNameSee)
|
|
|
|
+ // sessionStorage.setItem("g_actualName",g_actualName)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // //成功登录后跳转页面
|
|
|
|
+ // me.$router.push("/home")
|
|
|
|
+
|
|
|
|
+ // } else {
|
|
|
|
+ // me.$message({ type: 'error', message: '登陆失败!' + res.data.msg, duration: 2000 })
|
|
|
|
+
|
|
|
|
+ // }
|
|
|
|
+ // }).catch(function(error){
|
|
|
|
+ // //打印请求失败结果
|
|
|
|
+ // console.log('error',error)
|
|
|
|
+ // me.$message({ type: 'error', message: '请求错误!' +error.response.data.errors, duration: 2000 })
|
|
|
|
+ // })
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // //方法二:用封装xios请求 、 路径写死
|
|
|
|
+ // PostDataByName(this.loginForm).then(response => {
|
|
|
|
+ // //打印请求成功结果
|
|
|
|
+ // console.log('response',response)
|
|
|
|
+ // })
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //方法二:用封装axios请求、路径不写死
|
|
|
|
+ // ajaxData("/login" ,this.loginForm).then(res => {
|
|
|
|
+ // //打印请求成功结果
|
|
|
|
+ // console.log('response',res)
|
|
|
|
+ // this.$message({ type: 'error', message: '请求成功', duration: 2000 })
|
|
|
|
+ // //本地存储数据
|
|
|
|
+ // window.sessionStorage.setItem("token",res.data)
|
|
|
|
+ // //跳转路由到Home页面
|
|
|
|
+ // this.$router.push("/home")
|
|
|
|
+ // })
|
|
|
|
+ //跳转路由到Home页面
|
|
|
|
+ //this.$router.push("/home")
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ var send_data = {
|
|
|
|
+ user_name:me.loginForm.user_name,
|
|
|
|
+ password: md5(me.loginForm.password)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ ajaxDataLogin("/login" ,send_data).then(res => {
|
|
|
|
+ //打印请求成功结果
|
|
|
|
+ console.log('res',res)
|
|
|
|
+ console.log('res.data',res.data)
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
+
|
|
|
|
+ var g_token = res.data.token
|
|
|
|
+ // 设置全局缓存token
|
|
|
|
+ sessionStorage.setItem("g_token",g_token)
|
|
|
|
+ console.log('g_token',g_token)
|
|
|
|
+
|
|
|
|
+ var g_pastureId = res.data.pastureId
|
|
|
|
+ var g_employeeId = res.data.employeeId
|
|
|
|
+ var g_userNameSee = res.data.userName
|
|
|
|
+ var g_actualName = res.data.actualName
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ sessionStorage.setItem("g_pastureId",g_pastureId)
|
|
|
|
+ sessionStorage.setItem("g_employeeId",g_employeeId)
|
|
|
|
+ sessionStorage.setItem("g_userNameSee",g_userNameSee)
|
|
|
|
+ sessionStorage.setItem("g_actualName",g_actualName)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //成功登录后跳转页面
|
|
|
|
+ me.$router.push("/home")
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ me.$message({ type: 'error', message: '登陆失败!' + res.data.msg, duration: 2000 })
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }).catch(function(error){
|
|
|
|
+ //打印请求失败结果
|
|
|
|
+ console.log('error',error)
|
|
|
|
+ me.$message({ type: 'error', message: '请求错误!' +error.response.data.errors, duration: 2000 })
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //重置登录表单
|
|
|
|
+ resetLoginForm(){
|
|
|
|
+ //this.$refs.loginFormRef直接绑定 resetFields()重置
|
|
|
|
+ this.$refs.loginFormRef.resetFields();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+</script>
|
|
|
|
+<!-- 加了scoped,则是仅在此组件里生效 -->
|
|
|
|
+<style scoped>
|
|
|
|
+
|
|
|
|
+/* .login_container{background-color:#2b4b6b;height: 100%}
|
|
|
|
+.login_box{width:450px;height:300px;background-color:#fff;border-radius:3px;position:absolute;left:50%;top:50%;transform:translate(-50%, -50%)}
|
|
|
|
+.avatar_box{height:130px;width:130px;border:1px solid #eee;border-radius:50%;padding:10px;box-shadow:0 0 10px #ddd;position:absolute;left:50%;transform:translate(-50%, -50%);}
|
|
|
|
+.avatar_box img{width:100%}
|
|
|
|
+.login_form{position:absolute;bottom:0;width:100%;padding:0 20px;box-sizing: border-box}
|
|
|
|
+.btns{display:flex;justify-content: flex-end} */
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+.login-container .el-input input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill {
|
|
|
|
+ -webkit-box-shadow: 0 0 0px 1000px #fff inset !important;
|
|
|
|
+ box-shadow: 0 0 0px 1000px #fff inset !important;
|
|
|
|
+ -webkit-text-fill-color: #000 !important;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.login-container{position: relative;height: 100%;width: 100%; min-height: 500px;background: url("../assets/images/nlogin-bg1.jpg") no-repeat; }
|
|
|
|
+
|
|
|
|
+.new-login{ width: 50%;height: 42%;position: absolute;left: 0;right: 0;bottom: 0;top: 0;margin: auto; }
|
|
|
|
+.new-login-l{background: red;float:left;height:100%;width:50%;background: url("../assets/images/nlogin-bg2.png") no-repeat;position: relative; }
|
|
|
|
+.new-login-l img{position: absolute;left: 0;right: 0;bottom: 0;top: 0;margin: auto;width: 50%;height:23%;}
|
|
|
|
+.new-login-r{ background: #fff;float:left;height:100%;width:50%;position: relative;}
|
|
|
|
+.new-login-r .title{margin-top: 10%;font-size: 20px;font-weight: 600;color: #019969;text-align: center;}
|
|
|
|
+.new-login-r .login-form{ position: relative;width: 520px;max-width: 100%;overflow: hidden;height: 48%;}
|
|
|
|
+.login-form .svg-container{padding: 6px 5px 6px 15px; color: #999; vertical-align: middle; width: 30px; display: inline-block;}
|
|
|
|
+.login-form .el-input { display: inline-block; width: 80%; }
|
|
|
|
+
|
|
|
|
+.new-login-r .el-form-item {
|
|
|
|
+ border: none; background: #fff; border-radius: 5px; color: #999;width: 73%; margin: 10px auto;height: 30% }
|
|
|
|
+.new-login-r .el-form-item /deep/.el-form-item__content {
|
|
|
|
+ line-height: 16%; border-bottom: 1px solid #e7e7e7;
|
|
|
|
+ }
|
|
|
|
+ .new-login-r .el-form-item .el-form-item__content .el-input /deep/.el-input__inner{border: none !important;}
|
|
|
|
+
|
|
|
|
+ .rememberPassword /deep/.el-form-item__content {line-height:16%; border: none;padding-bottom: 10px;}
|
|
|
|
+ .rememberPassword /deep/.el-form-item__content span{padding-left: 5px;}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ .password{margin-top: 10px;margin-bottom: 20px;}
|
|
|
|
+ .btn{
|
|
|
|
+ position: absolute; overflow: hidden; width: 75%;left: 0;right: 0;bottom: 10%;margin: 0 auto; }
|
|
|
|
+ .btn span{background:#01996a;border: #01996a;border-radius: 5px;line-height: 40px; text-align: center;color:#fff; display: block;}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+</style>
|