|
|
@ -1,12 +1,10 @@ |
|
|
<template> |
|
|
<template> |
|
|
<div class="login"> |
|
|
<div class="login"> |
|
|
|
|
|
|
|
|
<el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form"> |
|
|
<el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form"> |
|
|
<h3 class="title">盒子IM后台管理</h3> |
|
|
<h3 class="title">多客服后台管理</h3> |
|
|
<el-form-item v-if="tenantEnabled" prop="tenantId"> |
|
|
<el-form-item v-if="tenantEnabled" prop="tenantId"> |
|
|
<el-select v-model="loginForm.tenantId" filterable placeholder="请选择/输入公司名称" style="width: 100%"> |
|
|
<el-select v-model="loginForm.tenantId" filterable placeholder="请选择/输入公司名称" style="width: 100%"> |
|
|
<el-option v-for="item in tenantList" :key="item.tenantId" :label="item.companyName" |
|
|
<el-option v-for="item in tenantList" :key="item.tenantId" :label="item.companyName" :value="item.tenantId"></el-option> |
|
|
:value="item.tenantId"></el-option> |
|
|
|
|
|
<template #prefix><svg-icon icon-class="company" class="el-input__icon input-icon" /></template> |
|
|
<template #prefix><svg-icon icon-class="company" class="el-input__icon input-icon" /></template> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
@ -16,14 +14,12 @@ |
|
|
</el-input> |
|
|
</el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item prop="password"> |
|
|
<el-form-item prop="password"> |
|
|
<el-input v-model="loginForm.password" type="password" size="large" auto-complete="off" placeholder="密码" |
|
|
<el-input v-model="loginForm.password" type="password" size="large" auto-complete="off" placeholder="密码" @keyup.enter="handleLogin"> |
|
|
@keyup.enter="handleLogin"> |
|
|
|
|
|
<template #prefix><svg-icon icon-class="password" class="el-input__icon input-icon" /></template> |
|
|
<template #prefix><svg-icon icon-class="password" class="el-input__icon input-icon" /></template> |
|
|
</el-input> |
|
|
</el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="captchaEnabled" prop="code"> |
|
|
<el-form-item v-if="captchaEnabled" prop="code"> |
|
|
<el-input v-model="loginForm.code" size="large" auto-complete="off" placeholder="验证码" style="width: 63%" |
|
|
<el-input v-model="loginForm.code" size="large" auto-complete="off" placeholder="验证码" style="width: 63%" @keyup.enter="handleLogin"> |
|
|
@keyup.enter="handleLogin"> |
|
|
|
|
|
<template #prefix><svg-icon icon-class="validCode" class="el-input__icon input-icon" /></template> |
|
|
<template #prefix><svg-icon icon-class="validCode" class="el-input__icon input-icon" /></template> |
|
|
</el-input> |
|
|
</el-input> |
|
|
<div class="login-code"> |
|
|
<div class="login-code"> |
|
|
@ -50,13 +46,12 @@ import { useUserStore } from '@/store/modules/user'; |
|
|
import { LoginData, TenantVO } from '@/api/types'; |
|
|
import { LoginData, TenantVO } from '@/api/types'; |
|
|
import { to } from 'await-to-js'; |
|
|
import { to } from 'await-to-js'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const userStore = useUserStore(); |
|
|
const userStore = useUserStore(); |
|
|
const router = useRouter(); |
|
|
const router = useRouter(); |
|
|
|
|
|
|
|
|
const loginForm = ref<LoginData>({ |
|
|
const loginForm = ref<LoginData>({ |
|
|
tenantId: '000000', |
|
|
tenantId: '000000', |
|
|
username: 'admin', |
|
|
username: '', |
|
|
password: '', |
|
|
password: '', |
|
|
rememberMe: false, |
|
|
rememberMe: false, |
|
|
code: '', |
|
|
code: '', |
|
|
@ -168,8 +163,6 @@ const initTenantList = async () => { |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
onMounted(() => { |
|
|
onMounted(() => { |
|
|
getCode(); |
|
|
getCode(); |
|
|
initTenantList(); |
|
|
initTenantList(); |
|
|
@ -185,11 +178,8 @@ onMounted(() => { |
|
|
height: 100%; |
|
|
height: 100%; |
|
|
background-image: url('../assets/images/login-background.jpg'); |
|
|
background-image: url('../assets/images/login-background.jpg'); |
|
|
background-size: 100% 100%; |
|
|
background-size: 100% 100%; |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.title { |
|
|
.title { |
|
|
margin: 0px auto 30px auto; |
|
|
margin: 0px auto 30px auto; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
|