登录页
This commit is contained in:
parent
013531dfc8
commit
cdf1263d77
Binary file not shown.
|
After Width: | Height: | Size: 513 KiB |
|
|
@ -0,0 +1,253 @@
|
|||
<template>
|
||||
<div class="loginbody">
|
||||
|
||||
|
||||
<div class="login-box">
|
||||
<div class="input-box">
|
||||
<a-form @submit="onSubmit" :form="form">
|
||||
<a-alert type="error" :closable="true" v-show="error" :message="error" showIcon style="margin-bottom: 24px;" />
|
||||
|
||||
<a-form-item>
|
||||
<a-input autocomplete="autocomplete" size="large" placeholder="请输入账户名"
|
||||
v-decorator="['name', { rules: [{ required: true, message: '请输入账户名', whitespace: true }] }]">
|
||||
<a-icon slot="prefix" type="user" style="color: white;" />
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
<a-form-item>
|
||||
<a-input size="large" placeholder="请输入密码" autocomplete="autocomplete" type="password"
|
||||
v-decorator="['password', { rules: [{ required: true, message: '请输入密码', whitespace: true }] }]">
|
||||
<a-icon slot="prefix" type="lock" style="color: white;" />
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
<a-form-item>
|
||||
<a-button :loading="logging" style="width: 100%;margin-top: 24px" size="large" htmlType="submit"
|
||||
type="primary">登录</a-button>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
<switch-company v-model="companyShow" :data="companyData" @confirm="companyconfirm"
|
||||
ref="switchCompany"></switch-company>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<login-actions ref="loginActions"></login-actions>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { login, switchCompany, getProject } from '@/services/base/user'
|
||||
import { setAuthorization } from '@/utils/request'
|
||||
import { mapMutations } from 'vuex'
|
||||
import Cookie from 'js-cookie'
|
||||
import { USER_MODEL } from '@/services/base/api.js';
|
||||
import LoginActions from '@/components/login/loginActions.vue'
|
||||
|
||||
|
||||
|
||||
|
||||
export default {
|
||||
name: 'Login',
|
||||
components: { LoginActions },
|
||||
data() {
|
||||
return {
|
||||
logging: false,
|
||||
error: '',
|
||||
form: this.$form.createForm(this),
|
||||
mobileTest: "",
|
||||
user: {
|
||||
mobile: '',
|
||||
password: ''
|
||||
},
|
||||
Project: [],
|
||||
companyShow: false,
|
||||
companyData: [],
|
||||
company: Cookie.get('company'),
|
||||
loginResult: null
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
},
|
||||
beforeMount() {
|
||||
|
||||
getProject().then(result => { // 获取项目信息
|
||||
this.Project = result.data.data
|
||||
const project = result.data.data
|
||||
this.setProject(project) // 将项目信息存入vuex
|
||||
})
|
||||
|
||||
// 设置界面设置 的默认值
|
||||
Cookie.set(process.env.VUE_APP_LAYOUT_KEY, 'side')
|
||||
Cookie.set(process.env.VUE_APP_THEME_MODE_KEY, 'dark')
|
||||
Cookie.set(process.env.VUE_APP_THEME_COLOR_KEY, '#fa541c')
|
||||
|
||||
},
|
||||
created() {
|
||||
if (this.company != []) {
|
||||
// console.log("company:",this.company)
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
setTimeout(() => {
|
||||
if (!this.isMiddleAdmin()) {
|
||||
this.user.mobile = this.mobileTest;
|
||||
}
|
||||
this.form.setFieldsValue({
|
||||
name: this.user.mobile,
|
||||
password: this.user.password
|
||||
});
|
||||
|
||||
this.$refs.loginActions.initRoutes({});
|
||||
|
||||
}, 1000)
|
||||
}) // loadsh的pick方法
|
||||
|
||||
|
||||
},
|
||||
methods: {
|
||||
...mapMutations('account', ['setUid', 'setUser', 'setPermissions', 'setRoutesConfig', 'setSettings', 'setCompany', 'setProject']),
|
||||
|
||||
|
||||
companyconfirm({ row }) {
|
||||
this.companyShow = false;
|
||||
//没有选择公司,或者选择了第一个公司,直接登录
|
||||
if (!row || row.id == this.companyData[0].id) {
|
||||
this.afterLoginSuccess({
|
||||
token: this.loginResult.data.access_token,
|
||||
access_expire: this.loginResult.data.access_expire,
|
||||
uid: this.loginResult.data.uid,
|
||||
loginResMsg: this.loginResult.msg
|
||||
});
|
||||
}
|
||||
//选择了其他公司
|
||||
else {
|
||||
|
||||
setAuthorization({
|
||||
token: this.loginResult.data.access_token,
|
||||
expireAt: new Date(this.loginResult.data.access_expire * 1000)
|
||||
})
|
||||
|
||||
switchCompany(row.id).then(result => {
|
||||
result = result.data;
|
||||
this.afterLoginSuccess({
|
||||
token: result.data.access_token,
|
||||
access_expire: result.data.access_expire,
|
||||
uid: result.data.uid,
|
||||
loginResMsg: this.loginResult.msg
|
||||
});
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
isMiddleAdmin() {
|
||||
return USER_MODEL == "AdminUser";
|
||||
},
|
||||
onSubmit(e) {
|
||||
e.preventDefault()
|
||||
this.form.validateFields((err) => {
|
||||
if (!err) {
|
||||
this.logging = true
|
||||
const name = this.form.getFieldValue('name')
|
||||
const password = this.form.getFieldValue('password')
|
||||
login(name, password).then(this.afterLogin)
|
||||
}
|
||||
})
|
||||
},
|
||||
afterLogin(res) {
|
||||
console.log(res)
|
||||
this.logging = false
|
||||
const loginRes = res.data
|
||||
if (loginRes.code == 200) {
|
||||
if (!this.isMiddleAdmin()) {
|
||||
|
||||
|
||||
|
||||
this.companyData = loginRes.data.company_switch;
|
||||
this.loginResult = loginRes;
|
||||
|
||||
|
||||
if (!this.companyData || !this.companyData.length) {
|
||||
|
||||
this.afterLoginSuccess({
|
||||
token: this.loginResult.data.access_token,
|
||||
access_expire: this.loginResult.data.access_expire,
|
||||
uid: this.loginResult.data.uid,
|
||||
loginResMsg: this.loginResult.msg
|
||||
});
|
||||
} else {
|
||||
|
||||
this.companyShow = true;
|
||||
}
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
this.afterLoginSuccess({
|
||||
token: loginRes.data.access_token,
|
||||
access_expire: loginRes.data.access_expire,
|
||||
uid: loginRes.data.uid,
|
||||
loginResMsg: loginRes.msg
|
||||
});
|
||||
|
||||
|
||||
} else {
|
||||
console.log("登录失败")
|
||||
this.error = loginRes.message || loginRes.msg
|
||||
}
|
||||
},
|
||||
|
||||
afterLoginSuccess({ token, access_expire, uid, loginResMsg }) {
|
||||
|
||||
|
||||
this.$refs.loginActions.afterLoginSuccess({ token, access_expire, uid, msg: loginResMsg });
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
* {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.loginbody {
|
||||
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
/*在容器中央对齐弹性项目*/
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
min-height: 100vh;
|
||||
background-image: url(../../assets/img/fx-login-bg.jpg);
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
|
||||
.login-box {
|
||||
position: absolute;
|
||||
left: 70%;
|
||||
top: 40%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-content: space-around;
|
||||
flex-wrap: wrap;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
|
||||
.login-box .ant-input{
|
||||
background: #1C1F52 !important;
|
||||
color: white !important;
|
||||
width:300px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,2 +1,13 @@
|
|||
import Login from './Login'
|
||||
export default Login
|
||||
import FxMoldLogin from './FxMoldLogin'
|
||||
|
||||
let loginPage = {};
|
||||
if(process.env.VUE_APP_BEID == 5 || process.env.VUE_APP_BEID == 6){
|
||||
loginPage = FxMoldLogin
|
||||
}else{
|
||||
loginPage =Login
|
||||
}
|
||||
|
||||
|
||||
|
||||
export default loginPage
|
||||
Loading…
Reference in New Issue