fix:排放系统登陆页面更改样式

This commit is contained in:
shijing 2024-04-12 14:37:16 +08:00
parent 16bf29cd4f
commit 89f05ee8e8
2 changed files with 404 additions and 252 deletions

View File

@ -1,196 +1,261 @@
<template> <template>
<el-form ref="loginForm" :model="form" :rules="rules" label-width="0" size="large"> <el-form
<el-form-item prop="user"> ref="loginForm"
<el-input v-model="form.user" prefix-icon="el-icon-user" clearable :placeholder="$t('login.userPlaceholder')"> :model="form"
<!-- <template #append> :rules="rules"
label-width="0"
size="large"
>
<el-form-item prop="user">
<el-input
v-model="form.user"
prefix-icon="el-icon-user"
clearable
:placeholder="$t('login.userPlaceholder')"
>
<!-- <template #append>
<el-select v-model="userType" style="width: 130px"> <el-select v-model="userType" style="width: 130px">
<el-option :label="$t('login.admin')" value="admin"></el-option> <el-option :label="$t('login.admin')" value="admin"></el-option>
<el-option :label="$t('login.user')" value="user"></el-option> <el-option :label="$t('login.user')" value="user"></el-option>
</el-select> </el-select>
</template> --> </template> -->
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="password"> <el-form-item prop="password">
<el-input v-model="form.password" prefix-icon="el-icon-lock" clearable show-password <el-input
:placeholder="$t('login.PWPlaceholder')" @keyup.enter="login"></el-input> v-model="form.password"
</el-form-item> prefix-icon="el-icon-lock"
<el-form-item style="margin-bottom: 10px"> clearable
<el-col :span="12" class="login-reg"> show-password
<!-- <el-link @click="visitors">{{$t('login.fangke')}}</el-link> --> :placeholder="$t('login.PWPlaceholder')"
</el-col> @keyup.enter="login"
<el-col :span="12" class="login-forgot"> ></el-input>
<router-link to="/reset_password">{{ $t("login.forgetPassword") }}</router-link> </el-form-item>
</el-col> <el-form-item style="margin-bottom: 10px">
</el-form-item> <el-col :span="12" class="login-reg">
<el-form-item> <!-- <el-link @click="visitors">{{$t('login.fangke')}}</el-link> -->
<el-button type="primary" style="width: 100%" :loading="islogin" round @click="login">{{ $t("login.signIn") </el-col>
}}</el-button> <el-col :span="12" class="login-forgot">
</el-form-item> <router-link to="/reset_password"
>{{ $t("login.forgetPassword") }}</router-link
>
</el-col>
</el-form-item>
<el-form-item>
<el-button
v-if="deptCodePf"
type="success"
style="width: 100%"
:loading="islogin"
round
@click="login"
>{{ $t("login.signIn") }}</el-button
>
<el-button
v-else
type="primary"
style="width: 100%"
:loading="islogin"
round
@click="login"
>{{ $t("login.signIn") }}</el-button
>
</el-form-item>
<!-- <div class="login-reg"> <!-- <div class="login-reg">
{{ $t("login.noAccount") }} {{ $t("login.noAccount") }}
<router-link to="/user_register">{{ <router-link to="/user_register">{{
$t("login.createAccount") $t("login.createAccount")
}}</router-link> }}</router-link>
</div>--> </div>-->
</el-form> </el-form>
<sc-dialog v-model="visitorsdialog" draggable title="创建访客账号"> <sc-dialog v-model="visitorsdialog" draggable title="创建访客账号">
<el-form ref="dialogForms" :model="visitorform" label-width="120px"> <el-form ref="dialogForms" :model="visitorform" label-width="120px">
<el-row> <el-row>
<el-col :md="24" :sm="24"> <el-col :md="24" :sm="24">
<el-form-item label="姓名" prop="name"> <el-form-item label="姓名" prop="name">
<el-input v-model="visitorform.name" placeholder="请输入姓名" clearable></el-input> <el-input
</el-form-item> v-model="visitorform.name"
</el-col> placeholder="请输入姓名"
</el-row> clearable
<el-row> ></el-input>
<el-col :md="24" :sm="24"> </el-form-item>
<el-form-item label="用户名" prop="username"> </el-col>
<el-input v-model="visitorform.username" placeholder="请输入用户名" clearable></el-input> </el-row>
</el-form-item> <el-row>
</el-col> <el-col :md="24" :sm="24">
</el-row> <el-form-item label="用户名" prop="username">
</el-form> <el-input
<template #footer> v-model="visitorform.username"
<el-button @click="visitorsdialog = false"> </el-button> placeholder="请输入用户名"
<el-button type="primary" @click="submitvisitor"> </el-button> clearable
</template> ></el-input>
</sc-dialog> </el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<el-button @click="visitorsdialog = false"> </el-button>
<el-button type="primary" @click="submitvisitor"> </el-button>
</template>
</sc-dialog>
</template> </template>
<script> <script>
export default { export default {
data() { data() {
return { return {
redirect: undefined, deptCodePf: false,
userType: "admin", redirect: undefined,
visitorsdialog: false, userType: "admin",
visitorform: {}, visitorsdialog: false,
form: { visitorform: {},
user: "admin", form: {
password: "admin", user: "admin",
autologin: false, password: "admin",
}, autologin: false,
rules: { },
user: [ rules: {
{ user: [
required: true, {
message: this.$t("login.userError"), required: true,
trigger: "blur", message: this.$t("login.userError"),
}, trigger: "blur",
], },
password: [ ],
{ password: [
required: true, {
message: this.$t("login.PWError"), required: true,
trigger: "blur", message: this.$t("login.PWError"),
}, trigger: "blur",
], },
}, ],
islogin: false, },
}; islogin: false,
}, };
watch: { },
userType(val) { watch: {
if (val == "admin") { userType(val) {
this.form.user = "admin"; if (val == "admin") {
this.form.password = "admin"; this.form.user = "admin";
} else if (val == "user") { this.form.password = "admin";
this.form.user = "user"; } else if (val == "user") {
this.form.password = "user"; this.form.user = "user";
} this.form.password = "user";
}, }
$route: { },
handler: function (route) { $route: {
this.redirect = route.query && route.query.redirect; handler: function (route) {
}, this.redirect = route.query && route.query.redirect;
immediate: true, },
}, immediate: true,
}, },
mounted() { }, },
methods: { mounted() {
async login() { let base_info = this.$TOOL.data.get("BASE_INFO");
let that = this; if (base_info) {
var validate = await that.$refs.loginForm.validate().catch(() => { }); if (base_info.base.base_name_short.indexOf("智慧环保") != -1) {
if (!validate) { this.deptCodePf = true;
return false; }
} }
that.islogin = true; },
var data = { methods: {
username: that.form.user, async login() {
// password: that.$TOOL.crypto.MD5(that.form.password) let that = this;
password: that.form.password, var validate = await that.$refs.loginForm
}; .validate()
//token .catch(() => {});
try { if (!validate) {
var res = await that.$API.auth.token.post(data); return false;
that.$TOOL.data.set("TOKEN", res.access); }
that.$TOOL.data.set("TOKEN_REFRESH", res.refresh); that.islogin = true;
that.$TOOL.data.set("TOKEN_TIME", new Date().getTime()); var data = {
try { username: that.form.user,
var res1 = await that.$API.auth.info.get(); // password: that.$TOOL.crypto.MD5(that.form.password)
that.$TOOL.data.set("USER_INFO", res1); password: that.form.password,
that.$TOOL.data.set("PERMISSIONS", Object.keys(res1.perms)); };
//token
try {
var res = await that.$API.auth.token.post(data);
that.$TOOL.data.set("TOKEN", res.access);
that.$TOOL.data.set("TOKEN_REFRESH", res.refresh);
that.$TOOL.data.set("TOKEN_TIME", new Date().getTime());
try {
var res1 = await that.$API.auth.info.get();
that.$TOOL.data.set("USER_INFO", res1);
that.$TOOL.data.set("PERMISSIONS", Object.keys(res1.perms));
let base_dashboard = this.$TOOL.data.get('BASE_INFO').base.base_dashboard; let base_dashboard =
if (this.redirect) { this.$TOOL.data.get("BASE_INFO").base.base_dashboard;
base_dashboard = this.redirect; if (this.redirect) {
} base_dashboard = this.redirect;
else if (base_dashboard == null || base_dashboard == undefined) { } else if (
base_dashboard = '/dashboard' base_dashboard == null ||
} base_dashboard == undefined
if (this.$TOOL.data.get('BASE_INFO').base.base_name_short.indexOf('曲阳') != -1) { ) {
if (res1.type === 'employee') { base_dashboard = "/dashboard";
this.$router.replace({ }
path: base_dashboard, if (
}); this.$TOOL.data
} else { .get("BASE_INFO")
this.$router.replace({ .base.base_name_short.indexOf("曲阳") != -1
path: "/rpm/rpj", ) {
}); if (res1.type === "employee") {
} this.$router.replace({
that.$message.success("Login Success 登录成功"); path: base_dashboard,
that.islogin = false; });
that.$API.am.area.list.req({ page_size: 999 }).then(res => { } else {
if (res.err_msg) { this.$router.replace({
} else { path: "/rpm/rpj",
debugger; });
let areaList = res.results; }
that.$TOOL.data.set("qyjyAreaList", areaList); that.$message.success("Login Success 登录成功");
} that.islogin = false;
}) that.$API.am.area.list
} else { .req({ page_size: 999 })
this.$router.replace({ .then((res) => {
path: base_dashboard, if (res.err_msg) {
}); } else {
} debugger;
} catch (err) { let areaList = res.results;
that.islogin = false; that.$TOOL.data.set(
console.log(err); "qyjyAreaList",
} areaList
} catch (err) { );
that.islogin = false; }
console.log(err); });
} finally { } else {
that.islogin = false; this.$router.replace({
} path: base_dashboard,
}, });
visitors() { }
this.visitorsdialog = true; } catch (err) {
}, that.islogin = false;
submitvisitor() { console.log(err);
this.$API.vm.visitor.createz }
.req(this.visitorform) } catch (err) {
.then((res) => { that.islogin = false;
this.$message.success("创建成功!"); console.log(err);
this.visitorsdialog = false; } finally {
return res; that.islogin = false;
}) }
.catch((err) => { },
return err; visitors() {
}); this.visitorsdialog = true;
} },
}, submitvisitor() {
this.$API.vm.visitor.createz
.req(this.visitorform)
.then((res) => {
this.$message.success("创建成功!");
this.visitorsdialog = false;
return res;
})
.catch((err) => {
return err;
});
},
},
}; };
</script> </script>

