|
|
@@ -0,0 +1,683 @@
|
|
|
+<template>
|
|
|
+ <div style="width: 100%; overflow: hidden; background-color: white">
|
|
|
+ <div class="back-width">
|
|
|
+ <div class="title_png"></div>
|
|
|
+ <div class="login-body">
|
|
|
+ <el-carousel arrow indicator-position="none" height="590px" :interval="20000">
|
|
|
+ <el-carousel-item v-for="(img,index) in imgList" :key="index">
|
|
|
+ <img style="width: 100%; height: 100%;" v-bind:src="img.url" >
|
|
|
+ </el-carousel-item>
|
|
|
+ </el-carousel>
|
|
|
+ <section class="login">
|
|
|
+ <el-card class="box-card" style="background:rgba(255,255,255,0.8)">
|
|
|
+ <div slot="header" class="clearfix">
|
|
|
+ <i class="el-icon-s-cooperation"></i>
|
|
|
+ <span style="font-weight: bold; margin-left: 5px">登录</span>
|
|
|
+ <!--<el-button style="float: right; padding: 3px 0" type="text">欢迎使用</el-button>-->
|
|
|
+ </div>
|
|
|
+ <!--<el-menu size="small"
|
|
|
+ :default-active="activeIndex+''"
|
|
|
+ @select="handleSelect"
|
|
|
+ mode="horizontal">
|
|
|
+ <el-menu-item index="0">
|
|
|
+ <i class="el-icon-tickets"></i>
|
|
|
+ <span><b>登录</b></span>
|
|
|
+ </el-menu-item>
|
|
|
+ </el-menu>-->
|
|
|
+ <el-row :gutter="8">
|
|
|
+ <el-col :span="13">
|
|
|
+ <el-table :data="noticeList"
|
|
|
+ size="mini"
|
|
|
+ style="width: 100%; height: 145px;"
|
|
|
+ :row-style="getRowstyle">
|
|
|
+ <el-table-column prop="Name" label="通知通告" show-overflow-tooltip>
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-link :href="getDownloadFile(scope.row.FileURL)"target="_blank"type="primary">{{ scope.row.Name }}</el-link>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="CreateOn"
|
|
|
+ label="发布时间"
|
|
|
+ width="141">
|
|
|
+ <template slot-scope="scope">{{ jstimehandle(scope.row.CreateOn+'') }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column width="80">
|
|
|
+ <template slot-scope="scope"><span style="font-size: 15px; color: #f13f40">{{strnew(scope.row.CreateOn+'') }}</span></template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <router-link style="font-size: 15px; color: black; float: right; padding: 3px 0" :underline="false" :to="'/datadown'">+更多</router-link>
|
|
|
+ <el-table :data="fileList"
|
|
|
+ size="mini"
|
|
|
+ style="width: 100%; height: 145px;"
|
|
|
+ :row-style="getRowstyle">
|
|
|
+ <el-table-column prop="Name" label="资料下载" show-overflow-tooltip>
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <!--<i class="el-icon-caret-right"></i>-->
|
|
|
+ <el-link :href="getDownloadFile(scope.row.FileURL)"
|
|
|
+ target="_blank"
|
|
|
+ type="primary">{{ scope.row.Name }}</el-link>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="CreateOn"
|
|
|
+ label="发布时间"
|
|
|
+ width="141">
|
|
|
+ <template slot-scope="scope">{{ jstimehandle(scope.row.CreateOn+'') }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column width="80">
|
|
|
+ <template slot-scope="scope"><span style="font-size: 15px; color: #f13f40">{{strnew(scope.row.CreateOn+'') }}</span></template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+
|
|
|
+ <router-link style="font-size: 15px;color: black; float: right; padding: 3px 0" :underline="false" :to="'/documentdown'">+更多</router-link>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="1" content-position="center">
|
|
|
+ <div style="height: 300px; width: 1px; background-color: #cccccc; margin-left: 12px"></div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="9">
|
|
|
+ <el-form class="login-form"
|
|
|
+ auto-complete="off"
|
|
|
+ :model="model"
|
|
|
+ :rules="rules"
|
|
|
+ ref="user"
|
|
|
+ label-position="left">
|
|
|
+ <el-form-item style="margin-top:5px"
|
|
|
+ label=""
|
|
|
+ prop="username">
|
|
|
+ <el-input prefix-icon="el-icon-user-solid"
|
|
|
+ type="text" style="background:rgba(255,255,255,0.8)"
|
|
|
+ v-model="model.username"
|
|
|
+ placeholder="请输入用户名">
|
|
|
+ <el-select v-model="loginMode"
|
|
|
+ slot="append"
|
|
|
+ placeholder="登录类型"
|
|
|
+ style="width: 125px;">
|
|
|
+ <el-option label="PTR认证"
|
|
|
+ :value="2"></el-option>
|
|
|
+ <el-option label="普通账户"
|
|
|
+ :value="1"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item style="margin-top:20px"
|
|
|
+ label=""
|
|
|
+ prop="password">
|
|
|
+ <el-input type="password"
|
|
|
+ prefix-icon="el-icon-s-goods"
|
|
|
+ v-model="model.password"
|
|
|
+ placeholder="请输入密码" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="16">
|
|
|
+ <el-form-item style="margin-top:10px"
|
|
|
+ label=""
|
|
|
+ prop="verifycode">
|
|
|
+ <el-input v-model="model.verifycode"
|
|
|
+ prefix-icon="el-icon-view"
|
|
|
+ placeholder="请输入验证码"
|
|
|
+ @keyup.enter.native="loginall()"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item>
|
|
|
+ <div class="identifybox">
|
|
|
+ <div @click="refreshCode"
|
|
|
+ title="看不清,换一张">
|
|
|
+ <s-identify :identifyCode="identifyCode"></s-identify>
|
|
|
+ </div>
|
|
|
+ <!-- <el-button @click="refreshCode" type='text' class="textbtn">看不清,换一张</el-button> -->
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-button type="primary"
|
|
|
+ :loading="loading"
|
|
|
+ @click="loginall()">{{ loading ? '登录中...' : '登录系统' }}</el-button>
|
|
|
+ <el-row style="margin-top: 5px" :gutter="10">
|
|
|
+ <el-col :span="12">
|
|
|
+ <router-link :to="'/signup'">
|
|
|
+ <el-button type="plain" style="background:rgba(255,255,255,0.8)">注册账号</el-button>
|
|
|
+ </router-link>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <router-link :to="'/passwordback'">
|
|
|
+ <el-button type="plain" style="background:rgba(255,255,255,0.8)">忘记密码</el-button>
|
|
|
+ </router-link>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ </el-card>
|
|
|
+ </section>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div >
|
|
|
+ <footer class="login-footer" style="color:#A9A9A9;padding-bottom: 30px">
|
|
|
+ <span style="font-size: 16px">技术支持:李琛 022-25920812<br></span>
|
|
|
+ <span style="font-size: 16px">推荐使用谷歌浏览器、360浏览器(极速模式)等,Chrome内核浏览器打开本系统</span>
|
|
|
+ </footer>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import Vue from 'vue'
|
|
|
+import Component from 'class-component'
|
|
|
+import Sticky from '@/components/Sticky'
|
|
|
+import api from '@/api/rtxservice/rtx'
|
|
|
+import SIdentify from '@/components/VCode.vue'
|
|
|
+@Component({
|
|
|
+ data () {
|
|
|
+ const validateVerifycode = (rule, value, callback) => {
|
|
|
+ if (value === '') {
|
|
|
+ callback(new Error('请输入验证码'))
|
|
|
+ } else if (value !== this.identifyCode) {
|
|
|
+ callback(new Error('验证码不正确'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // form model
|
|
|
+ // TODO: remove default values
|
|
|
+ const model = {
|
|
|
+ username: '',
|
|
|
+ password: '',
|
|
|
+ verifycode: ''
|
|
|
+ }
|
|
|
+
|
|
|
+ // form validate rules
|
|
|
+ const rules = {
|
|
|
+ username: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ trigger: 'blur',
|
|
|
+ message: '请输入用户名'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ password: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ trigger: 'blur',
|
|
|
+ message: '请输入密码'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ verifycode: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ trigger: 'blur',
|
|
|
+ validator: validateVerifycode
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+
|
|
|
+ return {
|
|
|
+ imgList:[
|
|
|
+ {
|
|
|
+ url:require('../assets/img/lunbo_1.jpg')
|
|
|
+ },{
|
|
|
+ url:require('../assets/img/GF002.png')
|
|
|
+ },{
|
|
|
+ url:require('../assets/img/GF003.png')
|
|
|
+ },{
|
|
|
+ url:require('../assets/img/lunbo_2.jpg')
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ loginMode: parseInt(process.client ? (window.localStorage.getItem('loginMode') ? window.localStorage.getItem('loginMode') : 2) : 2),
|
|
|
+ model: model,
|
|
|
+ rules: rules,
|
|
|
+ error: null,
|
|
|
+ loading: false,
|
|
|
+ noticeList: [], // 通知列表
|
|
|
+ fileList: [], // 文档列表
|
|
|
+ activeName: 'first',
|
|
|
+ activeIndex: '0',
|
|
|
+ flag: 0,
|
|
|
+ identifyCode: '',
|
|
|
+ identifyCodes: '1234567890'
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ // beforeCreate () {
|
|
|
+ // if (process.client) {
|
|
|
+ // const myDomain = window.location.host
|
|
|
+ // if (myDomain.indexOf('60.30.245.229') > -1) {
|
|
|
+ // window.location.href = 'http://60.30.245.229/loginclient/'
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ created () {
|
|
|
+ this.initNoticeListData()
|
|
|
+ this.initFileListData()
|
|
|
+ this.identifyCode = ''
|
|
|
+ this.makeCode(this.identifyCodes, 4)
|
|
|
+ },
|
|
|
+ components: {
|
|
|
+ Sticky,
|
|
|
+ SIdentify
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ getRowstyle () {
|
|
|
+ return 'background:rgba(255,255,255,0.8)'
|
|
|
+ },
|
|
|
+ // 生成随机数
|
|
|
+ randomNum (min, max) {
|
|
|
+ return Math.floor(Math.random() * (max - min) + min)
|
|
|
+ },
|
|
|
+ // 切换验证码
|
|
|
+ refreshCode () {
|
|
|
+ this.identifyCode = ''
|
|
|
+ this.makeCode(this.identifyCodes, 4)
|
|
|
+ },
|
|
|
+ // 生成四位随机验证码
|
|
|
+ makeCode (o, l) {
|
|
|
+ for (let i = 0; i < l; i++) {
|
|
|
+ this.identifyCode += this.identifyCodes[this.randomNum(0, this.identifyCodes.length)]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 获取通知列表
|
|
|
+ initNoticeListData () {
|
|
|
+ let _this = this
|
|
|
+ // 传递列名
|
|
|
+ const params = {
|
|
|
+ colName: 'NoticeTab',
|
|
|
+ RangeType: '1,3'
|
|
|
+ }
|
|
|
+ _this.$axios
|
|
|
+ .get('/document/getdocumentnameandtimelogin', { params })
|
|
|
+ .then(function (response) {
|
|
|
+ _this.noticeList = response.data
|
|
|
+ })
|
|
|
+ .catch(function (error) {
|
|
|
+ console.log(error)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 获取文件列表
|
|
|
+ initFileListData () {
|
|
|
+ let _this = this
|
|
|
+ // 传递列名
|
|
|
+ const params = {
|
|
|
+ colName: 'DocTab',
|
|
|
+ RangeType: '1,3'
|
|
|
+ }
|
|
|
+ _this.$axios
|
|
|
+ .get('/document/getdocumentnameandtimelogin', { params })
|
|
|
+ .then(function (response) {
|
|
|
+ _this.fileList = response.data
|
|
|
+ })
|
|
|
+ .catch(function (error) {
|
|
|
+ console.log(error)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 下载文件
|
|
|
+ DownloadFile (row) {
|
|
|
+ let val = row.FileURL
|
|
|
+ let urlArr = val.split('|')
|
|
|
+ location.href = 'http://' + urlArr[0]
|
|
|
+ },
|
|
|
+ getDownloadFile (val) {
|
|
|
+ let urlArr = val.split('|')
|
|
|
+ let retUrl = urlArr[0]
|
|
|
+ // 内网服务器专用
|
|
|
+ if (process.client && retUrl.indexOf('/upfile') === 0) {
|
|
|
+ const myDomain = window.location.host
|
|
|
+ retUrl = myDomain + '/' + retUrl
|
|
|
+ }
|
|
|
+ return 'http://' + retUrl
|
|
|
+ },
|
|
|
+ // 格式化时间
|
|
|
+ jstimehandle (val) {
|
|
|
+ if (val === '') {
|
|
|
+ return '----'
|
|
|
+ } else if (val === '0001-01-01T08:00:00+08:00') {
|
|
|
+ return '----'
|
|
|
+ } else if (val === '5000-01-01T23:59:59+08:00') {
|
|
|
+ return '永久'
|
|
|
+ } else {
|
|
|
+ val = val.replace('T', ' ')
|
|
|
+ return val.substring(0, 10)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ strnew (val) {
|
|
|
+ try {
|
|
|
+ let b = this.jstimehandle(val).split('-')
|
|
|
+ let date = new Date(b[0], b[1], b[2])
|
|
|
+ let newdate = new Date()
|
|
|
+ if ((newdate - date) / (1000 * 60 * 60 * 24) < 30) {
|
|
|
+ return '新'
|
|
|
+ } else {
|
|
|
+ return ''
|
|
|
+ }
|
|
|
+ } catch (e) {
|
|
|
+ return ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleSelect (key, keyPath) {
|
|
|
+ this.activeIndex = key
|
|
|
+ },
|
|
|
+ isChrome () {
|
|
|
+ // 取得浏览器的userAgent字符串
|
|
|
+ let userAgent = navigator.userAgent
|
|
|
+
|
|
|
+ // 判断是否Chrome浏览器
|
|
|
+ if (userAgent.indexOf('Chrome') > -1) {
|
|
|
+ return true
|
|
|
+ } else {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ loginall () {
|
|
|
+ if (process.client) {
|
|
|
+ window.localStorage.setItem('loginMode', this.loginMode)
|
|
|
+ }
|
|
|
+ if (this.loginMode === 1) {
|
|
|
+ this.login()
|
|
|
+ } else {
|
|
|
+ this.$refs.user.validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ this.loginptr()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ loginptr () {
|
|
|
+ let params = {
|
|
|
+ username: this.model.username,
|
|
|
+ password: this.model.password
|
|
|
+ }
|
|
|
+ api
|
|
|
+ .rtxLogin(params, this.$axios)
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.items === 1) {
|
|
|
+ this.flag = 1
|
|
|
+ this.login()
|
|
|
+ } else if (res.data.items === 2) {
|
|
|
+ this.flag = 2
|
|
|
+ this.login()
|
|
|
+ } else if (res.data.items === 3) {
|
|
|
+ this.$message.warning('您无权限登陆本系统')
|
|
|
+ } else {
|
|
|
+ this.$message.warning('账号或密码错误')
|
|
|
+ }
|
|
|
+ this.identifyCode = ''
|
|
|
+ this.makeCode(this.identifyCodes, 4)
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ this.$message.warning('账号或密码错误')
|
|
|
+ console.error(err)
|
|
|
+ this.identifyCode = ''
|
|
|
+ this.makeCode(this.identifyCodes, 4)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+})
|
|
|
+export default class Login extends Vue {
|
|
|
+ layout () {
|
|
|
+ return 'empty'
|
|
|
+ }
|
|
|
+ login () {
|
|
|
+ if (!this.isChrome()) {
|
|
|
+ this.$alert(
|
|
|
+ '请用谷歌浏览器、360浏览器(极速模式)等,Chrome内核浏览器打开本系统',
|
|
|
+ '不支持的浏览器',
|
|
|
+ {}
|
|
|
+ )
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ this.logging = true
|
|
|
+ this.$refs.user.validate(async valid => {
|
|
|
+ try {
|
|
|
+ if (valid) {
|
|
|
+ await this.$store.dispatch('auth/login', {
|
|
|
+ fields: {
|
|
|
+ username: this.model.username.replace(/(^\s*)|(\s*$)/g, ''),
|
|
|
+ password: this.model.password.replace(/(^\s*)|(\s*$)/g, ''),
|
|
|
+ flag: this.flag
|
|
|
+ }
|
|
|
+ })
|
|
|
+ if (process.env.appclient === 'lims') {
|
|
|
+ this.$router.push(this.$route.query.page || '/')
|
|
|
+ } else if (process.env.appclient === 'cellbank') {
|
|
|
+ this.$router.push(this.$route.query.page || '/indexdqm')
|
|
|
+ } else {
|
|
|
+ this.$router.push(this.$route.query.page || '/')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (e) {
|
|
|
+ if (e.response.status === 777) {
|
|
|
+ this.$message({
|
|
|
+ showClose: true,
|
|
|
+ message: '您无权限登录本系统',
|
|
|
+ type: 'warning',
|
|
|
+ duration: 5000
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ showClose: true,
|
|
|
+ message: '账号或密码错误',
|
|
|
+ type: 'warning',
|
|
|
+ duration: 5000
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.identifyCode = ''
|
|
|
+ this.makeCode(this.identifyCodes, 4)
|
|
|
+ } finally {
|
|
|
+ this.logging = false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ logout () {
|
|
|
+ this.$store.dispatch('logout')
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+@import "../assets/styles/base/variables";
|
|
|
+
|
|
|
+.el-form-item {
|
|
|
+ margin-bottom: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.identifybox {
|
|
|
+ margin-top: 12px;
|
|
|
+ margin-left: 20px;
|
|
|
+}
|
|
|
+
|
|
|
+.identifybox:hover {
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+.components-container-my div {
|
|
|
+ margin-top: 20px;
|
|
|
+}
|
|
|
+
|
|
|
+.top-wrapper {
|
|
|
+ margin: 0px auto;
|
|
|
+ width: 1004px;
|
|
|
+ /*text-align: right;
|
|
|
+ alignment: right;*/
|
|
|
+ flex-direction: row;
|
|
|
+}
|
|
|
+.home-wrapper-my {
|
|
|
+ margin: 0px auto;
|
|
|
+ width: 1004px;
|
|
|
+ flex-direction: column;
|
|
|
+ margin-bottom: 45px;
|
|
|
+}
|
|
|
+
|
|
|
+.foot-wrapper {
|
|
|
+ margin: 0px auto;
|
|
|
+ width: 1004px;
|
|
|
+ display: flex;
|
|
|
+ alignment: center;
|
|
|
+ align-items: center;
|
|
|
+ flex-direction: column;
|
|
|
+}
|
|
|
+
|
|
|
+.back-width1 {
|
|
|
+ background-color: #2f79f6;
|
|
|
+ margin: 0px auto;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ top: 20px;
|
|
|
+ width: 1004px;
|
|
|
+}
|
|
|
+
|
|
|
+.login-footer1 {
|
|
|
+ position: fixed;
|
|
|
+ background-color: #34393d;
|
|
|
+ font-size: 10px;
|
|
|
+ clear: both;
|
|
|
+ display: block;
|
|
|
+ text-align: center;
|
|
|
+ margin: 0px auto;
|
|
|
+ bottom: 0px;
|
|
|
+ width: 100%;
|
|
|
+}
|
|
|
+
|
|
|
+/*-----------*/
|
|
|
+.time {
|
|
|
+ font-size: 13px;
|
|
|
+ color: #999;
|
|
|
+}
|
|
|
+
|
|
|
+.bottom {
|
|
|
+ margin-top: 13px;
|
|
|
+ line-height: 12px;
|
|
|
+}
|
|
|
+
|
|
|
+.button {
|
|
|
+ padding: 0;
|
|
|
+ float: right;
|
|
|
+}
|
|
|
+
|
|
|
+.image {
|
|
|
+ width: 100%;
|
|
|
+ display: block;
|
|
|
+}
|
|
|
+
|
|
|
+.clearfix:before,
|
|
|
+.clearfix:after {
|
|
|
+ display: table;
|
|
|
+ content: "";
|
|
|
+}
|
|
|
+
|
|
|
+.clearfix:after {
|
|
|
+ clear: both;
|
|
|
+}
|
|
|
+
|
|
|
+.back-width {
|
|
|
+ position: absolute;
|
|
|
+ background-color: white;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ top: -135px;
|
|
|
+ bottom: 0;
|
|
|
+ margin: auto;
|
|
|
+ width: 100%;
|
|
|
+ height: 675px;
|
|
|
+}
|
|
|
+.title_png {
|
|
|
+ background: url("../assets/img/title_login.png");
|
|
|
+ font-family: "Open Sans", sans-serif;
|
|
|
+ background-repeat: no-repeat;
|
|
|
+ background-position: center;
|
|
|
+ height: 135px;
|
|
|
+ width: 100%;
|
|
|
+}
|
|
|
+
|
|
|
+.login-body {
|
|
|
+ // background: url("../assets/img/gf20190715.png");
|
|
|
+ // font-family: "Open Sans", sans-serif;
|
|
|
+ // background-repeat: no-repeat;
|
|
|
+ // background-position: center;
|
|
|
+ // background-color: #0483d8;
|
|
|
+ width: 100%;
|
|
|
+ height: 580px;
|
|
|
+ z-index: -20;
|
|
|
+
|
|
|
+ /*margin: auto;
|
|
|
+ left: 0px;
|
|
|
+ top: 0px;
|
|
|
+ right: 0;
|
|
|
+ bottom: 0;
|
|
|
+ width: 100%;
|
|
|
+ height: calc(100vh - 40px);*/
|
|
|
+}
|
|
|
+ .el-carousel{
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+.login-footer {
|
|
|
+ font-size: 10px;
|
|
|
+ clear: both;
|
|
|
+ display: block;
|
|
|
+ text-align: center;
|
|
|
+ margin: 0px auto;
|
|
|
+ position: absolute;
|
|
|
+ bottom: 11px;
|
|
|
+ width: 100%;
|
|
|
+
|
|
|
+ a {
|
|
|
+ color: $brand-color;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.login {
|
|
|
+ position: relative;
|
|
|
+ max-width: 52rem;
|
|
|
+ margin: 0 auto; /*水平居中*/
|
|
|
+ top: -280px; /*偏移*/
|
|
|
+ transform: translateY(-50%);
|
|
|
+ font-size: 0.875rem;
|
|
|
+ opacity: 1;
|
|
|
+ z-index: 200;
|
|
|
+
|
|
|
+ &-header {
|
|
|
+ margin-bottom: 1rem;
|
|
|
+ .brand {
|
|
|
+ margin: 4.5rem 0 3.5rem;
|
|
|
+ text-align: center;
|
|
|
+ letter-spacing: 0.125rem;
|
|
|
+
|
|
|
+ a {
|
|
|
+ margin: 0;
|
|
|
+ color: $brand-color;
|
|
|
+ font: 300 3rem sans-serif;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ color: $brand-hover-color;
|
|
|
+ text-shadow: 0 0 1rem $brand-hover-color;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &-form {
|
|
|
+ /*margin-bottom: 2.5rem;
|
|
|
+ padding: 1.875rem 1.25rem;
|
|
|
+ background: $login-form-background;*/
|
|
|
+ color: $login-form-color;
|
|
|
+
|
|
|
+ /*.heading {
|
|
|
+ margin: 0 0 1rem;
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 1.5rem;
|
|
|
+ }*/
|
|
|
+
|
|
|
+ .el-button {
|
|
|
+ margin-top: 0.5rem;
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-table,
|
|
|
+ .el-table__expanded-cell {
|
|
|
+ background-color: rgba(255,255,255,0.8)
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+</style>
|
|
|
+
|