Scores/resources/js/Components/App/MainRoleSelector.vue
Juan Felipe Zapata Moreno 023fd8d2f8 Habilidades Puntuadas (#2)
Co-authored-by: Juan Felipe Zapata Moreno <zapata_pipe@hotmail.com>
Reviewed-on: #2
Co-authored-by: Juan Felipe Zapata Moreno <juan.zapata@golsystems.com.mx>
Co-committed-by: Juan Felipe Zapata Moreno <juan.zapata@golsystems.com.mx>
2025-07-17 19:50:45 +00:00

48 lines
1.4 KiB
Vue

<script setup>
import { computed } from 'vue';
const emit = defineEmits(['select']);
const props = defineProps({
mainRoles: Object,
selectedDepartment: Object,
});
const departmentMainRoles = computed(() => {
return props.mainRoles.filter(role =>
role.department && role.department.id === props.selectedDepartment.id
);
});
</script>
<template>
<div class="w-full">
<div class="mb-6 mt-12">
<h2 class="text-xl font-semibold mb-2">
{{ $t('mainRole.inDepartment') }}
</h2>
<p class="text-gray-600">{{ $t('mainRole.select.description') }}</p>
</div>
<div v-if="departmentMainRoles.length > 0" class="grid grid-cols-1 md:grid-cols-2 gap-4">
<button
v-for="mainRole in departmentMainRoles"
:key="mainRole.id"
@click="$emit('select', mainRole)"
class="group p-6 border-2 border-gray-200 rounded-lg hover:border-primary hover:bg-primary/5 transition-all duration-200 text-left focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2"
>
<h3 class="font-semibold text-lg mb-2 group-hover:text-primary transition-colors">
{{ mainRole.name }}
</h3>
<p class="text-gray-600 text-sm">
{{ mainRole.description}}
</p>
</button>
</div>
<div v-else class="text-center py-12">
<p class="text-gray-500 text-lg">{{ $t('mainRole.noRolesInDepartment') }}</p>
</div>
</div>
</template>