项目登陆路径调整(变成 design/login?project=xxx)

This commit is contained in:
joylink_cuiweidong 2020-07-07 15:42:56 +08:00
parent 92da104ad0
commit c345a60997
6 changed files with 100 additions and 558 deletions

View File

@ -51,9 +51,9 @@ function getRouteInfo(to) {
const whitePage = PermissionParam[current_session] ? PermissionParam[current_session].whitePage : ''; const whitePage = PermissionParam[current_session] ? PermissionParam[current_session].whitePage : '';
loginPath = whitePage || loginPage; loginPath = whitePage || loginPage;
if (to.query.projectDevice && to.query.ibpDevice) { if (to.query.projectDevice && to.query.ibpDevice) {
loginPath = `${loginPath}?projectDevice=${to.query.projectDevice}&ibpDevice=${to.query.ibpDevice}`; loginPath = `${loginPath}&projectDevice=${to.query.projectDevice}&ibpDevice=${to.query.ibpDevice}`;
} else if (to.query.projectDevice) { } else if (to.query.projectDevice) {
loginPath = `${loginPath}?projectDevice=${to.query.projectDevice}`; loginPath = `${loginPath}&projectDevice=${to.query.projectDevice}`;
} }
if (current_session && current_session.startsWith('jsxt') || current_session && current_session.startsWith('refereeJsxt')) { if (current_session && current_session.startsWith('jsxt') || current_session && current_session.startsWith('refereeJsxt')) {
const raceId = getSessionStorage('raceId'); // 登陆时候保存 竞赛id const raceId = getSessionStorage('raceId'); // 登陆时候保存 竞赛id

View File

@ -6,7 +6,8 @@ Vue.use(VueRouter);
/* Layout */ /* Layout */
const Layout = () => import('@/layout'); const Layout = () => import('@/layout');
const Login = () => import('@/views/login/hydLogin'); // const Login = () => import('@/views/login/hydLogin');
const Login = () => import('@/views/login/index');
const Jlmap3dedit = () => import('@/views/jlmap3d/edit/jlmap3dedit'); const Jlmap3dedit = () => import('@/views/jlmap3d/edit/jlmap3dedit');
const Jlmap3d = () => import('@/views/jlmap3d/drive/jl3ddrive'); const Jlmap3d = () => import('@/views/jlmap3d/drive/jl3ddrive');

View File

@ -15,7 +15,8 @@ import { LoginParams } from '@/utils/login';
export const loginInfo = { export const loginInfo = {
xty: { xty: {
title: '西安铁路职业技术学院城市轨道交通实训平台', title: '西安铁路职业技术学院城市轨道交通实训平台',
loginPath: '/xty/login', // loginPath: '/xty/login',
loginPath:'/login?pro=xty',
loginParam: 'XTY', loginParam: 'XTY',
navigationLogoWidth: '40px', navigationLogoWidth: '40px',
navigationMarginLeft: '60px' navigationMarginLeft: '60px'
@ -36,28 +37,33 @@ export const loginInfo = {
}, },
designxty: { designxty: {
title: '西安铁路职业技术学院城市轨道交通设计平台', title: '西安铁路职业技术学院城市轨道交通设计平台',
loginPath: '/designxty/login', // loginPath: '/designxty/login',
loginPath:'/design/login?project=xty',
loginParam: 'XTY', loginParam: 'XTY',
navigationLogoWidth: '40px', navigationLogoWidth: '40px',
navigationMarginLeft: '60px' navigationMarginLeft: '60px'
}, },
gzb: { gzb: {
title: '贵州装备制造职业学院城市轨道交通实训平台', title: '贵州装备制造职业学院城市轨道交通实训平台',
loginPath: '/gzb/login', // loginPath: '/gzb/login',
loginPath:'/login?project=gzb',
loginParam: 'GZB', loginParam: 'GZB',
navigationLogoWidth: '40px', navigationLogoWidth: '40px',
navigationMarginLeft: '60px' navigationMarginLeft: '60px'
}, },
designgzb: { designgzb: {
title: '贵州装备制造职业学院城市轨道交通设计平台', title: '贵州装备制造职业学院城市轨道交通设计平台',
loginPath: '/designgzb/login', // loginPath: '/designgzb/login',
loginPath:'/design/login?project=gzb',
loginParam: 'GZB', loginParam: 'GZB',
navigationLogoWidth: '40px', navigationLogoWidth: '40px',
navigationMarginLeft: '60px' navigationMarginLeft: '60px'
}, },
hyd: { hyd: {
title: '城市轨道交通综合行车模拟仿真系统V1.0', title: '城市轨道交通综合行车模拟仿真系统V1.0',
loginPath: '/login', loginTitle: '城市轨道交通综合行车模拟仿真系统V1.0',
logoWidth: '140px',
loginPath: '/login?project=hyd',
bottomColumn: '哈尔滨盈达科技有限公司 联系电话:0451-87001273', bottomColumn: '哈尔滨盈达科技有限公司 联系电话:0451-87001273',
loginParam: 'DEFAULT', loginParam: 'DEFAULT',
navigationLogoWidth: '120px', navigationLogoWidth: '120px',
@ -65,7 +71,9 @@ export const loginInfo = {
}, },
designhyd: { designhyd: {
title: '城市轨道交通设计平台V1.0', title: '城市轨道交通设计平台V1.0',
loginPath: '/design/login', loginTitle: '城市轨道交通设计平台V1.0',
logoWidth: '140px',
loginPath: '/design/login?project=hyd',
bottomColumn: '哈尔滨盈达科技有限公司 联系电话:0451-87001273', bottomColumn: '哈尔滨盈达科技有限公司 联系电话:0451-87001273',
loginParam: 'DEFAULT', loginParam: 'DEFAULT',
navigationLogoWidth: '120px', navigationLogoWidth: '120px',
@ -77,7 +85,8 @@ export const loginInfo = {
loginTitle: '调度一部', loginTitle: '调度一部',
homeTitle: '调度一部', homeTitle: '调度一部',
browserTitle: '西安地铁调度一部城市轨道交通实训平台', browserTitle: '西安地铁调度一部城市轨道交通实训平台',
loginPath: '/xadt/login', loginPath:'/login?project=xadt',
// loginPath: '/xadt/login',
loginParam: 'DEFAULT', loginParam: 'DEFAULT',
navigationLogoWidth: '40px', navigationLogoWidth: '40px',
navigationMarginLeft: '60px' navigationMarginLeft: '60px'
@ -88,7 +97,8 @@ export const loginInfo = {
loginTitle: '调度一部', loginTitle: '调度一部',
homeTitle: '调度一部', homeTitle: '调度一部',
browserTitle: '西安地铁调度一部城市轨道交通设计平台', browserTitle: '西安地铁调度一部城市轨道交通设计平台',
loginPath: '/designxadt/login', // loginPath: '/designxadt/login',
loginPath:'/design/login?project=xadt',
loginParam: 'DEFAULT', loginParam: 'DEFAULT',
navigationLogoWidth: '40px', navigationLogoWidth: '40px',
navigationMarginLeft: '60px' navigationMarginLeft: '60px'
@ -109,7 +119,8 @@ export const loginInfo = {
}, },
jyd: { jyd: {
title: '城市轨道交通实训平台', title: '城市轨道交通实训平台',
loginPath: '/jyd/login', // loginPath: '/jyd/login',
loginPath:'/login?project=jyd',
logoWidth: '300px', logoWidth: '300px',
navigationLogoWidth: '120px', navigationLogoWidth: '120px',
navigationMarginLeft: '140px', navigationMarginLeft: '140px',
@ -125,7 +136,8 @@ export const loginInfo = {
logoWidth: '300px', logoWidth: '300px',
navigationLogoWidth: '120px', navigationLogoWidth: '120px',
navigationMarginLeft: '140px', navigationMarginLeft: '140px',
loginPath: '/designjyd/login', // loginPath: '/designjyd/login',
loginPath:'/design/login?project=jyd',
bottomColumn: '', bottomColumn: '',
bottomIcon: Bottom_Jyd, bottomIcon: Bottom_Jyd,
linkIcon: Link_Jyd, linkIcon: Link_Jyd,
@ -133,19 +145,25 @@ export const loginInfo = {
}, },
tky: { tky: {
title: '城市轨道交通实训平台', title: '城市轨道交通实训平台',
loginPath: '/tky/login', // loginPath: '/tky/login',
loginTitle: 'jyd', loginPath:'/login?project=tky',
loginTitle: '空串',
bottomColumn: '', bottomColumn: '',
bottomIcon: FaviconTky, bottomIcon: FaviconTky,
loginParam: 'DEFAULT' loginParam: 'DEFAULT',
navigationLogoWidth: '75px',
navigationMarginLeft: '90px'
}, },
designtky: { designtky: {
title: '城市轨道交通设计平台', title: '城市轨道交通设计平台',
loginPath: '/designtky/login', // loginPath: '/designtky/login',
loginTitle: 'jyd', loginPath:'/design/login?project=tky',
loginTitle: '空串',
bottomIcon: FaviconTky, bottomIcon: FaviconTky,
bottomColumn: '', bottomColumn: '',
loginParam: 'DEFAULT' loginParam: 'DEFAULT',
navigationLogoWidth: '75px',
navigationMarginLeft: '90px'
} }
}; };
@ -191,25 +209,33 @@ export const GenerateRouteProjectList = ['xty', 'designxty', 'gzb', 'designgzb',
export const goOtherPlatformMenu = { // 导航栏快速切换平台 export const goOtherPlatformMenu = { // 导航栏快速切换平台
login: '/design/login', login: '/design/login',
design: '/login', design: '/login',
xty: '/designxty/login', xty: '/design/login?project=xty',
designxty: '/xty/login', designxty: '/login?project=xty',
gzb: '/designgzb/login', gzb: '/design/login?project=gzb',
designgzb: '/gzb/login', designgzb: '/login?project=gzb',
hyd: '/design/login', hyd: '/design/login?project=hyd',
designhyd: '/login', designhyd: '/login?project=hyd',
xadt: '/designxadt/login', xadt: '/design/login?project=xadt',
designxadt: '/xadt/login', designxadt: '/login?project=xadt',
jyd: '/designjyd/login', jyd: '/design/login?project=jyd',
designjyd: '/jyd/login', designjyd: '/login?project=jyd',
tky: '/designtky/login', tky: '/design/login?project=tky',
designtky: '/tky/login' designtky: '/login?project=tky'
}; };
export const PermissionParam = { // 路径权限处理所需参数配置(跳转白名单&路径正则匹配&clientId export const PermissionParam = { // 路径权限处理所需参数配置(跳转白名单&路径正则匹配&clientId
hyd: { hyd: {
systemType: '011' // systemType: '011'
whitePage: '/login?project=hyd',
reg: /^\/hyd/,
systemType: '011',
clientId: null
}, },
designhyd: { designhyd: {
systemType: '011' // systemType: '011'
whitePage: '/design/login?project=hyd',
reg: /^\/designhyd/,
systemType: '011',
clientId: LoginParams.Design.clientId
}, },
login: { login: {
systemType: '011' systemType: '011'
@ -218,61 +244,61 @@ export const PermissionParam = { // 路径权限处理所需参数配置(跳
systemType: '011' systemType: '011'
}, },
designxty: { designxty: {
whitePage: '/designxty/login', whitePage: '/design/login?project=xty',
reg: /^\/designxty/, reg: /^\/designxty/,
systemType: '013', systemType: '013',
clientId: LoginParams.Design.clientId clientId: LoginParams.Design.clientId
}, },
designgzb: { designgzb: {
whitePage: '/designgzb/login', whitePage: '/design/login?project=gzb',
reg: /^\/designgzb/, reg: /^\/designgzb/,
systemType: '014', systemType: '014',
clientId: LoginParams.Design.clientId clientId: LoginParams.Design.clientId
}, },
designxadt: { designxadt: {
whitePage: '/designxadt/login', whitePage: '/design/login?project=xadt',
reg: /^\/designxadt/, reg: /^\/designxadt/,
systemType: '012', systemType: '012',
clientId: LoginParams.Design.clientId clientId: LoginParams.Design.clientId
}, },
designjyd: { designjyd: {
whitePage: '/designjyd/login', whitePage: '/design/login?project=jyd',
reg: /^\/designjyd/, reg: /^\/designjyd/,
systemType: '017', systemType: '017',
clientId: LoginParams.Design.clientId clientId: LoginParams.Design.clientId
}, },
designtky: { designtky: {
whitePage: '/designtky/login', whitePage: '/design/login?project=tky',
reg: /^\/designtky/, reg: /^\/designtky/,
systemType: '018', systemType: '018',
clientId: LoginParams.Design.clientId clientId: LoginParams.Design.clientId
}, },
xty: { xty: {
whitePage: '/xty/login', whitePage: '/login?project=xty',
reg: /^\/xty/, reg: /^\/xty/,
systemType: '013', systemType: '013',
clientId: null clientId: null
}, },
gzb: { gzb: {
whitePage: '/gzb/login', whitePage: '/login?project=gzb',
reg: /^\/gzb/, reg: /^\/gzb/,
systemType: '014', systemType: '014',
clientId: null clientId: null
}, },
xadt: { xadt: {
whitePage: '/xadt/login', whitePage: '/login?project=xadt',
reg: /^\/xadt/, reg: /^\/xadt/,
systemType: '012', systemType: '012',
clientId: null clientId: null
}, },
jyd: { jyd: {
whitePage: '/jyd/login', whitePage: '/login?project=jyd',
reg: /^\/jyd/, reg: /^\/jyd/,
systemType: '017', systemType: '017',
clientId: null clientId: null
}, },
tky: { tky: {
whitePage: '/tky/login', whitePage: '/login?project=tky',
reg: /^\/tky/, reg: /^\/tky/,
systemType: '018', systemType: '018',
clientId: null clientId: null

View File

@ -1,499 +0,0 @@
<template>
<div
v-loading="ibpDevice && !loadingCode"
class="login-container"
:style="{'background-image': 'url('+bgImg+')'}"
element-loading-spinner="el-icon-loading"
element-loading-text="检测主工作站登录中"
element-loading-background="rgba(0, 0, 0, 0)"
>
<el-button v-if="ibpDevice && loadingCode" type="text" style="font-size: 24px;font-weight: bold;" @click="loginRefresh">主工作站未登录,点击重新检测</el-button>
<div v-if="!ibpDevice" class="text-box">
<img class="logo" :src="logoImg" style="width: 140px">
<span>{{ title }}</span>
</div>
<div v-if="!ibpDevice" class="language_box">
<el-tooltip effect="dark" :content="this.$t('login.clickSwitchLanguage')" placement="bottom-end">
<el-button class="language_btn" type="text" @click="handleLanguage">{{ language }}</el-button>
</el-tooltip>
</div>
<div v-if="!ibpDevice" class="content-box">
<el-form ref="loginForm" class="login-form" :model="loginForm" :rules="loginRules" label-position="left">
<el-form-item prop="username" class="item_form_box">
<span class="svg-container svg-container_login">
<svg-icon icon-class="user" />
</span>
<el-input v-model="loginForm.username" name="username" type="text" :placeholder="this.$t('login.accountName')" @keyup.enter.native="goToNext" />
</el-form-item>
<el-form-item prop="password" class="item_form_box item_form_password">
<span class="svg-container">
<svg-icon icon-class="password" />
</span>
<el-input
ref="password"
v-model="loginForm.password"
name="password"
:type="pwdType"
:placeholder="this.$t('login.password')"
@keyup.enter.native="handleLogin"
/>
<span class="show-pwd" @click="showPwd">
<svg-icon v-if="pwdDisplay" icon-class="eye" />
<svg-icon v-else icon-class="eye-open" />
</span>
</el-form-item>
<div class="tip-message">{{ tipsMsg }}</div>
<div style="display: inline-block;width: 100%;margin-bottom: 10px;">
<div style="display:inline-block">
<el-checkbox v-model="isAutoLogin">{{ $t('login.autoLogin') }}</el-checkbox>
</div>
<el-popover
placement="right"
title=""
width="200"
trigger="hover"
class="popover_box"
>
<div>
<img :src="QCode" alt="" style="width: 100px; height: 100px; display: block; margin:0 auto;">
<div style="margin-top: 10px; word-break: break-word;text-align: center;">{{ $t('login.perfectInformation') }}</div>
</div>
<!--<div slot="reference">{{ $t('login.unableToLogin') }}</div>-->
</el-popover>
</div>
<el-form-item>
<el-button type="primary" style="width:100%;" :loading="loading" @click.native.prevent="handleLogin">
{{ $t('login.login') }}
</el-button>
</el-form-item>
</el-form>
</div>
</div>
</template>
<script>
import QCode from '@/assets/erCode.jpg';
import { setSessionStorage, removeSessionStorage, getLoginInfo } from '@/utils/auth';
import Cookies from 'js-cookie';
import bgIbpImg from '@/assets/bg_ibp.png';
import md5 from 'js-md5';
import { UrlConfig } from '@/scripts/ConstDic';
import { loginInfo, ProjectIcon, LoginParams } from '@/scripts/ProjectConfig';
import { removeToken } from '@/utils/auth';
import LangStorage from '@/utils/lang';
import logoImgHyd from '@/assets/project_icon/logo_hyd.png';
import { getSimulationInfoNew } from '@/api/simulation';
import { getLoginWmurl, checkLoginStatus, getLoginInfo } from '@/api/login';
import { getToken } from '@/utils/auth';
export default {
name: 'Login',
data() {
const validateUsername = (rule, value, callback) => {
if (value.length < 5) {
callback(new Error(this.$t('login.enterTheCorrectUserName')));
} else {
callback();
}
};
const validatePass = (rule, value, callback) => {
if (value.length < 5) {
callback(new Error(this.$t('login.passwordHint')));
} else {
callback();
}
};
return {
QCode: QCode,
isAutoLogin: false,
loginForm: {
username: '',
password: ''
},
loginRules: {
username: [{ required: true, trigger: 'blur', validator: validateUsername }],
password: [{ required: true, trigger: 'blur', validator: validatePass }]
},
loading: false,
pwdType: 'password',
tipsMsg: '',
qrcodeClassName: 'login-qrcode',
sessionId: '',
loginUrl: '',
loadingCode: false,
checkLogin: null,
checkTimeout: null,
scanSuccess: false,
pwdDisplay: true,
cookiesName: 'UserName',
cookiesToken: 'UserToken',
modelType: 'class',
loginClient: 'LianKeTang',
path: '/trainingPlatform',
lang: 'zh',
language: '中文',
logoImg: logoImgHyd,
title: ''
};
},
computed: {
project() {
return this.$route.path.split('/')[1];
},
bgImg() {
return this.$route.query.ibpDevice ? bgIbpImg : '';
},
ibpDevice() {
return this.$route.query.ibpDevice;
}
},
created() {
document.querySelector("link[rel*='icon']").href = ProjectIcon['hyd'];
this.computedAttribute();
if (Cookies.get(this.cookiesName) && Cookies.get(this.cookiesToken)) {
const model = {'username': Cookies.get(this.cookiesName), 'password': Cookies.get(this.cookiesToken)};
model.type = this.modelType;
this.$store.dispatch('Login', model).then(() => {
this.$store.dispatch('SetAccount', model.username);
this.handleLoginSucessRoute();
}).catch(error => {
if (error.code === '30001') {
this.tipsMsg = this.$t('login.accountOrPasswordIsIncorrect');
} else if (error.code == '10001') {
this.tipsMsg = '教研机尚未登录,请稍后重试!';
} else {
this.tipsMsg = error.message;
}
this.loading = false;
setTimeout(() => { this.tipsMsg = ''; }, 5000);
});
}
},
mounted() {
if (this.project.startsWith('design')) {
this.title = loginInfo['designhyd'].title;
} else {
this.title = loginInfo['hyd'].title;
}
if (this.ibpDevice) {
this.loginRefresh();
}
document.title = this.title;
},
methods: {
computedAttribute() {
let sessionVal = 'hyd';
if (this.project.startsWith('design')) {
this.cookiesName = 'UserDesignName';
this.cookiesToken = 'UserDesignToken';
this.modelType = 'design';
this.loginClient = 'Design';
this.path = UrlConfig.design.prefix;
sessionVal = 'designhyd';
}
const nowLang = LangStorage.getLang('zh');
if (nowLang === 'zh') {
this.lang = 'en';
this.language = 'English';
}
removeToken();
setSessionStorage('project', sessionVal);
},
clearTimer(timer) {
if (timer) {
clearTimeout(timer);
timer = null;
}
},
loginRefresh() {
this.loadingCode = true;
const params = LoginParams[this.loginClient];
params.project = loginInfo[this.project].loginParam;
if (this.$route.query.projectDevice) {
params.deviceCode = this.$route.query.projectDevice;
}
getLoginWmurl(params).then(response => {
this.sessionId = response.data.sessionId;
this.loginUrl = response.data.url;
this.loadingCode = false;
this.checkLoginStatus();
}).catch(() => {
this.loadingCode = false;
this.$messageBox(this.$t('login.getLoginQrCode'));
});
},
checkLoginStatus() {
const self = this;
//
if (this && this._isDestroyed) {
return;
}
//
//
this.clearTimer(this.checkLogin);
this.checkLogin = setTimeout(() => {
checkLoginStatus(self.sessionId).then(response => {
//
self.$store.dispatch('QrLoginSetting', { key: 'SET_TOKEN', value: response.data.token, type: this.modelType }).then(() => {
//
self.clearTimer(self.checkLogin);
this.handleLoginSucessRoute();
});
}).catch(error => {
if (error.data && error.data.status === 'EXPIRE') {
this.loadingCode = true;
this.loginUrl = '';
} else {
self.checkLoginStatus();
}
});
}, 3000);
},
showPwd() {
if (this.pwdType === 'password') {
this.pwdDisplay = false;
this.pwdType = '';
} else {
this.pwdType = 'password';
this.pwdDisplay = true;
}
},
goToNext() {
if (this.loginForm.username.length < 5) {
return;
} else {
this.$refs['password'].focus();
}
},
handleLogin() {
this.$refs.loginForm.validate(valid => {
if (valid) {
const model = Object.assign({}, this.loginForm);
model.password = md5(model.password);
model.project = loginInfo[this.project].loginParam;
model.deviceCode = this.$route.query.projectDevice;
model.type = this.modelType;
this.loading = true;
if (this.isAutoLogin) {
Cookies.set(this.cookiesName, model.username, { expires: 2});
Cookies.set(this.cookiesToken, model.password, { expires: 2});
}
this.$store.dispatch('Login', model).then(() => {
this.$store.dispatch('SetAccount', model.username);
this.handleLoginSucessRoute();
}).catch(error => {
if (error.code === '30001') {
this.tipsMsg = this.$t('login.accountOrPasswordIsIncorrect');
} else if (error.code == '10001') {
this.tipsMsg = '教研机尚未登录,请稍后重试!';
} else {
this.tipsMsg = error.message;
}
this.loading = false;
setTimeout(() => { this.tipsMsg = ''; }, 5000);
});
} else {
console.log('error submit!!');
return false;
}
});
},
handleLoginSucessRoute() {
//
this.loading = false;
this.tipsMsg = '';
removeSessionStorage('againEnter');
if (this.$route.query.projectDevice) {
getLoginInfo(getToken()).then(res => {
getSimulationInfoNew(res.data.group).then(resp => {
const query = { group: res.data.group, drawWay: true, mapId: resp.data.map.id, lineCode:resp.data.map.lineCode, projectDevice: this.$route.query.projectDevice };
if (this.$route.query.ibpDevice) {
query.ibpDevice = true;
}
this.$router.push({ path: `/jointTrainingNew`, query: query });
});
});
}
this.$router.push({ path: this.path });
},
handleLanguage() {
this.$i18n.locale = this.lang;
LangStorage.setLang(this.lang);
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss">
$bg:#fff;
$light_gray:#eee;
.login-container {
background: #E4EAEA;
.el-form-item{
background: #fff !important;
border: 1px solid rgba(0, 0, 0, 0.1) !important;
.el-input {
height: 40px;
width: 85%;
background: #fff;
input {
background: #fff !important;
border: 0px;
-webkit-appearance: none;
border-radius: 0px;
padding: 8px 9px 7px 5px;
color: #000;
height: 100%;
&:-webkit-autofill {
box-shadow: 0 0 0px 1000px $bg inset !important;
-webkit-text-fill-color: #000 !important;
}
}
}
}
.item_form_box {
border: 1px solid #ccc;
border-radius: 5px;
color: #454545;
}
.item_form_password{
margin-bottom: 10px;
}
.tip-message {
color: #F56C61;
padding: 5px;
font-size: 12px;
height: 23px;
margin-bottom: 10px;
}
}
</style>
<style rel="stylesheet/scss" lang="scss" scoped>
$bg:#f0f0f0;
$qrbg:#fff;
$dark_gray:#889aa4;
$light_gray:#eee;
$qrcodeSize: 270px;
.popover_box {
position: absolute;
right: 80px;
bottom: 106px;
cursor: pointer;
color: #225592;
font-size: 14px;
}
.login-container {
position: fixed;
display: flex;
align-items: center;
justify-content: center;
height: 100%;
width: 100%;
background-repeat: no-repeat;
background-origin: border-box;
background-size: 100% 100%;
.content-box{
width: 450px;
display: flex;
align-items: center;
justify-content: center;
background: #fff;
padding: 30px 30px 30px;
margin-bottom: 20px;
box-sizing: border-box;
position: relative;
}
.text-box{
position: absolute;
top: 10%;
font-size: 40px;
font-weight: bold;
}
.logo{
vertical-align: middle;
}
.language_box{
position: absolute;
top: 20px;
right: 40px;
.language_btn{
/*font-weight: bold;*/
cursor: pointer;
font-size: 18px;
}
}
.login-form {
width: 440px;
padding: 0 50px;
}
.svg-container {
padding-left: 14px;
color: $dark_gray;
vertical-align: middle;
width: 30px;
display: inline-block;
&_login {
font-size: 16px;
}
}
.title_box {
font-size: 20px;
color: #000;
margin: 0px auto 30px auto;
text-align: center;
}
.show-pwd {
position: absolute;
right: 10px;
top: 3px;
font-size: 16px;
color: $dark_gray;
cursor: pointer;
user-select: none;
}
}
.qrcode-main{
width: 300px;
background-color: $qrbg;
text-align: center;
border-right: 1px solid #ececec;
.tip-info {
text-align: left;
display: inline-block;
color: green;
margin: 0 auto;
}
.login-code-box{
width: 150px;
margin: 0 auto;
cursor: pointer;
}
.system-type {
margin: 5px 0;
display: block;
}
.sub-title {
font-size: 16px;
text-align: center;
color: #353535;
line-height: 30px;
}
}
</style>

View File

@ -8,7 +8,7 @@
element-loading-background="rgba(0, 0, 0, 0)" element-loading-background="rgba(0, 0, 0, 0)"
> >
<el-button v-if="ibpDevice && loadingCode" type="text" style="font-size: 24px;font-weight: bold;" @click="loginRefresh">主工作站未登录,点击重新检测</el-button> <el-button v-if="ibpDevice && loadingCode" type="text" style="font-size: 24px;font-weight: bold;" @click="loginRefresh">主工作站未登录,点击重新检测</el-button>
<div v-if="loginTitle && !ibpDevice" class="left-logo-box"> <div v-if="loginTitle && !ibpDevice" :class="$route.query.project=='hyd'?'text-box':'left-logo-box'">
<img class="logo" :src="logoImg" :style="{width: logoWidth}"> <img class="logo" :src="logoImg" :style="{width: logoWidth}">
<span>{{ loginTitle==='空串'?'':loginTitle }}</span> <span>{{ loginTitle==='空串'?'':loginTitle }}</span>
</div> </div>
@ -21,8 +21,8 @@
<el-button class="language_btn" type="text" @click="handleLanguage">{{ language }}</el-button> <el-button class="language_btn" type="text" @click="handleLanguage">{{ language }}</el-button>
</el-tooltip> </el-tooltip>
</div> </div>
<div v-if="!ibpDevice" class="content-box"> <div v-if="!ibpDevice" class="content-box" :style="$route.query.project=='hyd'?'width: 450px;':''">
<div class="qrcode-main"> <div v-if="$route.query.project!='hyd'" class="qrcode-main">
<div class="login-code-box" @click="loginRefresh"> <div class="login-code-box" @click="loginRefresh">
<qrcode-vue <qrcode-vue
v-loading="loadingCode" v-loading="loadingCode"
@ -49,7 +49,7 @@
</div> </div>
</div> </div>
<el-form ref="loginForm" class="login-form" :model="loginForm" :rules="loginRules" label-position="left"> <el-form ref="loginForm" class="login-form" :model="loginForm" :rules="loginRules" label-position="left">
<div v-if="!isProject" class="title_box">{{ $t('login.welcomeTo') + title }}</div> <div v-if="!isProject&&$route.query.project!='hyd'" class="title_box">{{ $t('login.welcomeTo') + title }}</div>
<el-form-item prop="username" class="item_form_box"> <el-form-item prop="username" class="item_form_box">
<span class="svg-container svg-container_login"> <span class="svg-container svg-container_login">
<svg-icon icon-class="user" /> <svg-icon icon-class="user" />
@ -180,27 +180,37 @@ export default {
}, },
computed: { computed: {
project() { project() {
return this.$route.path.split('/')[1]; const project = this.$route.query.project;
const split = this.$route.path.split('/')[1];
if (split == 'design') {
return project ? split + project : split;
} else if (split == 'login') {
return project || 'login';
} else {
return split;
}
}, },
loginTitle () { loginTitle () {
return loginInfo[this.$route.path.split('/')[1]].loginTitle; // this.$route.path.split('/')[1]
return loginInfo[this.project].loginTitle;
}, },
title() { title() {
return loginInfo[this.$route.path.split('/')[1]].title; return loginInfo[this.project].title;
}, },
logoWidth() { logoWidth() {
return loginInfo[this.$route.path.split('/')[1]].logoWidth; return loginInfo[this.project].logoWidth;
}, },
isProject() { isProject() {
const projectName = this.$route.path.split('/')[1]; const projectName = this.project;
return GenerateRouteProjectList.includes(projectName); return GenerateRouteProjectList.includes(projectName);
}, },
logoImg() { logoImg() {
const projectName = this.$route.path.split('/')[1]; const projectName = this.project;
return ProjectIcon[projectName]; return ProjectIcon[projectName];
}, },
bgImg() { bgImg() {
return this.$route.query.ibpDevice ? bgIbpImg : bgImg; const bgImgAll = this.$route.query.project == 'hyd' ? '' : bgImg;
return this.$route.query.ibpDevice ? bgIbpImg : bgImgAll;
}, },
ibpDevice() { ibpDevice() {
return this.$route.query.ibpDevice; return this.$route.query.ibpDevice;
@ -230,7 +240,9 @@ export default {
}, },
mounted() { mounted() {
document.title = loginInfo[this.project].browserTitle || loginInfo[this.project].title; document.title = loginInfo[this.project].browserTitle || loginInfo[this.project].title;
if (this.ibpDevice || this.$route.query.project != 'hyd') {
this.loginRefresh(); this.loginRefresh();
}
}, },
methods: { methods: {
computedAttribute() { computedAttribute() {
@ -331,6 +343,7 @@ export default {
const model = Object.assign({}, this.loginForm); const model = Object.assign({}, this.loginForm);
model.password = md5(model.password); model.password = md5(model.password);
model.type = this.modelType; model.type = this.modelType;
model.project = loginInfo[this.project].loginParam;
model.deviceCode = this.$route.query.projectDevice; model.deviceCode = this.$route.query.projectDevice;
this.loading = true; this.loading = true;
if (this.isAutoLogin) { if (this.isAutoLogin) {

View File

@ -39,10 +39,11 @@ export default {
{label: '行调工作站', value: 'CW'}, {label: '行调工作站', value: 'CW'},
{label: '综合监控', value: 'ISCS'} {label: '综合监控', value: 'ISCS'}
], ],
projectList: [{label:'西铁院', value: 'XTY'}, {label: '贵州装备', value:'GZB'}], projectList: [{label:'西铁院', value: 'XTY'}, {label: '贵州装备', value:'GZB'}, {label: '盈达科技', value:'HYD'}],
projectMap: { projectMap: {
designxty: 'XTY', designxty: 'XTY',
designgzb: 'GZB' designgzb: 'GZB',
designhyd: 'HYD'
}, },
queryForm: { queryForm: {
labelWidth: '120px', labelWidth: '120px',
@ -199,9 +200,9 @@ export default {
getPath(index, row) { getPath(index, row) {
let url = ''; let url = '';
if (row.type === 'IBP') { if (row.type === 'IBP') {
url = `${window.location.protocol}//${window.location.host}/${this.projectCode.toLowerCase()}/login?projectDevice=${row.code}&ibpDevice=true`; url = `${window.location.protocol}//${window.location.host}/login?project=${this.projectCode.toLowerCase()}&projectDevice=${row.code}&ibpDevice=true`;
} else { } else {
url = `${window.location.protocol}//${window.location.host}/${this.projectCode.toLowerCase()}/login?projectDevice=${row.code}`; url = `${window.location.protocol}//${window.location.host}/login?project=${this.projectCode.toLowerCase()}&projectDevice=${row.code}`;
} }
this.url = url; this.url = url;
this.$messageBox(); this.$messageBox();