View File

@ -1,8 +1,22 @@
<template> <template>
<div class="login_bg"> <div :class="{ 'login-container': deptCodePf }">
<!-- <div class="right-con" :style="{backgroundImage: 'url(' + baseConfig.base_logo + ')'}"></div> --> <!-- <div class="right-con" :style="{backgroundImage: 'url(' + baseConfig.base_logo + ')'}"></div> -->
<div class="login_adv" <div class="login_adv" v-if="deptCodePf">
:style="{ 'background-image': baseConfig.base_logo_side == '' ? 'url(img/logo_side.png)' : 'url(' + baseConfig.base_logo_side + ')' }"> <div class="login_adv__title">
<h2 v-if="baseConfig.base_name">{{ baseConfig.base_name }}</h2>
</div>
<div class="login_adv__mask"></div>
</div>
<div
class="login_adv"
v-else
:style="{
'background-image':
baseConfig.base_logo_side == ''
? 'url(img/logo_side.png)'
: 'url(' + baseConfig.base_logo_side + ')',
}"
>
<div class="login_adv__title"> <div class="login_adv__title">
<h2 v-if="baseConfig.base_name">{{ baseConfig.base_name }}</h2> <h2 v-if="baseConfig.base_name">{{ baseConfig.base_name }}</h2>
</div> </div>
@ -11,19 +25,32 @@
© {{$CONFIG.APP_NAMES}} {{$CONFIG.APP_VER}} © {{$CONFIG.APP_NAMES}} {{$CONFIG.APP_VER}}
</div> --> </div> -->
</div> </div>
<div class="login_main">
<div class="login_config">
<el-button :icon="config.dark ? 'el-icon-sunny' : 'el-icon-moon'" circle type="info"
@click="configDark"></el-button>
<div class="login_main" style="height: 100%; z-index: 10">
<div class="login_config">
<el-button
:icon="config.dark ? 'el-icon-sunny' : 'el-icon-moon'"
circle
type="info"
@click="configDark"
></el-button>
</div> </div>
<div class="login-form"> <div
:class="[deptCodePf ? 'login-form_huanbao' : '', 'login-form']"
>
<div class="login-header"> <div class="login-header">
<div class="logo" v-if="baseConfig.name == 'photon'"> <div class="logo" v-if="baseConfig.name == 'photon'">
<img id="photonImg" :alt="baseConfig.base_login" :src="baseConfig.base_login"> <img
id="photonImg"
:alt="baseConfig.base_login"
:src="baseConfig.base_login"
/>
</div> </div>
<div class="logo" v-else> <div class="logo" v-else>
<img :alt="baseConfig.base_name_short" :src="baseConfig.base_logo"> <img
:alt="baseConfig.base_name_short"
:src="baseConfig.base_logo"
/>
<label>{{ baseConfig.base_name }}</label> <label>{{ baseConfig.base_name }}</label>
</div> </div>
</div> </div>
@ -35,7 +62,6 @@
<el-tab-pane :label="$t('login.mobileLogin')" lazy> <el-tab-pane :label="$t('login.mobileLogin')" lazy>
<phone-form></phone-form> <phone-form></phone-form>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<!-- 微信登陆 <!-- 微信登陆
<el-divider>{{ $t('login.signInOther') }}</el-divider> <el-divider>{{ $t('login.signInOther') }}</el-divider>
@ -43,11 +69,20 @@
<el-button type="success" icon="sc-icon-wechat" circle @click="wechatLogin"></el-button> <el-button type="success" icon="sc-icon-wechat" circle @click="wechatLogin"></el-button>
</div> </div>
--> -->
<div class="login-oauth" v-if="baseConfig.base_name == '曲阳金隅安全智能管控平台'"> <div
<el-button type="default" @click="appDown">安卓APP</el-button> class="login-oauth"
v-if="baseConfig.base_name == '曲阳金隅安全智能管控平台'"
>
<el-button type="default" @click="appDown"
>安卓APP</el-button
>
<el-button type="default" @click="h5Show">H5访问</el-button> <el-button type="default" @click="h5Show">H5访问</el-button>
<el-button type="primary" @click="MonitorOpen" <el-button
style="background-color:orange;border-color:orange">监控视频</el-button> type="primary"
@click="MonitorOpen"
style="background-color: orange; border-color: orange"
>监控视频</el-button
>
</div> </div>
<!-- <div class="login-oauth" v-else> <!-- <div class="login-oauth" v-else>
<el-button type="default" @click="faceLogin">刷脸登录</el-button> <el-button type="default" @click="faceLogin">刷脸登录</el-button>
@ -55,17 +90,38 @@
</div> </div>
</div> </div>
</div> </div>
<el-dialog v-model="showWechatLogin" :title="$t('login.wechatLoginTitle')" :width="400" destroy-on-close> <el-dialog
v-model="showWechatLogin"
:title="$t('login.wechatLoginTitle')"
:width="400"
destroy-on-close
>
<div class="qrCodeLogin"> <div class="qrCodeLogin">
<sc-qr-code class="qrCode" :text="WechatLoginCode" :size="200"></sc-qr-code> <sc-qr-code
<p class="msg">{{ $tc('login.wechatLoginMsg', 1) }}<br />{{ $tc('login.wechatLoginMsg', 2) }}</p> class="qrCode"
:text="WechatLoginCode"
:size="200"
></sc-qr-code>
<p class="msg">
{{ $tc("login.wechatLoginMsg", 1) }}<br />{{
$tc("login.wechatLoginMsg", 2)
}}
</p>
<div class="qrCodeLogin-result" v-if="isWechatLoginResult"> <div class="qrCodeLogin-result" v-if="isWechatLoginResult">
<el-result icon="success" :title="$tc('login.wechatLoginResult', 1)" <el-result
:sub-title="$tc('login.wechatLoginResult', 2)"></el-result> icon="success"
:title="$tc('login.wechatLoginResult', 1)"
:sub-title="$tc('login.wechatLoginResult', 2)"
></el-result>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog v-model="showApp" title="安卓APP下载" :width="400" destroy-on-close> <el-dialog
v-model="showApp"
title="安卓APP下载"
:width="400"
destroy-on-close
>
<div class="qrCodeLogin"> <div class="qrCodeLogin">
<sc-qr-code class="qrCode" :size="200" :text="appUrl"></sc-qr-code> <sc-qr-code class="qrCode" :size="200" :text="appUrl"></sc-qr-code>
</div> </div>
@ -75,94 +131,105 @@
<sc-qr-code class="qrCode" :size="200" :text="h5Url"></sc-qr-code> <sc-qr-code class="qrCode" :size="200" :text="h5Url"></sc-qr-code>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog v-model="limitedPhoto" @close="closeCamera" id="loginFaceWrap" style="width: 664px;"> <el-dialog
<h1 style="text-align: center;">人脸登录</h1> v-model="limitedPhoto"
@close="closeCamera"
id="loginFaceWrap"
style="width: 664px"
>
<h1 style="text-align: center">人脸登录</h1>
<div class="testTracking"> <div class="testTracking">
<faceLogin ref="faceTracking" @close="closeCamera" name="faceLogin" @func="getMsgFormSon"></faceLogin> <faceLogin
ref="faceTracking"
@close="closeCamera"
name="faceLogin"
@func="getMsgFormSon"
></faceLogin>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { Monitor } from '@element-plus/icons-vue' import { Monitor } from "@element-plus/icons-vue";
import passwordForm from './components/passwordForm' import passwordForm from "./components/passwordForm";
import phoneForm from './components/phoneForm' import phoneForm from "./components/phoneForm";
import faceLogin from '@/components/faceLogin' import faceLogin from "@/components/faceLogin";
export default { export default {
components: { components: {
passwordForm, passwordForm,
phoneForm, phoneForm,
faceLogin faceLogin,
}, },
data() { data() {
return { return {
config: { config: {
lang: this.$TOOL.data.get('APP_LANG') || this.$CONFIG.LANG, lang: this.$TOOL.data.get("APP_LANG") || this.$CONFIG.LANG,
dark: this.$TOOL.data.get('APP_DARK') || false dark: this.$TOOL.data.get("APP_DARK") || false,
}, },
lang: [ lang: [
{ {
name: '简体中文', name: "简体中文",
value: 'zh-cn', value: "zh-cn",
}, },
{ {
name: 'English', name: "English",
value: 'en', value: "en",
} },
], ],
deptCodePf: false,
baseConfig: {}, baseConfig: {},
limitedPhoto: false, limitedPhoto: false,
WechatLoginCode: "", WechatLoginCode: "",
showWechatLogin: false, showWechatLogin: false,
isWechatLoginResult: false, isWechatLoginResult: false,
showApp: false, showApp: false,
appUrl: 'http://222.222.144.147:6013/media/zc_ehs.apk', appUrl: "http://222.222.144.147:6013/media/zc_ehs.apk",
showH5: false, showH5: false,
h5Url: 'http://222.222.144.147:6013/h5/' h5Url: "http://222.222.144.147:6013/h5/",
} };
}, },
watch: { watch: {
'config.dark'(val) { "config.dark"(val) {
if (val) { if (val) {
document.documentElement.classList.add("dark") document.documentElement.classList.add("dark");
this.$TOOL.data.set("APP_DARK", val) this.$TOOL.data.set("APP_DARK", val);
} else { } else {
document.documentElement.classList.remove("dark") document.documentElement.classList.remove("dark");
this.$TOOL.data.remove("APP_DARK") this.$TOOL.data.remove("APP_DARK");
} }
}, },
'config.lang'(val) { "config.lang"(val) {
this.$i18n.locale = val this.$i18n.locale = val;
this.$TOOL.data.set("APP_LANG", val) this.$TOOL.data.set("APP_LANG", val);
} },
}, },
created: function () { created: function () {
this.$TOOL.data.remove("TOKEN") this.$TOOL.data.remove("TOKEN");
this.$TOOL.data.remove("TOKEN_TIME") this.$TOOL.data.remove("TOKEN_TIME");
this.$TOOL.data.remove("TOKEN_REFRESH") this.$TOOL.data.remove("TOKEN_REFRESH");
this.$TOOL.data.remove("USER_INFO") this.$TOOL.data.remove("USER_INFO");
this.$TOOL.data.remove("MENU") this.$TOOL.data.remove("MENU");
this.$TOOL.data.remove("PERMISSIONS") this.$TOOL.data.remove("PERMISSIONS");
this.$TOOL.data.remove("DASHBOARDGRID") this.$TOOL.data.remove("DASHBOARDGRID");
this.$TOOL.data.remove("grid") this.$TOOL.data.remove("grid");
this.$store.commit("clearViewTags") this.$store.commit("clearViewTags");
this.$store.commit("clearKeepLive") this.$store.commit("clearKeepLive");
this.$store.commit("clearIframeList") this.$store.commit("clearIframeList");
//console.log('%c SCUI %c Gitee: https://gitee.com/lolicode/scui', 'background:#666;color:#fff;border-radius:3px;', '') //console.log('%c SCUI %c Gitee: https://gitee.com/lolicode/scui', 'background:#666;color:#fff;border-radius:3px;', '')
}, },
mounted() { mounted() {
let url1 = window.location.href; let url1 = window.location.href;
this.project_code = url1.split('/')[3]; this.project_code = url1.split("/")[3];
this.getDept(); this.getDept();
}, },
methods: { methods: {
getDept() { getDept() {
let that = this; let that = this;
let req = {}; let req = {};
if (that.project_code == undefined || that.project_code == '#') { if (that.project_code == undefined || that.project_code == "#") {
if (process.env.NODE_ENV == 'development') { if (process.env.NODE_ENV == "development") {
req.project_code = process.env.VUE_APP_PJ; req.project_code = process.env.VUE_APP_PJ;
} }
} else { } else {
@ -172,8 +239,12 @@ export default {
that.baseConfig = res.base; that.baseConfig = res.base;
that.$store.commit("SET_baseName", res.base.base_name); that.$store.commit("SET_baseName", res.base.base_name);
that.$store.commit("SET_baseLogo", res.base.base_logo); that.$store.commit("SET_baseLogo", res.base.base_logo);
that.$TOOL.data.set("BASE_INFO", res) that.$TOOL.data.set("BASE_INFO", res);
}) console.log("BASE_INFO", res);
if (res.base.base_name_short.indexOf("智慧环保") != -1) {
this.deptCodePf = true;
}
});
}, },
appDown() { appDown() {
this.showApp = true; this.showApp = true;
@ -182,7 +253,7 @@ export default {
this.showH5 = true; this.showH5 = true;
}, },
MonitorOpen() { MonitorOpen() {
window.open('http://10.99.5.79:5515/') window.open("http://10.99.5.79:5515/");
}, },
// //
faceLogin() { faceLogin() {
@ -195,24 +266,33 @@ export default {
// this.thisVideo.srcObject.getTracks()[0].stop(); // this.thisVideo.srcObject.getTracks()[0].stop();
}, },
configDark() { configDark() {
this.config.dark = this.config.dark ? false : true this.config.dark = this.config.dark ? false : true;
}, },
configLang(command) { configLang(command) {
this.config.lang = command.value this.config.lang = command.value;
}, },
wechatLogin() { wechatLogin() {
this.showWechatLogin = true this.showWechatLogin = true;
this.WechatLoginCode = "SCUI-823677237287236-" + new Date().getTime() this.WechatLoginCode =
"SCUI-823677237287236-" + new Date().getTime();
this.isWechatLoginResult = false; this.isWechatLoginResult = false;
setTimeout(() => { setTimeout(() => {
this.isWechatLoginResult = true this.isWechatLoginResult = true;
}, 3000) }, 3000);
} },
} },
} };
</script> </script>
<style scoped> <style scoped>
.login-container {
background-image: url("/public/img/pfBackgroundImg.jpg");
width: 100%;
height: 100%;
background-size: cover;
background-position: center;
position: relative;
}
.login_bg { .login_bg {
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -306,7 +386,13 @@ export default {
margin: auto; margin: auto;
padding: 20px 0; padding: 20px 0;
} }
.login-form_huanbao {
width: 450px;
margin: auto;
padding: 20px;
background: rgba(255, 255, 255, 0.6);
border-radius: 20px;
}
.login-header { .login-header {
margin-bottom: 40px; margin-bottom: 40px;
width: 460px; width: 460px;
@ -339,7 +425,8 @@ export default {
margin-top: 40px; margin-top: 40px;
} }
.login-form {} .login-form {
}
.login-form:deep(.el-tabs) .el-tabs__header { .login-form:deep(.el-tabs) .el-tabs__header {
margin-bottom: 25px; margin-bottom: 25px;