Browse Source

平阴集成平台sso登陆改造

master
jianjun 5 years ago
parent
commit
f916af93c3
  1. 160
      epmet-oper-web/src/views/main-navbar.vue
  2. 30
      epmet-oper-web/src/views/pages/loginWork.vue

160
epmet-oper-web/src/views/main-navbar.vue

@ -1,68 +1,69 @@
<template> <template>
<nav class="aui-navbar" <div>
:class="`aui-navbar--${$store.state.navbarLayoutType}`"> <nav v-if="showHeader == '1'" class="aui-navbar"
<div class="aui-navbar__header"> :class="`aui-navbar--${$store.state.navbarLayoutType}`">
<h1 class="aui-navbar__brand" <div class="aui-navbar__header">
@click="$router.push({ name: 'home' })"> <h1 class="aui-navbar__brand"
<a class="aui-navbar__brand-lg" @click="$router.push({ name: 'home' })">
href="javascript:;">{{ userType==='work'?customerName :$t('brand.lg') }}</a> <a class="aui-navbar__brand-lg"
<a class="aui-navbar__brand-mini" href="javascript:;">{{ userType==='work'?customerName :$t('brand.lg') }}</a>
href="javascript:;">{{ $t('brand.mini') }}</a> <a class="aui-navbar__brand-mini"
</h1> href="javascript:;">{{ $t('brand.mini') }}</a>
</div> </h1>
<div class="aui-navbar__body"> </div>
<el-menu class="aui-navbar__menu mr-auto" <div class="aui-navbar__body">
mode="horizontal"> <el-menu class="aui-navbar__menu mr-auto"
<el-menu-item index="1" mode="horizontal">
@click="$store.state.sidebarFold = !$store.state.sidebarFold"> <el-menu-item index="1"
<svg class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--switch" @click="$store.state.sidebarFold = !$store.state.sidebarFold">
aria-hidden="true"> <svg class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--switch"
<use xlink:href="#icon-outdent"></use> aria-hidden="true">
</svg> <use xlink:href="#icon-outdent"></use>
</el-menu-item> </svg>
</el-menu-item>
</el-menu> </el-menu>
<el-menu class="aui-navbar__menu" <el-menu class="aui-navbar__menu"
mode="horizontal"> mode="horizontal">
<!-- <el-menu-item index="1"> <!-- <el-menu-item index="1">
<el-dropdown placement="bottom" <el-dropdown placement="bottom"
:show-timeout="0"> :show-timeout="0">
<el-button size="mini">{{ $t('_lang') }}</el-button> <el-button size="mini">{{ $t('_lang') }}</el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(val, key) in i18nMessages" <el-dropdown-item v-for="(val, key) in i18nMessages"
:key="key" :key="key"
@click.native="$i18n.locale = key">{{ val._lang }}</el-dropdown-item> @click.native="$i18n.locale = key">{{ val._lang }}</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</el-menu-item> --> </el-menu-item> -->
<!-- <el-menu-item index="2"> <!-- <el-menu-item index="2">
<a href="//www.renren.io/" <a href="//www.renren.io/"
target="_blank"> target="_blank">
<svg class="icon-svg aui-navbar__icon-menu"
aria-hidden="true">
<use xlink:href="#icon-earth"></use>
</svg>
</a>
</el-menu-item> -->
<!-- <el-menu-item index="3"
@click="fullscreenHandle()">
<svg class="icon-svg aui-navbar__icon-menu"
aria-hidden="true">
<use xlink:href="#icon-fullscreen"></use>
</svg>
</el-menu-item> -->
<el-menu-item index="2"
@click="refresh()">
<svg class="icon-svg aui-navbar__icon-menu" <svg class="icon-svg aui-navbar__icon-menu"
aria-hidden="true"> aria-hidden="true">
<use xlink:href="#icon-earth"></use> <use xlink:href="#icon-sync"></use>
</svg> </svg>
</a>
</el-menu-item> -->
<!-- <el-menu-item index="3"
@click="fullscreenHandle()">
<svg class="icon-svg aui-navbar__icon-menu"
aria-hidden="true">
<use xlink:href="#icon-fullscreen"></use>
</svg>
</el-menu-item> -->
<el-menu-item index="2"
@click="refresh()">
<svg class="icon-svg aui-navbar__icon-menu"
aria-hidden="true">
<use xlink:href="#icon-sync"></use>
</svg>
</el-menu-item> </el-menu-item>
<el-menu-item index="4" <el-menu-item index="4"
class="aui-navbar__avatar"> class="aui-navbar__avatar">
<el-dropdown placement="bottom" <el-dropdown placement="bottom"
:show-timeout="0"> :show-timeout="0">
<span class="el-dropdown-link"> <span class="el-dropdown-link">
<img v-if="$store.state.user.gender ==='2'" <img v-if="$store.state.user.gender ==='2'"
src="~@/assets/img/staff-default-avatar-girl.png"> src="~@/assets/img/staff-default-avatar-girl.png">
@ -71,18 +72,21 @@
<span>{{ $store.state.user.realName }}</span> <span>{{ $store.state.user.realName }}</span>
<i class="el-icon-arrow-down"></i> <i class="el-icon-arrow-down"></i>
</span> </span>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<!-- <el-dropdown-item @click.native="updatePasswordHandle()">{{ $t('updatePassword.title') }}</el-dropdown-item> --> <!-- <el-dropdown-item @click.native="updatePasswordHandle()">{{ $t('updatePassword.title') }}</el-dropdown-item> -->
<el-dropdown-item @click.native="logoutHandle()">{{ $t('logout') }}</el-dropdown-item> <el-dropdown-item @click.native="logoutHandle()">{{ $t('logout') }}</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</el-menu-item> </el-menu-item>
</el-menu> </el-menu>
</div> </div>
<!-- 弹窗, 修改密码 --> <!-- 弹窗, 修改密码 -->
<update-password v-if="updatePassowrdVisible" <update-password v-if="updatePassowrdVisible"
ref="updatePassowrd"></update-password> ref="updatePassowrd"></update-password>
</nav> </nav>
<nav v-else class = "aui-navbar main-line"></nav>
</div>
</template> </template>
<script> <script>
@ -95,6 +99,7 @@ export default {
inject: ['refresh'], inject: ['refresh'],
data () { data () {
return { return {
showHeader: true,
i18nMessages: messages, i18nMessages: messages,
updatePassowrdVisible: false, updatePassowrdVisible: false,
customerName: localStorage.getItem('customerName') customerName: localStorage.getItem('customerName')
@ -105,6 +110,12 @@ export default {
components: { components: {
UpdatePassword UpdatePassword
}, },
created() {
let platformToken = localStorage.getItem('showHeader') || '';
if (typeof platformToken !== 'undefined' && platformToken !== 'undefined' && platformToken !== '') {
this.showHeader = false
}
},
computed: { computed: {
userType () { userType () {
return localStorage.getItem('userType') return localStorage.getItem('userType')
@ -166,3 +177,10 @@ export default {
} }
} }
</script> </script>
<style lang="scss" scoped>
.main-line{
height: 50px;
background: #eeeeee;
}
</style>

30
epmet-oper-web/src/views/pages/loginWork.vue

@ -1,5 +1,5 @@
<template> <template>
<div class="aui-wrapper aui-page__login"> <div v-if="isShowLogin" class="aui-wrapper aui-page__login">
<div class="aui-content__wrapper"> <div class="aui-content__wrapper">
<main class="aui-content"> <main class="aui-content">
@ -147,6 +147,7 @@ let loading // 加载动画
export default { export default {
data () { data () {
return { return {
isShowLogin: true,
i18nMessages: messages, i18nMessages: messages,
captchaPath: '', captchaPath: '',
dataForm: { dataForm: {
@ -184,7 +185,13 @@ export default {
} }
}, },
created () { created () {
this.getCaptcha() //
if (this.$route.query.platformToken) {
this.isShowLogin = false;
this.getAutoLogin(this.$route.query.platformToken)
}else{
this.getCaptcha()
}
}, },
methods: { methods: {
@ -230,6 +237,25 @@ export default {
}) })
}, },
//
getAutoLogin (platformToken) {
this.dataForm.thirdToken = platformToken;
this.dataForm.platform = "pyld";
this.$http.post(`/auth/sso/oper/third/login`,this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
if(res.code == 8302){
return this.$message.error(res.internalMsg)
}
return this.$message.error(res.msg)
}
localStorage.setItem('customerId', '613cc61a6b8ce4c70d21bd413dac72cc')
localStorage.setItem('userType', 'work')
localStorage.setItem('showHeader', '0')
Cookies.set('token', res.data.token)
this.$router.replace({ name: 'home' })
}).catch(() => { })
// epmet-ext9.elinkservice.cn/platform-admin
},
// //
selectCustomer (row) { selectCustomer (row) {
localStorage.setItem('customerId', row.customerId) localStorage.setItem('customerId', row.customerId)

Loading…
Cancel
Save