Commit bb01975f authored by 周远喜's avatar 周远喜

bug 和登陆处理

parent ff31bdb2
<template>
<span class="i-layout-header-trigger i-layout-header-trigger-min">
<Dropdown transfer trigger="hover" @on-click="handleClickUserDropdown">
<span @click="openModelBugAdd">
<Icon type="ios-bug" size="18" />
</span>
<Icon type="md-arrow-dropdown"></Icon>
<DropdownMenu slot="list">
<DropdownItem name="bug">bug列表</DropdownItem>
</DropdownMenu>
</Dropdown>
<Modal title="新增bug" v-model="bugAdd" fullscreen :z-index="10">
<addBugModal ref="addBug"></addBugModal>
<div slot="footer">
<Button @click="addCancel">取消</Button>
<Button type="primary" @click="addSave">确定</Button>
</div>
</Modal>
</span>
</template>
<script>
import addBugModal from "@/pages/bug/component/add";
export default {
name: "addBug",
components: {
addBugModal
},
data() {
return {
bugAdd: false
};
},
computed: {},
methods: {
async handleClickUserDropdown(name) {
if (name === "bug") {
this.$router.push({ name: "bug" });
}
},
openModelBugAdd() {
this.bugAdd = true;
this.$refs.addBug.getEid();
this.$refs.addBug.initial();
},
addCancel() {
this.$refs.addBug.resetFields();
this.bugAdd = false;
},
addSave() {
let param = this.$refs.addBug.addBugInfo();
//alert(JSON.stringify(param))
if (param.id == null) {
//增加确定
this.$http.bug.createorupdate(param).then(res => {
if (res.result.status) {
this.$Message.success("新增成功!");
let newId = res.result.bugId;
this.$refs.addBug.updateEid(newId);
} else {
this.$Message.error("新增失败!");
}
this.$refs.addBug.resetFields();
this.bugAdd = false;
});
} else {
this.$Message.error("新增失败!");
}
}
},
created() {},
mounted() {}
};
</script>
\ No newline at end of file
<template>
<span class="i-layout-header-trigger i-layout-header-trigger-min">
<Dropdown :trigger="isMobile ? 'click' : 'hover'" class="i-layout-header-user" :class="{ 'i-layout-header-user-mobile': isMobile }" @on-click="handleClick">
<Avatar size="small" :src="info.avatar" v-if="info.avatar" />
<span class="i-layout-header-user-name" v-if="!isMobile">{{ info.name }}</span>
<DropdownMenu slot="list">
<i-link to="/setting/user">
<DropdownItem>
<Icon type="ios-contact-outline" />
<span>{{ $t('basicLayout.user.center') }}</span>
</DropdownItem>
</i-link>
<i-link to="/setting/account">
<DropdownItem>
<Icon type="ios-settings-outline" />
<span>{{ $t('basicLayout.user.setting') }}</span>
</DropdownItem>
</i-link>
<DropdownItem divided name="logout">
<Icon type="ios-log-out" />
<span>{{ $t('basicLayout.user.logOut') }}</span>
</DropdownItem>
</DropdownMenu>
</Dropdown>
</span>
<span class="i-layout-header-trigger i-layout-header-trigger-min">
<Dropdown
:trigger="isMobile ? 'click' : 'hover'"
class="i-layout-header-user"
:class="{ 'i-layout-header-user-mobile': isMobile }"
@on-click="handleClick"
>
<Avatar size="small" :src="info.avatar" v-if="info.avatar" />
<span class="i-layout-header-user-name" v-if="!isMobile">{{ info.name }}</span>
<DropdownMenu slot="list">
<i-link to="/setting/user">
<DropdownItem>
<Icon type="ios-contact-outline" />
<span>{{ $t('basicLayout.user.center') }}</span>
</DropdownItem>
</i-link>
<i-link to="/setting/account">
<DropdownItem>
<Icon type="ios-settings-outline" />
<span>{{ $t('basicLayout.user.setting') }}</span>
</DropdownItem>
</i-link>
<DropdownItem divided name="logout">
<Icon type="ios-log-out" />
<span>{{ $t('basicLayout.user.logOut') }}</span>
</DropdownItem>
</DropdownMenu>
</Dropdown>
</span>
</template>
<script>
import { mapState, mapActions } from 'vuex';
import { mapState, mapActions } from "vuex";
export default {
name: 'iHeaderUser',
computed: {
...mapState('admin/user', [
'info'
]),
...mapState('admin/layout', [
'isMobile',
'logoutConfirm'
])
},
methods: {
...mapActions('admin/account', [
'logout'
]),
handleClick (name) {
if (name === 'logout') {
this.logout({
confirm: this.logoutConfirm,
vm: this
});
}
}
}
export default {
name: "iHeaderUser",
computed: {
...mapState("admin/user", ["info"]),
...mapState("admin/layout", ["isMobile", "logoutConfirm"])
},
methods: {
...mapActions("admin/account", ["logout"]),
handleClick(name) {
if (name === "logout") {
this.logout({
confirm: this.logoutConfirm,
vm: this
});
}
}
}
};
</script>
......@@ -17,6 +17,7 @@
<i-header-search v-if="(showSearch && isMobile) || (showSearch && (headerMenu || showBreadcrumb))" />
<i-menu-head v-if="headerMenu && isMobile" />
<i-header-log v-if="isDesktop && showLog" />
<i-header-bug />
<i-header-fullscreen v-if="isDesktop && showFullscreen" />
<i-header-notice v-if="showNotice" />
<i-header-user />
......@@ -54,6 +55,7 @@
import iHeaderBreadcrumb from './header-breadcrumb';
import iHeaderSearch from './header-search';
import iHeaderLog from './header-log';
import iHeaderBug from './header-bug';
import iHeaderFullscreen from './header-fullscreen';
import iHeaderNotice from './header-notice';
import iHeaderUser from './header-user';
......@@ -69,7 +71,7 @@
export default {
name: 'BasicLayout',
components: { iMenuHead, iMenuSide, iCopyright, iHeaderLogo, iHeaderCollapse, iHeaderReload, iHeaderBreadcrumb, iHeaderSearch, iHeaderUser, iHeaderI18n, iHeaderLog, iHeaderFullscreen, iHeaderSetting, iHeaderNotice, iTabs },
components: { iMenuHead, iMenuSide, iCopyright, iHeaderLogo, iHeaderCollapse, iHeaderReload, iHeaderBreadcrumb, iHeaderSearch, iHeaderUser, iHeaderI18n, iHeaderLog, iHeaderFullscreen, iHeaderSetting, iHeaderNotice, iTabs,iHeaderBug },
data () {
return {
showDrawer: false,
......
......@@ -8,9 +8,9 @@
<div class="page-account-top-logo">
<img src="@/assets/images/logo.png" alt="logo" />
</div>
<div class="page-account-top-desc">iView Admin Pro 企业级中台前端/设计解决方案</div>
<div class="page-account-top-desc">SaaS MES 制造执行系统</div>
</div>
<Login @on-submit="handleSubmit">
<Login @on-submit="oidc">
<UserName name="username" value="admin" />
<Password name="password" value="admin" enter-to-submit />
<div class="page-account-auto-login">
......@@ -20,14 +20,14 @@
<Submit>{{ $t('page.login.submit') }}</Submit>
</Login>
<div class="page-account-other">
<span>{{ $t('page.login.other') }}</span>
<!-- <span>{{ $t('page.login.other') }}</span>
<img src="@/assets/svg/icon-social-wechat.svg" alt="wechat" />
<img src="@/assets/svg/icon-social-qq.svg" alt="qq" />
<img src="@/assets/svg/icon-social-weibo.svg" alt="weibo" />
<router-link class="page-account-register" to="./register">{{ $t('page.login.signup') }}</router-link>
<img src="@/assets/svg/icon-social-weibo.svg" alt="weibo" /> -->
<!-- <router-link class="page-account-register" to="./register">{{ $t('page.login.signup') }}</router-link> -->
</div>
</div>
<i-copyright />
<!-- <i-copyright /> -->
</div>
</template>
<script>
......@@ -47,30 +47,37 @@ export default {
};
},
created() {
let that = this;
mgr.getUser().then(function(user) {
if (user) {
that.msg = "该用户已经登录";
const userInfos = {
token: user.access_token,
login_id: user.profile.name,
userId:user.profile["http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"],
accountId: user.profile.sub,
tanantCode: user.profile.TanantCode,
name: "Aresn",
avatar:"https://dev-file.iviewui.com/userinfoPDvn9gKWYihR24SpgC319vXY8qniCqj4/avatar",
access: ["admin"]
};
// that.$store.commit('setUserInfo',userInfos);
that.oidcLogin(userInfos);
window.location = "/";
} else {
mgr.signinRedirect();
}
});
// this.oidc();
},
methods: {
...mapActions("admin/account", ["login"]),
oidc() {
let that = this;
mgr.getUser().then(function(user) {
if (user) {
that.msg = "该用户已经登录";
const userInfos = {
token: user.access_token,
login_id: user.profile.name,
userId:
user.profile[
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"
],
accountId: user.profile.sub,
tanantCode: user.profile.TanantCode,
name: "Aresn",
avatar:
"https://dev-file.iviewui.com/userinfoPDvn9gKWYihR24SpgC319vXY8qniCqj4/avatar",
access: ["admin"]
};
// that.$store.commit('setUserInfo',userInfos);
that.oidcLogin(userInfos);
window.location = "/";
} else {
mgr.signinRedirect();
}
});
},
/**
* @description 登录
* 表单校验已有 iView Pro 自动完成,如有需要修改,请阅读 iView Pro 文档
......@@ -94,7 +101,7 @@ export default {
this.$store.dispatch("admin/user/set", user, { root: true });
// 用户登录后从持久化数据加载一系列的设置
this.$store.dispatch("load");
this.$store.commit('setUserInfo',user);
this.$store.commit("setUserInfo", user);
}
}
};
......
......@@ -4,7 +4,7 @@
import util from '@/libs/util';
// import router from '@/router';
import { AccountLogin, AccountRegister } from '@/api/account';
import Oidc from 'oidc-client'
import { Modal } from 'view-design';
export const actions={
/**
......@@ -51,7 +51,8 @@ export const actions={
* @description 退出登录
* */
logout ({ commit, dispatch }, { confirm = false, vm } = {}) {
async function logout () {
var mgr = new Oidc.UserManager(window.authConfig)
async function logout () {
// 删除cookie
util.cookies.remove('token');
util.cookies.remove('uuid');
......@@ -59,6 +60,13 @@ export const actions={
await dispatch('admin/user/set', {}, { root: true });
// 跳转路由
// alert(123)
window.frames[0].sessionStorage.clear()
sessionStorage.clear()
mgr.events.addUserSignedOut(function() {
log('User signed out of OP')
mgr.removeUser()
})
$nuxt.$router.push("/account/login");
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment