|  | @@ -1,74 +1,116 @@
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  | -  <div class="login" :style="'background-image:url('+ Background +');'">
 | 
	
		
			
				|  |  | -    <el-form ref="loginForm" :model="loginForm" :rules="loginRules" label-position="left" label-width="0px" class="login-form">
 | 
	
		
			
				|  |  | -      <h3 class="title">
 | 
	
		
			
				|  |  | -        <span class="CN">用户登录</span>
 | 
	
		
			
				|  |  | -        <span class="EN">LOGIN</span>
 | 
	
		
			
				|  |  | -      </h3>
 | 
	
		
			
				|  |  | +  <div class="login">
 | 
	
		
			
				|  |  | +    <div v-if="erp" class="bg"><img src="@/assets/images/bg.png" alt="" style="width:100%;height:100%;"></div>
 | 
	
		
			
				|  |  | +    <div v-if="erp" class="logo">
 | 
	
		
			
				|  |  | +      <img src="@/assets/logo/logo-b.png" alt="">
 | 
	
		
			
				|  |  | +      <span class="logo_txt">智慧文印管理系统</span>
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  | +    <el-form v-if="erp" ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
 | 
	
		
			
				|  |  | +      <h3 class="title">用户登录 <span>LOGIN</span></h3>
 | 
	
		
			
				|  |  |        <el-form-item prop="username">
 | 
	
		
			
				|  |  | -        <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="请输入用户名">
 | 
	
		
			
				|  |  | +        <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
 | 
	
		
			
				|  |  |            <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
 | 
	
		
			
				|  |  |          </el-input>
 | 
	
		
			
				|  |  |        </el-form-item>
 | 
	
		
			
				|  |  |        <el-form-item prop="password">
 | 
	
		
			
				|  |  | -        <el-input v-model="loginForm.password" show-password type="password" auto-complete="off" placeholder="请输入密码" @keyup.enter.native="handleLogin">
 | 
	
		
			
				|  |  | +        <el-input
 | 
	
		
			
				|  |  | +          v-model="loginForm.password"
 | 
	
		
			
				|  |  | +          :type="passwordtxt"
 | 
	
		
			
				|  |  | +          auto-complete="off"
 | 
	
		
			
				|  |  | +          placeholder="密码"
 | 
	
		
			
				|  |  | +          @keyup.enter.native="handleLogin"
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  |            <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
 | 
	
		
			
				|  |  | +          <svg-icon v-show="passwordtxt =='password'" slot="prefix" icon-class="eye" class="el-input__icon input-icon" style="position:absolute;right:-340px" @click="eyeTab" />
 | 
	
		
			
				|  |  | +          <svg-icon v-show="passwordtxt =='text'" slot="prefix" icon-class="eye-open" class="el-input__icon input-icon" style="position:absolute;right:-340px" @click="eyeTab" />
 | 
	
		
			
				|  |  |          </el-input>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |        </el-form-item>
 | 
	
		
			
				|  |  | -      <el-form-item prop="code">
 | 
	
		
			
				|  |  | -        <el-input v-model="loginForm.code" auto-complete="off" placeholder="请输入验证码" style="width: 63%" @keyup.enter.native="handleLogin">
 | 
	
		
			
				|  |  | +      <el-form-item v-if="captchaOnOff" prop="code">
 | 
	
		
			
				|  |  | +        <el-input
 | 
	
		
			
				|  |  | +          v-model="loginForm.code"
 | 
	
		
			
				|  |  | +          auto-complete="off"
 | 
	
		
			
				|  |  | +          placeholder="验证码"
 | 
	
		
			
				|  |  | +          style="width: 63%"
 | 
	
		
			
				|  |  | +          @keyup.enter.native="handleLogin"
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  |            <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
 | 
	
		
			
				|  |  |          </el-input>
 | 
	
		
			
				|  |  |          <div class="login-code">
 | 
	
		
			
				|  |  | -          <img :src="codeUrl">
 | 
	
		
			
				|  |  | -          <i class="el-icon-refresh" @click="getCode" />
 | 
	
		
			
				|  |  | +          <img :src="codeUrl" class="login-code-img" @click="getCode">
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  |        </el-form-item>
 | 
	
		
			
				|  |  | -      <el-checkbox v-model="loginForm.rememberMe" style="margin:0 0 25px 0;">
 | 
	
		
			
				|  |  | -        记住我
 | 
	
		
			
				|  |  | -      </el-checkbox>
 | 
	
		
			
				|  |  | +      <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;" @change="memory">记住密码</el-checkbox>
 | 
	
		
			
				|  |  |        <el-form-item style="width:100%;">
 | 
	
		
			
				|  |  | -        <el-button :loading="loading" size="medium" type="primary" style="width:100%;" @click.native.prevent="handleLogin">
 | 
	
		
			
				|  |  | +        <el-button
 | 
	
		
			
				|  |  | +          :loading="loading"
 | 
	
		
			
				|  |  | +          size="medium"
 | 
	
		
			
				|  |  | +          type="primary"
 | 
	
		
			
				|  |  | +          style="width:100%;"
 | 
	
		
			
				|  |  | +          @click.native.prevent="handleLogin"
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  |            <span v-if="!loading">登 录</span>
 | 
	
		
			
				|  |  |            <span v-else>登 录 中...</span>
 | 
	
		
			
				|  |  |          </el-button>
 | 
	
		
			
				|  |  | +        <!-- <div style="float: right;" v-if="register">
 | 
	
		
			
				|  |  | +          <router-link class="link-type" :to="'/register'">立即注册</router-link>
 | 
	
		
			
				|  |  | +        </div> -->
 | 
	
		
			
				|  |  |        </el-form-item>
 | 
	
		
			
				|  |  |      </el-form>
 | 
	
		
			
				|  |  |      <!--  底部  -->
 | 
	
		
			
				|  |  | -    <div v-if="$store.state.settings.showFooter" id="el-login-footer">
 | 
	
		
			
				|  |  | -      <span v-html="$store.state.settings.footerTxt" />
 | 
	
		
			
				|  |  | -      <span> ⋅ </span>
 | 
	
		
			
				|  |  | -      <a href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank">{{ $store.state.settings.caseNumber }}</a>
 | 
	
		
			
				|  |  | +    <div v-if="erp" class="el-login-footer">
 | 
	
		
			
				|  |  | +      <!-- <span>Copyright © 2018-2021 yongtian.vip All Rights Reserved.</span> -->
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  | +    <div v-if="ERPloading" id="loader-wrapper">
 | 
	
		
			
				|  |  | +      <div id="loader" />
 | 
	
		
			
				|  |  | +      <div class="loader-section section-left" />
 | 
	
		
			
				|  |  | +      <div class="loader-section section-right" />
 | 
	
		
			
				|  |  | +      <div class="load_title">正在加载系统资源,请耐心等待</div>
 | 
	
		
			
				|  |  |      </div>
 | 
	
		
			
				|  |  |    </div>
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <script>
 | 
	
		
			
				|  |  | -import { encrypt } from '@/utils/rsaEncrypt'
 | 
	
		
			
				|  |  | -import Config from '@/settings'
 | 
	
		
			
				|  |  | +import bgImg from '@/assets/images/bg.png'
 | 
	
		
			
				|  |  | +import logoImg from '@/assets/logo/logo-b.png'
 | 
	
		
			
				|  |  |  import { getCodeImg } from '@/api/login'
 | 
	
		
			
				|  |  |  import Cookies from 'js-cookie'
 | 
	
		
			
				|  |  | -import Background from '@/assets/images/login_bg.png'
 | 
	
		
			
				|  |  | +import { decrypt, encrypt } from '@/utils/jsencrypt'
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  export default {
 | 
	
		
			
				|  |  |    name: 'Login',
 | 
	
		
			
				|  |  |    data() {
 | 
	
		
			
				|  |  |      return {
 | 
	
		
			
				|  |  | -      Background: Background,
 | 
	
		
			
				|  |  | +      erp: false,
 | 
	
		
			
				|  |  | +      ERPloading: true,
 | 
	
		
			
				|  |  | +      passwordtxt: 'password',
 | 
	
		
			
				|  |  | +      bg: bgImg,
 | 
	
		
			
				|  |  | +      logo: logoImg,
 | 
	
		
			
				|  |  |        codeUrl: '',
 | 
	
		
			
				|  |  | -      cookiePass: '',
 | 
	
		
			
				|  |  | +      cookiePassword: '',
 | 
	
		
			
				|  |  |        loginForm: {
 | 
	
		
			
				|  |  | -        username: 'admin',
 | 
	
		
			
				|  |  | -        password: '123456',
 | 
	
		
			
				|  |  | +        username: '',
 | 
	
		
			
				|  |  | +        password: '',
 | 
	
		
			
				|  |  | +        // username: "admin",
 | 
	
		
			
				|  |  | +        // password: "admin123",
 | 
	
		
			
				|  |  |          rememberMe: false,
 | 
	
		
			
				|  |  |          code: '',
 | 
	
		
			
				|  |  |          uuid: ''
 | 
	
		
			
				|  |  |        },
 | 
	
		
			
				|  |  |        loginRules: {
 | 
	
		
			
				|  |  | -        username: [{ required: true, trigger: 'blur', message: '用户名不能为空' }],
 | 
	
		
			
				|  |  | -        password: [{ required: true, trigger: 'blur', message: '密码不能为空' }],
 | 
	
		
			
				|  |  | -        code: [{ required: true, trigger: 'change', message: '验证码不能为空' }]
 | 
	
		
			
				|  |  | +        username: [
 | 
	
		
			
				|  |  | +          { required: true, trigger: 'blur', message: '请输入您的账号' }
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        password: [
 | 
	
		
			
				|  |  | +          { required: true, trigger: 'blur', message: '请输入您的密码' }
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +        code: [{ required: true, trigger: 'change', message: '请输入验证码' }]
 | 
	
		
			
				|  |  |        },
 | 
	
		
			
				|  |  |        loading: false,
 | 
	
		
			
				|  |  | +      // 验证码开关
 | 
	
		
			
				|  |  | +      captchaOnOff: false,
 | 
	
		
			
				|  |  | +      // 注册开关
 | 
	
		
			
				|  |  | +      register: false,
 | 
	
		
			
				|  |  |        redirect: undefined
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    },
 | 
	
	
		
			
				|  | @@ -81,146 +123,213 @@ export default {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    created() {
 | 
	
		
			
				|  |  | -    // 获取验证码
 | 
	
		
			
				|  |  | -    this.getCode()
 | 
	
		
			
				|  |  | -    // 获取用户名密码等Cookie
 | 
	
		
			
				|  |  | -    this.getCookie()
 | 
	
		
			
				|  |  | -    // token 过期提示
 | 
	
		
			
				|  |  | -    this.point()
 | 
	
		
			
				|  |  | +    this.getUrl()
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    methods: {
 | 
	
		
			
				|  |  | +    getUrl() {
 | 
	
		
			
				|  |  | +      const url = this.$route.query
 | 
	
		
			
				|  |  | +      if (url.username && url.password) {
 | 
	
		
			
				|  |  | +        const data = { username: url.username, password: url.password }
 | 
	
		
			
				|  |  | +        data.password = encrypt(encodeuricomponent(this.loginForm.password))
 | 
	
		
			
				|  |  | +        this.handleLoginERP(data)
 | 
	
		
			
				|  |  | +      } else if (url.userNameSaaS && url.passWordSaaS) {
 | 
	
		
			
				|  |  | +        const data = {
 | 
	
		
			
				|  |  | +          username: decrypt(decodeURIComponent(url.userNameSaaS)),
 | 
	
		
			
				|  |  | +          password: decrypt(decodeURIComponent(url.passWordSaaS))
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        Cookies.set('username20220719', data.username, { expires: 30 })
 | 
	
		
			
				|  |  | +        Cookies.set('password20220719', url.passWordSaaS, { expires: 30 })
 | 
	
		
			
				|  |  | +        this.handleLoginSaaS(data)
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        this.getCode()
 | 
	
		
			
				|  |  | +        this.getCookie()
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    eyeTab() {
 | 
	
		
			
				|  |  | +      if (this.passwordtxt == 'password') {
 | 
	
		
			
				|  |  | +        this.passwordtxt = 'text'
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        this.passwordtxt = 'password'
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      getCode() {
 | 
	
		
			
				|  |  |        getCodeImg().then(res => {
 | 
	
		
			
				|  |  | +        this.captchaOnOff = true
 | 
	
		
			
				|  |  |          this.codeUrl = res.img
 | 
	
		
			
				|  |  |          this.loginForm.uuid = res.uuid
 | 
	
		
			
				|  |  | +        this.erp = true
 | 
	
		
			
				|  |  | +        setTimeout(() => {
 | 
	
		
			
				|  |  | +          this.ERPloading = false
 | 
	
		
			
				|  |  | +        },)
 | 
	
		
			
				|  |  |        })
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      getCookie() {
 | 
	
		
			
				|  |  | -      const username = Cookies.get('username')
 | 
	
		
			
				|  |  | -      let password = Cookies.get('password')
 | 
	
		
			
				|  |  | -      const rememberMe = Cookies.get('rememberMe')
 | 
	
		
			
				|  |  | -      // 保存cookie里面的加密后的密码
 | 
	
		
			
				|  |  | -      this.cookiePass = password === undefined ? '' : password
 | 
	
		
			
				|  |  | -      password = password === undefined ? this.loginForm.password : password
 | 
	
		
			
				|  |  | +      const username = Cookies.get('username20220719')
 | 
	
		
			
				|  |  | +      const password = Cookies.get('password20220719')
 | 
	
		
			
				|  |  | +      const rememberMe = Cookies.get('rememberMe20220719')
 | 
	
		
			
				|  |  |        this.loginForm = {
 | 
	
		
			
				|  |  |          username: username === undefined ? this.loginForm.username : username,
 | 
	
		
			
				|  |  | -        password: password,
 | 
	
		
			
				|  |  | -        rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
 | 
	
		
			
				|  |  | -        code: ''
 | 
	
		
			
				|  |  | +        password: password === undefined ? this.loginForm.password : decrypt(password),
 | 
	
		
			
				|  |  | +        rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      handleLogin() {
 | 
	
		
			
				|  |  |        this.$refs.loginForm.validate(valid => {
 | 
	
		
			
				|  |  | -        const user = {
 | 
	
		
			
				|  |  | -          username: this.loginForm.username,
 | 
	
		
			
				|  |  | -          password: this.loginForm.password,
 | 
	
		
			
				|  |  | -          rememberMe: this.loginForm.rememberMe,
 | 
	
		
			
				|  |  | -          code: this.loginForm.code,
 | 
	
		
			
				|  |  | -          uuid: this.loginForm.uuid
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        if (user.password !== this.cookiePass) {
 | 
	
		
			
				|  |  | -          user.password = encrypt(user.password)
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  |          if (valid) {
 | 
	
		
			
				|  |  |            this.loading = true
 | 
	
		
			
				|  |  | -          if (user.rememberMe) {
 | 
	
		
			
				|  |  | -            Cookies.set('username', user.username, { expires: Config.passCookieExpires })
 | 
	
		
			
				|  |  | -            Cookies.set('password', user.password, { expires: Config.passCookieExpires })
 | 
	
		
			
				|  |  | -            Cookies.set('rememberMe', user.rememberMe, { expires: Config.passCookieExpires })
 | 
	
		
			
				|  |  | -          } else {
 | 
	
		
			
				|  |  | -            Cookies.remove('username')
 | 
	
		
			
				|  |  | -            Cookies.remove('password')
 | 
	
		
			
				|  |  | -            Cookies.remove('rememberMe')
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -          this.$store.dispatch('Login', user).then(() => {
 | 
	
		
			
				|  |  | -            this.loading = false
 | 
	
		
			
				|  |  | -            this.$router.push({ path: this.redirect || '/' })
 | 
	
		
			
				|  |  | +          this.$store.dispatch('Login', this.loginForm).then((res) => {
 | 
	
		
			
				|  |  | +            this.$router.push({ path: '/dashboard' }).catch(() => {})
 | 
	
		
			
				|  |  |            }).catch(() => {
 | 
	
		
			
				|  |  |              this.loading = false
 | 
	
		
			
				|  |  | -            this.getCode()
 | 
	
		
			
				|  |  | +            if (this.captchaOnOff) {
 | 
	
		
			
				|  |  | +              this.getCode()
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |            })
 | 
	
		
			
				|  |  | -        } else {
 | 
	
		
			
				|  |  | -          console.log('error submit!!')
 | 
	
		
			
				|  |  | -          return false
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        })
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    point() {
 | 
	
		
			
				|  |  | -      const point = Cookies.get('point') !== undefined
 | 
	
		
			
				|  |  | -      if (point) {
 | 
	
		
			
				|  |  | -        this.$notify({
 | 
	
		
			
				|  |  | -          title: '提示',
 | 
	
		
			
				|  |  | -          message: '当前登录状态已过期,请重新登录!',
 | 
	
		
			
				|  |  | -          type: 'warning',
 | 
	
		
			
				|  |  | -          duration: 5000
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -        Cookies.remove('point')
 | 
	
		
			
				|  |  | +    memory() {
 | 
	
		
			
				|  |  | +      if (this.loginForm.rememberMe) {
 | 
	
		
			
				|  |  | +        Cookies.set('username20220719', this.loginForm.username, { expires: 30 })
 | 
	
		
			
				|  |  | +        Cookies.set('password20220719', encrypt(encodeuricomponent(this.loginForm.password)), { expires: 30 })
 | 
	
		
			
				|  |  | +        Cookies.set('rememberMe20220719', this.loginForm.rememberMe, { expires: 30 })
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        Cookies.remove('username20220719')
 | 
	
		
			
				|  |  | +        Cookies.remove('password20220719')
 | 
	
		
			
				|  |  | +        Cookies.remove('rememberMe20220719')
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    handleLoginERP(data) { // erp登录
 | 
	
		
			
				|  |  | +      this.$store.dispatch('LoginERP', data).then((res) => {
 | 
	
		
			
				|  |  | +        this.$router.push({ path: '/dashboard' }).catch(() => {})
 | 
	
		
			
				|  |  | +      }).catch((err) => {
 | 
	
		
			
				|  |  | +        location.href = '/dashboard'
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    handleLoginSaaS(data) { // SaaS登录
 | 
	
		
			
				|  |  | +      this.$store.dispatch('Login', data).then((res) => {
 | 
	
		
			
				|  |  | +        this.$router.push({ path: '/dashboard' })
 | 
	
		
			
				|  |  | +      }).catch((err) => {
 | 
	
		
			
				|  |  | +        location.href = ''
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  </script>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -<style rel="stylesheet/scss" lang="scss">
 | 
	
		
			
				|  |  | -  .login {
 | 
	
		
			
				|  |  | -    display: flex;
 | 
	
		
			
				|  |  | -    justify-content: center;
 | 
	
		
			
				|  |  | -    align-items: center;
 | 
	
		
			
				|  |  | -    height: 100%;
 | 
	
		
			
				|  |  | -    background-size: cover;
 | 
	
		
			
				|  |  | +<style  lang="scss" scoped>
 | 
	
		
			
				|  |  | +.bg{
 | 
	
		
			
				|  |  | +  width:100%;
 | 
	
		
			
				|  |  | +  height:100%;
 | 
	
		
			
				|  |  | +  overflow: hidden;
 | 
	
		
			
				|  |  | +  position: fixed;
 | 
	
		
			
				|  |  | +  top:0;
 | 
	
		
			
				|  |  | +  left:0;
 | 
	
		
			
				|  |  | +  z-index: -1;
 | 
	
		
			
				|  |  | +  .bgimg{
 | 
	
		
			
				|  |  | +    width:100%;
 | 
	
		
			
				|  |  | +    height:100%;
 | 
	
		
			
				|  |  | +    position: absolute;
 | 
	
		
			
				|  |  | +    top:0;
 | 
	
		
			
				|  |  | +    left:0;
 | 
	
		
			
				|  |  | +    z-index: -1;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  .title {
 | 
	
		
			
				|  |  | -    margin: 0 auto 30px auto;
 | 
	
		
			
				|  |  | -    text-align: left;
 | 
	
		
			
				|  |  | -    color: #707070;
 | 
	
		
			
				|  |  | -    .CN {
 | 
	
		
			
				|  |  | -      color: #474747;
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -    .EN {
 | 
	
		
			
				|  |  | -      color: #d4d4d4;
 | 
	
		
			
				|  |  | -      margin-left: 10px;
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +.logo{
 | 
	
		
			
				|  |  | +  width:100%;
 | 
	
		
			
				|  |  | +  position: fixed;
 | 
	
		
			
				|  |  | +  top:0;
 | 
	
		
			
				|  |  | +  img{
 | 
	
		
			
				|  |  | +    width:152px;
 | 
	
		
			
				|  |  | +    margin:10px 2rem 0 20px;
 | 
	
		
			
				|  |  | +    vertical-align: middle;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  .logo_txt{
 | 
	
		
			
				|  |  | +    font-size: 1.5rem;
 | 
	
		
			
				|  |  | +    color:#fff;
 | 
	
		
			
				|  |  | +    vertical-align: middle;
 | 
	
		
			
				|  |  | +    letter-spacing: 4px;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +.login {
 | 
	
		
			
				|  |  | +  display: flex;
 | 
	
		
			
				|  |  | +  justify-content: center;
 | 
	
		
			
				|  |  | +  align-items: center;
 | 
	
		
			
				|  |  | +  height: 100%;
 | 
	
		
			
				|  |  | +  // background-image: url("../assets/images/login-background.jpg");
 | 
	
		
			
				|  |  | +  background-size: cover;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +.title {
 | 
	
		
			
				|  |  | +  margin: 0px auto 30px auto;
 | 
	
		
			
				|  |  | +  text-align: left;
 | 
	
		
			
				|  |  | +  color: #000000;
 | 
	
		
			
				|  |  | +  font-size: 20px;
 | 
	
		
			
				|  |  | +  span{
 | 
	
		
			
				|  |  | +    margin-left:10px;
 | 
	
		
			
				|  |  | +    opacity: 0.25;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  .login-form {
 | 
	
		
			
				|  |  | -    border-radius: 6px;
 | 
	
		
			
				|  |  | -    background: #ffffff;
 | 
	
		
			
				|  |  | -    width: 335px;
 | 
	
		
			
				|  |  | -    padding: 25px 25px 5px 25px;
 | 
	
		
			
				|  |  | -    .el-input {
 | 
	
		
			
				|  |  | -      height: 38px;
 | 
	
		
			
				|  |  | -      input {
 | 
	
		
			
				|  |  | -        height: 38px;
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -    .input-icon{
 | 
	
		
			
				|  |  | -      height: 39px;width: 14px;margin-left: 2px;
 | 
	
		
			
				|  |  | +.login-form {
 | 
	
		
			
				|  |  | +  border-radius: 6px;
 | 
	
		
			
				|  |  | +  background: #ffffff;
 | 
	
		
			
				|  |  | +  width: 456px;
 | 
	
		
			
				|  |  | +  padding: 63px 35px;
 | 
	
		
			
				|  |  | +  .el-input {
 | 
	
		
			
				|  |  | +    height: 40px;
 | 
	
		
			
				|  |  | +    font-size: 16px !important;
 | 
	
		
			
				|  |  | +    input {
 | 
	
		
			
				|  |  | +      height: 40px;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  .login-tip {
 | 
	
		
			
				|  |  | -    font-size: 13px;
 | 
	
		
			
				|  |  | -    text-align: center;
 | 
	
		
			
				|  |  | -    color: #bfbfbf;
 | 
	
		
			
				|  |  | +  .input-icon {
 | 
	
		
			
				|  |  | +    height: 39px;
 | 
	
		
			
				|  |  | +    width: 14px;
 | 
	
		
			
				|  |  | +    margin-left: 2px;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  .login-code {
 | 
	
		
			
				|  |  | -    width: 33%;
 | 
	
		
			
				|  |  | -    height: 38px;
 | 
	
		
			
				|  |  | -    float: right;
 | 
	
		
			
				|  |  | -    display: inline-flex;
 | 
	
		
			
				|  |  | -    justify-content: center;
 | 
	
		
			
				|  |  | -    align-items: center;
 | 
	
		
			
				|  |  | -    img{
 | 
	
		
			
				|  |  | -      vertical-align:middle;
 | 
	
		
			
				|  |  | -      width: 80%;
 | 
	
		
			
				|  |  | -      height: 38px;
 | 
	
		
			
				|  |  | -      padding: 5px;
 | 
	
		
			
				|  |  | -      border: 1px solid rgb(217,217,217);
 | 
	
		
			
				|  |  | -      border-radius: 3px;
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -    i {
 | 
	
		
			
				|  |  | -      color: rgb(135,135,135);
 | 
	
		
			
				|  |  | -      margin-left: 5px;
 | 
	
		
			
				|  |  | -      cursor: pointer;
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +.login-tip {
 | 
	
		
			
				|  |  | +  font-size: 13px;
 | 
	
		
			
				|  |  | +  text-align: center;
 | 
	
		
			
				|  |  | +  color: #bfbfbf;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +.login-code {
 | 
	
		
			
				|  |  | +  width: 33%;
 | 
	
		
			
				|  |  | +  height: 36px;
 | 
	
		
			
				|  |  | +  float: right;
 | 
	
		
			
				|  |  | +  img {
 | 
	
		
			
				|  |  | +    cursor: pointer;
 | 
	
		
			
				|  |  | +    vertical-align: middle;
 | 
	
		
			
				|  |  | +    width:100%;
 | 
	
		
			
				|  |  | +    height: 36px;
 | 
	
		
			
				|  |  | +    margin-top:-1px;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +.el-login-footer {
 | 
	
		
			
				|  |  | +  height: 40px;
 | 
	
		
			
				|  |  | +  line-height: 40px;
 | 
	
		
			
				|  |  | +  position: fixed;
 | 
	
		
			
				|  |  | +  bottom: 0;
 | 
	
		
			
				|  |  | +  width: 100%;
 | 
	
		
			
				|  |  | +  text-align: center;
 | 
	
		
			
				|  |  | +  color: #fff;
 | 
	
		
			
				|  |  | +  font-family: Arial;
 | 
	
		
			
				|  |  | +  font-size: 12px;
 | 
	
		
			
				|  |  | +  letter-spacing: 1px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +::v-deep .el-input__inner{
 | 
	
		
			
				|  |  | +  height:36px !important;
 | 
	
		
			
				|  |  | +  line-height: 36px !important;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +</style>
 | 
	
		
			
				|  |  | +<style>
 | 
	
		
			
				|  |  | +html,
 | 
	
		
			
				|  |  | +body,
 | 
	
		
			
				|  |  | +#app {
 | 
	
		
			
				|  |  | +    height: 100%;
 | 
	
		
			
				|  |  | +    margin: 0px;
 | 
	
		
			
				|  |  | +    padding: 0px;
 | 
	
		
			
				|  |  | +    background-color: transparent !important;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  </style>
 |