diff --git a/frontend/src/components/layout/layout-info/select-role.vue b/frontend/src/components/layout/layout-info/select-role.vue index d8952ea..c908a10 100644 --- a/frontend/src/components/layout/layout-info/select-role.vue +++ b/frontend/src/components/layout/layout-info/select-role.vue @@ -24,12 +24,8 @@ const showModal = () => { const handleOk = () => { loading.value = true store.userSelectRole(currentRoleId.value) - setTimeout(() => { - loading.value = false - visible.value = false - // 页面刷新-》 白屏 - location.reload() - }, 1000) + // 刷新组件 todo + visible.value = false } const handleCancel = () => { @@ -46,7 +42,14 @@ defineExpose({ 选择角色: diff --git a/frontend/src/stores/user.js b/frontend/src/stores/user.js index 1604aeb..adea842 100644 --- a/frontend/src/stores/user.js +++ b/frontend/src/stores/user.js @@ -91,6 +91,7 @@ export const userStore = defineStore( isLoading, selectKey, $reset, + getUserData, loginAction, loadRoleRouter, userSelectRole diff --git a/frontend/src/views/main/system/user/user.vue b/frontend/src/views/main/system/user/user.vue index 07fd245..81f7f29 100644 --- a/frontend/src/views/main/system/user/user.vue +++ b/frontend/src/views/main/system/user/user.vue @@ -8,7 +8,8 @@ import { getRoles } from '@/service/role' import { columns, addUserRules, putUserRules } from './conf' import { message } from 'ant-design-vue' import { userStore } from '@/stores/user' -import router from '@/router' + +const store = userStore() /**查询表单响应式数据 */ const queryFormRef = ref() @@ -157,30 +158,31 @@ const putUserForm = reactive({ const putId = ref() //modal 事件 -const onOkPut = () => { +const onOkPut = async () => { //校验数据 - putUserFormRef.value.validateFields().then(() => { + putUserFormRef.value.validateFields().then(async () => { //验证通过 const { nickname, password, roles } = putUserForm let rids = roles.map((e, i) => ({ rid: e, status: i === 0 ? 5 : 1 })) - putUser(putId.value, { nickname, password, roles: rids }).then((res) => { - if (res.msg === '请求成功') { - message.success('修改成功') - // 1. 关闭 modal - putVisible.value = !putVisible.value - // 2. 重置响应式数据 - putUserFormRef.value.resetFields() - if (putId.value === userStore().userInfo.id) { - // 改了自己 - message.warning('修改了自己,请重新登录') - userStore().$reset() - router.push('/login') - } else { - // 3. 刷新页面数据 - getPageData() + const res = await putUser(putId.value, { nickname, password, roles: rids }) + if (res.msg === '请求成功') { + message.success('修改成功') + // 1. 关闭 modal + putVisible.value = !putVisible.value + // 2. 重置响应式数据 + putUserFormRef.value.resetFields() + // 修改了自己 + if (putId.value === store.userInfo.id) { + // 并且修改了激活角色 + if (rids[0]['rid'] !== store.userInfo.roles[0]['id']) { + store.getUserData(putId.value) + // 刷新组件 todo } + } else { + // 3. 刷新页面数据 + getPageData() } - }) + } }) }