refactor: 优化数据加载逻辑.

This commit is contained in:
lijiahangmax
2023-12-02 23:36:02 +08:00
parent 9f35fb855d
commit a22f30a8b4
19 changed files with 155 additions and 117 deletions

View File

@@ -31,7 +31,6 @@
import type { TabRouterItem } from '@/components/view/tab-router/types';
import { computed, onMounted, ref } from 'vue';
import { useCacheStore } from '@/store';
import { getRoleList } from '@/api/user/role';
import { Message } from '@arco-design/web-vue';
import useLoading from '@/hooks/loading';
@@ -59,9 +58,14 @@
const loadRoleList = async () => {
setLoading(true);
try {
const { data } = await getRoleList();
// 设置到缓存
cacheStore.set('roles', data);
const roles = await cacheStore.loadRoles();
rolesRouter.value = roles.map(s => {
return {
key: s.id,
text: `${s.name} (${s.code})`,
code: s.code
};
});
} catch (e) {
Message.error('角色列表加载失败');
} finally {
@@ -69,18 +73,9 @@
}
};
// 加载主机
onMounted(async () => {
if (!cacheStore.roles.length) {
await loadRoleList();
}
rolesRouter.value = cacheStore.roles.map(s => {
return {
key: s.id,
text: `${s.name} (${s.code})`,
code: s.code
};
});
// 加载角色列表
onMounted(() => {
loadRoleList();
});
</script>

View File

@@ -31,7 +31,6 @@
import type { TabRouterItem } from '@/components/view/tab-router/types';
import { computed, onMounted, ref } from 'vue';
import { useCacheStore } from '@/store';
import { getUserList } from '@/api/user/user';
import { Message } from '@arco-design/web-vue';
import useLoading from '@/hooks/loading';
@@ -59,9 +58,13 @@
const loadUserList = async () => {
setLoading(true);
try {
const { data } = await getUserList();
// 设置到缓存
cacheStore.set('users', data);
const users = await cacheStore.loadUsers();
usersRouter.value = users.map(s => {
return {
key: s.id,
text: `${s.nickname} (${s.username})`
};
});
} catch (e) {
Message.error('用户列表加载失败');
} finally {
@@ -69,17 +72,9 @@
}
};
// 加载主机
onMounted(async () => {
if (!cacheStore.users.length) {
await loadUserList();
}
usersRouter.value = cacheStore.users.map(s => {
return {
key: s.id,
text: `${s.nickname} (${s.username})`
};
});
// 加载用户列表
onMounted(() => {
loadUserList();
});
</script>

View File

@@ -69,7 +69,7 @@
import { reactive, ref } from 'vue';
import useLoading from '@/hooks/loading';
import { useDictStore } from '@/store';
import UserSelector from '@/components/user/role/user-selector.vue';
import UserSelector from '@/components/user/user/user-selector.vue';
import { operatorLogModuleKey, operatorLogTypeKey, operatorRiskLevelKey, operatorLogResultKey } from '../types/const';
import { labelFilter } from '@/types/form';

View File

@@ -34,7 +34,6 @@
import { ref, onBeforeMount, onUnmounted } from 'vue';
import { useCacheStore, useDictStore } from '@/store';
import { dictKeys } from './types/const';
import { getUserList } from '@/api/user/user';
import OperatorLogQueryHeader from './components/operator-log-query-header.vue';
import OperatorLogTable from './components/operator-log-table.vue';
import JsonViewModal from '@/components/view/json/json-view-modal.vue';
@@ -45,18 +44,10 @@
const table = ref();
const view = ref();
// 加载全部用户列表
const fetchUserList = async () => {
const { data } = await getUserList();
cacheStore.set('users', data);
};
onBeforeMount(async () => {
// 加载字典值
const dictStore = useDictStore();
await dictStore.loadKeys(dictKeys);
// 加载用户列表
await fetchUserList();
render.value = true;
});

View File

@@ -29,7 +29,7 @@
</a-form-item>
<!-- 角色 -->
<a-form-item field="roles" label="角色">
<user-role-selector v-model="formModel.roleIdList"
<role-selector v-model="formModel.roleIdList"
:loading="roleLoading"
:multiple="true" />
</a-form-item>
@@ -50,8 +50,7 @@
import useLoading from '@/hooks/loading';
import useVisible from '@/hooks/visible';
import { Message } from '@arco-design/web-vue';
import UserRoleSelector from '@/components/user/role/user-role-selector.vue';
import { getRoleList } from '@/api/user/role';
import RoleSelector from '@/components/user/role/role-selector.vue';
import { useCacheStore } from '@/store';
import { getUserRoleIdList, grantUserRole } from '@/api/user/user';
@@ -84,11 +83,6 @@
const loadRoles = async () => {
try {
setRoleLoading(true);
// 获取全部角色
if (!cacheStore.roles?.length) {
const { data } = await getRoleList();
cacheStore.set('roles', data);
}
// 加载用户角色
const { data: roleIdList } = await getUserRoleIdList(formModel.value.id as number);
formModel.value.roleIdList = roleIdList;

View File

@@ -39,6 +39,7 @@
const grantRoleModal = ref();
onBeforeMount(async () => {
// 加载字典值
const dictStore = useDictStore();
await dictStore.loadKeys(dictKeys);
render.value = true;