criterios aceptacion: parsear Quill HTML a lista JSON + tooltip en dashboard

This commit is contained in:
2026-05-27 22:51:30 -05:00
parent 0a240ea146
commit 0339aa23f6
4 changed files with 49 additions and 5 deletions
+15 -3
View File
@@ -4,7 +4,7 @@ import { useI18n } from 'vue-i18n'
import { useProjectsStore } from '@/stores/projects'
import { useWorkItemsStore } from '@/stores/workitems'
import { getTypeLabel, getTypeColor, getTypeIcon } from '@/services/hierarchy'
import { Activity, FileText, Layers, Clock } from 'lucide-vue-next'
import { Activity, FileText, Layers, Clock, Info } from 'lucide-vue-next'
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
import { Badge } from '@/components/ui/badge'
import { Skeleton } from '@/components/ui/skeleton'
@@ -208,8 +208,20 @@ const statusLabel = (status: unknown) => {
{{ getTypeLabel(hu._itemType) }}
</span>
</TableCell>
<TableCell class="text-sm max-w-[280px] truncate">
{{ hu._cleanTitle || hu.title }}
<TableCell class="text-sm max-w-[280px] truncate flex items-center gap-1">
<span class="truncate">{{ hu._cleanTitle || hu.title }}</span>
<span
v-if="hu._criteriaList?.length"
class="group relative inline-flex flex-shrink-0 cursor-help"
>
<Info class="size-3.5 text-muted-foreground hover:text-foreground transition-colors" />
<div class="absolute bottom-full left-0 mb-2 w-72 p-3 rounded-lg border bg-popover text-popover-foreground text-xs shadow-md opacity-0 group-hover:opacity-100 transition-opacity z-50 pointer-events-none">
<p class="font-semibold mb-1.5 text-[11px] uppercase tracking-wider text-muted-foreground">Criterios de aceptación</p>
<ol class="list-decimal list-inside space-y-1 text-[11px]">
<li v-for="(c, i) in hu._criteriaList" :key="i">{{ c }}</li>
</ol>
</div>
</span>
</TableCell>
<TableCell>
<Badge :variant="statusVariant(hu.status || '')" class="text-xs capitalize">