|
|
@@ -17,6 +17,28 @@
|
|
|
<div class="ele-admin-header-tool-item">
|
|
|
<header-notice />
|
|
|
</div>
|
|
|
+ <div class="ele-admin-header-tool-item">
|
|
|
+ <el-select v-model="groupId" @change="groupIdChange">
|
|
|
+ <el-option
|
|
|
+ v-for="item in loginChangeGroupVOList"
|
|
|
+ :key="item.groupId"
|
|
|
+ :label="item.groupName"
|
|
|
+ :value="item.groupId"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <div class="ele-admin-header-tool-item">
|
|
|
+ <el-select v-model="roleId" @change="roleChange">
|
|
|
+ <el-option
|
|
|
+ v-for="item in loginChangeRoleVOList"
|
|
|
+ :key="item.roleId"
|
|
|
+ :label="item.roleName"
|
|
|
+ :value="item.roleId"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
<!-- 用户信息 -->
|
|
|
<div class="ele-admin-header-tool-item">
|
|
|
<el-dropdown @command="onUserDropClick">
|
|
|
@@ -60,68 +82,105 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
- import HeaderNotice from './header-notice.vue';
|
|
|
- import PasswordModal from './password-modal.vue';
|
|
|
- import SettingDrawer from './setting-drawer.vue';
|
|
|
- import I18nIcon from './i18n-icon.vue';
|
|
|
- import { logout } from '@/utils/page-tab-util';
|
|
|
- import { userLogout } from '@/api/system/user';
|
|
|
- import { SYSTEM_NAME } from '@/config/setting';
|
|
|
+import HeaderNotice from './header-notice.vue';
|
|
|
+import PasswordModal from './password-modal.vue';
|
|
|
+import SettingDrawer from './setting-drawer.vue';
|
|
|
+import I18nIcon from './i18n-icon.vue';
|
|
|
+import { logout } from '@/utils/page-tab-util';
|
|
|
+import { userLogout } from '@/api/system/user';
|
|
|
+import { SYSTEM_NAME } from '@/config/setting';
|
|
|
+import router from '@/router/index';
|
|
|
|
|
|
- export default {
|
|
|
- components: { HeaderNotice, PasswordModal, SettingDrawer, I18nIcon },
|
|
|
- props: {
|
|
|
- // 是否是全屏
|
|
|
- fullscreen: Boolean
|
|
|
+export default {
|
|
|
+ components: { HeaderNotice, PasswordModal, SettingDrawer, I18nIcon },
|
|
|
+ props: {
|
|
|
+ // 是否是全屏
|
|
|
+ fullscreen: Boolean
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ // 是否显示修改密码弹窗
|
|
|
+ passwordVisible: false,
|
|
|
+ // 是否显示主题设置抽屉
|
|
|
+ settingVisible: false,
|
|
|
+ groupId: '',
|
|
|
+ roleId: '',
|
|
|
+ currentUser: {
|
|
|
+ currentGroupId: '',
|
|
|
+ currentRoleId: ''
|
|
|
+ }
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.currentUser = JSON.parse(sessionStorage['currentUser']);
|
|
|
+ this.groupId = this.currentUser.currentGroupId;
|
|
|
+ this.roleId = this.currentUser.currentRoleId;
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ // 当前用户信息
|
|
|
+ loginUser() {
|
|
|
+ return this.$store.state.user.info;
|
|
|
},
|
|
|
- data() {
|
|
|
- return {
|
|
|
- // 是否显示修改密码弹窗
|
|
|
- passwordVisible: false,
|
|
|
- // 是否显示主题设置抽屉
|
|
|
- settingVisible: false
|
|
|
- };
|
|
|
+
|
|
|
+ // 部门下拉
|
|
|
+ loginChangeGroupVOList() {
|
|
|
+ return this.$store.state.user?.info?.loginChangeGroupVOList;
|
|
|
},
|
|
|
- computed: {
|
|
|
- // 当前用户信息
|
|
|
- loginUser() {
|
|
|
- return this.$store.state.user.info;
|
|
|
- }
|
|
|
+ // 角色下拉
|
|
|
+ loginChangeRoleVOList() {
|
|
|
+ return this.$store.state.user?.info?.loginChangeGroupVOList.find(
|
|
|
+ (item) => item.groupId == this.groupId
|
|
|
+ )?.loginChangeRoleVOList;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ groupIdChange(val) {
|
|
|
+ this.roleChange(this.loginChangeRoleVOList[0].roleId);
|
|
|
+ },
|
|
|
+ roleChange(val) {
|
|
|
+ this.roleId = val;
|
|
|
+ this.currentUser.currentGroupId = this.groupId;
|
|
|
+ this.currentUser.currentRoleId = val;
|
|
|
+ sessionStorage['currentUser']=JSON.stringify(this.currentUser)
|
|
|
+ this.$store
|
|
|
+ .dispatch('user/fetchUserInfo')
|
|
|
+ .then(({ menus, homePath, authoritiesRouter }) => {
|
|
|
+ router.roleChange({ menus, homePath, authoritiesRouter });
|
|
|
+ });
|
|
|
},
|
|
|
- methods: {
|
|
|
- /* 用户信息下拉点击事件 */
|
|
|
- onUserDropClick(command) {
|
|
|
- if (command === 'password') {
|
|
|
- this.passwordVisible = true;
|
|
|
- } else if (command === 'profile') {
|
|
|
- if (this.$route.fullPath !== '/user/profile') {
|
|
|
- this.$router.push('/user/profile');
|
|
|
- }
|
|
|
- } else if (command === 'logout') {
|
|
|
- // 退出登录
|
|
|
- this.$confirm(
|
|
|
- this.$t('layout.logout.message'),
|
|
|
- this.$t('layout.logout.title'),
|
|
|
- { type: 'warning' }
|
|
|
- )
|
|
|
- .then(() => {
|
|
|
- userLogout().then((res) => {
|
|
|
- console.log(res);
|
|
|
- localStorage.removeItem(`userId-${SYSTEM_NAME}`);
|
|
|
- logout();
|
|
|
- });
|
|
|
- })
|
|
|
- .catch(() => {});
|
|
|
+ /* 用户信息下拉点击事件 */
|
|
|
+ onUserDropClick(command) {
|
|
|
+ if (command === 'password') {
|
|
|
+ this.passwordVisible = true;
|
|
|
+ } else if (command === 'profile') {
|
|
|
+ if (this.$route.fullPath !== '/user/profile') {
|
|
|
+ this.$router.push('/user/profile');
|
|
|
}
|
|
|
- },
|
|
|
- /* 全屏切换 */
|
|
|
- toggleFullscreen() {
|
|
|
- this.$emit('fullscreen');
|
|
|
- },
|
|
|
- /* 打开设置抽屉 */
|
|
|
- openSetting() {
|
|
|
- this.settingVisible = true;
|
|
|
+ } else if (command === 'logout') {
|
|
|
+ // 退出登录
|
|
|
+ this.$confirm(
|
|
|
+ this.$t('layout.logout.message'),
|
|
|
+ this.$t('layout.logout.title'),
|
|
|
+ { type: 'warning' }
|
|
|
+ )
|
|
|
+ .then(() => {
|
|
|
+ userLogout().then((res) => {
|
|
|
+ console.log(res);
|
|
|
+ localStorage.removeItem(`userId-${SYSTEM_NAME}`);
|
|
|
+ logout();
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {});
|
|
|
}
|
|
|
+ },
|
|
|
+ /* 全屏切换 */
|
|
|
+ toggleFullscreen() {
|
|
|
+ this.$emit('fullscreen');
|
|
|
+ },
|
|
|
+ /* 打开设置抽屉 */
|
|
|
+ openSetting() {
|
|
|
+ this.settingVisible = true;
|
|
|
}
|
|
|
- };
|
|
|
+ }
|
|
|
+};
|
|
|
</script>
|