diff --git a/src/components/ui/CardDescriptor.vue b/src/components/ui/CardDescriptor.vue index 961438b04..168b69f42 100644 --- a/src/components/ui/CardDescriptor.vue +++ b/src/components/ui/CardDescriptor.vue @@ -38,6 +38,10 @@ const $props = defineProps({ type: String, default: 'md-width', }, + toModule: { + type: String, + default: null, + }, }); const state = useState(); @@ -129,6 +133,11 @@ const emit = defineEmits(['onFetch']); const iconModule = computed(() => { moduleName.value = getName(); + if ($props.toModule) { + return router + .getRoutes() + .find((r) => r.name && r.name.includes($props.toModule.name)).meta.icon; + } if (isSameModuleName) { return router.options.routes[1].children.find((r) => r.name === moduleName.value) ?.meta?.icon; @@ -139,9 +148,10 @@ const iconModule = computed(() => { const toModule = computed(() => { moduleName.value = getName(); + if ($props.toModule) return $props.toModule; if (isSameModuleName) { return router.options.routes[1].children.find((r) => r.name === moduleName.value) - ?.children[0]?.redirect; + ?.redirect; } else { return route.matched[1].path.split('/').length > 2 ? route.matched[1].redirect diff --git a/src/pages/Account/Role/Card/RoleDescriptor.vue b/src/pages/Account/Role/Card/RoleDescriptor.vue index 517517af0..051359702 100644 --- a/src/pages/Account/Role/Card/RoleDescriptor.vue +++ b/src/pages/Account/Role/Card/RoleDescriptor.vue @@ -37,6 +37,7 @@ const removeRole = async () => { :filter="{ where: { id: entityId } }" data-key="Role" :summary="$props.summary" + :to-module="{ name: 'AccountRoles' }" >