修改切换账号功能

This commit is contained in:
yangjun 2024-10-10 13:53:13 +08:00
parent c301c6f428
commit 50538c9284
3 changed files with 114 additions and 1 deletions

View File

@ -0,0 +1,80 @@
<template>
<BasicModal v-bind="$attrs" @register="registerModal" :title="title" @ok="handleSubmit" width="600px">
<row>
<a-col style="margin-top: 150px;"> <span style="margin-left: 50px;">账号</span><a-input v-model:value="qhuserName" style="width:70%;"></a-input> </a-col>
</row>
</BasicModal>
</template>
<script lang="ts" setup>
import { ref, unref } from 'vue';
import { rules } from '/@/utils/helper/validator';
import { defHttp } from '/@/utils/http/axios';
import { BasicModal, useModalInner } from '/@/components/Modal';
import BasicForm from '/@/components/Form/src/BasicForm.vue';
import { useForm } from '/@/components/Form/src/hooks/useForm';
import { useMessage } from '/@/hooks/web/useMessage';
import { useLocaleStore } from '/@/store/modules/locale';
import { useI18n } from '/@/hooks/web/useI18n';
import { useUserStoreWithOut } from '/@/store/modules/user';
const $message = useMessage();
const localeStore = useLocaleStore();
const { t } = useI18n();
// Emits
const emit = defineEmits(['register']);
const formRef = ref();
const username = ref('');
const qhuserName = ref('');
// update-begin--author:liaozhiyang---date:20240124---forQQYUN-7970
const title = ref(t('layout.changePassword.dropdownItemZhanghao'));
//
const [registerModal, { setModalProps, closeModal }] = useModalInner();
//
async function handleSubmit() {
try {
//
let params = { username: qhuserName.value };
console.log('🙄', params);
await defHttp.post({ url: '/sys/qhlogin', params }, { isTransformResponse: false }).then((res) => {
console.log('👩‍🦲', res);
if (res.success) {
$message.createMessage.success(res.message);
const userStore = useUserStoreWithOut();
userStore.setToken(undefined);
userStore.setToken(res.result.token);
userStore.setUserInfo(res.result.userInfo);
window.location.reload();
//
closeModal();
} else {
$message.createMessage.warning(res.message);
}
});
// const { token, userInfo } = data;
// // save token
// this.setToken(token);
// this.setTenant(userInfo.loginTenantId);
// this.afterLoginAction(goHome, data);
} finally {
setModalProps({ confirmLoading: false });
}
}
async function show(name) {
if (!name) {
$message.createMessage.warning('当前系统无登录用户!');
return;
} else {
username.value = name;
await setModalProps({ visible: true });
}
}
defineExpose({
title,
show,
});
</script>

View File

@ -16,7 +16,8 @@
<MenuItem key="account" :text="t('layout.header.dropdownItemSwitchAccount')" icon="ant-design:setting-outlined" /> <MenuItem key="account" :text="t('layout.header.dropdownItemSwitchAccount')" icon="ant-design:setting-outlined" />
<MenuItem key="password" :text="t('layout.header.dropdownItemSwitchPassword')" icon="ant-design:edit-outlined" /> <MenuItem key="password" :text="t('layout.header.dropdownItemSwitchPassword')" icon="ant-design:edit-outlined" />
<MenuItem key="depart" :text="t('layout.header.dropdownItemSwitchDepart')" icon="ant-design:cluster-outlined" /> <MenuItem key="depart" :text="t('layout.header.dropdownItemSwitchDepart')" icon="ant-design:cluster-outlined" />
<MenuItem key="cache" :text="t('layout.header.dropdownItemRefreshCache')" icon="ion:sync-outline" /> <MenuItem key="qhzh" :text="t('layout.header.dropdownItemSwitchUser')" icon="ant-design:cluster-outlined" />
<MenuItem key="cache" v-if="adminRole" :text="t('layout.header.dropdownItemRefreshCache')" icon="ion:sync-outline" />
<!-- <MenuItem <!-- <MenuItem
v-if="getUseLockPage" v-if="getUseLockPage"
key="lock" key="lock"
@ -30,6 +31,7 @@
<LockAction @register="register" /> <LockAction @register="register" />
<DepartSelect ref="loginSelectRef" /> <DepartSelect ref="loginSelectRef" />
<UpdatePassword ref="updatePasswordRef" /> <UpdatePassword ref="updatePasswordRef" />
<Qiehuanzhanghao ref="qiehuanzhanghaoRef" />
</template> </template>
<script lang="ts"> <script lang="ts">
// components // components
@ -56,6 +58,8 @@
import { DB_DICT_DATA_KEY } from '/src/enums/cacheEnum'; import { DB_DICT_DATA_KEY } from '/src/enums/cacheEnum';
import { removeAuthCache, setAuthCache } from '/src/utils/auth'; import { removeAuthCache, setAuthCache } from '/src/utils/auth';
import { getFileAccessHttpUrl } from '/@/utils/common/compUtils'; import { getFileAccessHttpUrl } from '/@/utils/common/compUtils';
import Qiehuanzhanghao from './Qiehuanzhanghao.vue';
import { defHttp } from '/@/utils/http/axios';
type MenuEvent = 'logout' | 'doc' | 'lock' | 'cache' | 'depart'; type MenuEvent = 'logout' | 'doc' | 'lock' | 'cache' | 'depart';
const { createMessage } = useMessage(); const { createMessage } = useMessage();
@ -69,6 +73,7 @@
LockAction: createAsyncComponent(() => import('../lock/LockModal.vue')), LockAction: createAsyncComponent(() => import('../lock/LockModal.vue')),
DepartSelect: createAsyncComponent(() => import('./DepartSelect.vue')), DepartSelect: createAsyncComponent(() => import('./DepartSelect.vue')),
UpdatePassword: createAsyncComponent(() => import('./UpdatePassword.vue')), UpdatePassword: createAsyncComponent(() => import('./UpdatePassword.vue')),
Qiehuanzhanghao: createAsyncComponent(() => import('./Qiehuanzhanghao.vue')),
}, },
props: { props: {
theme: propTypes.oneOf(['dark', 'light']), theme: propTypes.oneOf(['dark', 'light']),
@ -79,6 +84,7 @@
const { getShowDoc, getUseLockPage } = useHeaderSetting(); const { getShowDoc, getUseLockPage } = useHeaderSetting();
const userStore = useUserStore(); const userStore = useUserStore();
const go = useGo(); const go = useGo();
const adminRole = ref(false);
const getUserInfo = computed(() => { const getUserInfo = computed(() => {
const { realname = '', avatar, desc } = userStore.getUserInfo || {}; const { realname = '', avatar, desc } = userStore.getUserInfo || {};
@ -99,6 +105,19 @@
* 多部门弹窗逻辑 * 多部门弹窗逻辑
*/ */
const loginSelectRef = ref(); const loginSelectRef = ref();
defHttp.get({ url: '/sys/user/queryUserRole',params:{userid:userStore.getUserInfo.id} }).then((res) => {
console.log('--->',res);
if (res.length>0) {
res.forEach((item=>{
if(item == 'f6817f48af4fb3af11b9e8bf182f618b'){
adminRole.value = true;
}
}))
}
});
function handleLock() { function handleLock() {
openModal(true); openModal(true);
} }
@ -129,6 +148,15 @@
function updateCurrentDepart() { function updateCurrentDepart() {
loginSelectRef.value.show(); loginSelectRef.value.show();
} }
//
const qiehuanzhanghaoRef = ref();
//
function updateQhzh() {
console.log(`🚀 ~ updateQhzh ~ updateQhzh:切换账号`)
qiehuanzhanghaoRef.value.title = "切换账号";
qiehuanzhanghaoRef.value.show(userStore.getUserInfo.username);
}
// //
const updatePasswordRef = ref(); const updatePasswordRef = ref();
function updatePassword() { function updatePassword() {
@ -160,6 +188,9 @@
go(`/system/usersetting`); go(`/system/usersetting`);
//update-end---author:wangshuai ---date:20221125 for-------------- //update-end---author:wangshuai ---date:20221125 for--------------
break; break;
case 'qhzh':
updateQhzh();
break;
} }
} }
@ -174,6 +205,7 @@
getUseLockPage, getUseLockPage,
loginSelectRef, loginSelectRef,
updatePasswordRef, updatePasswordRef,
qiehuanzhanghaoRef,
}; };
}, },
}); });

View File

@ -6,6 +6,7 @@ export default {
dropdownItemLoginOut: '退出系统', dropdownItemLoginOut: '退出系统',
dropdownItemSwitchPassword: '密码修改', dropdownItemSwitchPassword: '密码修改',
dropdownItemSwitchDepart: '切换部门', dropdownItemSwitchDepart: '切换部门',
dropdownItemSwitchUser: '切换账号',
dropdownItemRefreshCache: '刷新缓存', dropdownItemRefreshCache: '刷新缓存',
dropdownItemSwitchAccount: '账户设置', dropdownItemSwitchAccount: '账户设置',