refactor: restructure results section in Share.vue for improved clarity; enhance display of cutting results with a new table format and computed logic for grouped results

This commit is contained in:
Yoga Pangestu 2026-07-05 02:09:17 +07:00
parent 27f55ef18e
commit 02fb2045d2

View File

@ -154,33 +154,77 @@ const groupedResults = computed<GroupedResults[]>(() => {
</div> </div>
</div> </div>
<!-- Summary --> <!-- Results Section -->
<div class="border-b p-6"> <div v-if="cutting.results.length" class="border-b p-6">
<h3 class="mb-3 text-sm font-semibold">Ringkasan</h3> <h3 class="mb-3 text-sm font-semibold">Hasil Produk</h3>
<div class="grid gap-4 sm:grid-cols-2"> <div class="overflow-hidden rounded-md border">
<div class="rounded-lg border p-3"> <Table>
<p class="text-xs text-muted-foreground"> <TableHeader>
Total Hasil Cutting <TableRow>
</p> <TableHead>Varian</TableHead>
<p class="mt-1 text-lg font-semibold text-primary"> <TableHead>Foto</TableHead>
{{ cutting.total_result_pieces ?? 0 }} pcs <TableHead class="text-right"
</p> >Hasil</TableHead
</div> >
<div <TableHead class="text-right"
v-if=" >Sample</TableHead
cutting.total_material_usage_summary_formatted >
" <TableHead class="text-right"
class="rounded-lg border p-3" >Diluar Sample</TableHead
> >
<p class="text-xs text-muted-foreground"> </TableRow>
Total Pemakaian Bahan </TableHeader>
</p> <TableBody>
<p class="mt-1 text-lg font-semibold text-primary"> <template
{{ v-for="group in groupedResults"
cutting.total_material_usage_summary_formatted :key="group.key"
}} >
</p> <TableRow
</div> class="bg-muted/20 hover:bg-muted/20"
>
<TableCell
colspan="5"
class="font-semibold"
>
{{ group.name }}
</TableCell>
</TableRow>
<TableRow
v-for="result in group.items"
:key="result.id"
>
<TableCell class="pl-6">
{{ result.product_variant?.name }}
</TableCell>
<TableCell>
<MediaThumbnailCell
:items="
result.product_variant
?.images ?? []
"
:max-visible="1"
/>
</TableCell>
<TableCell
class="text-right tabular-nums"
>
{{ result.cutting_result }} pcs
</TableCell>
<TableCell
class="text-right tabular-nums"
>
{{ result.sample }} pcs
</TableCell>
<TableCell
class="text-right tabular-nums"
>
{{ result.original_outside_sample }}
pcs
</TableCell>
</TableRow>
</template>
</TableBody>
</Table>
</div> </div>
</div> </div>
@ -281,77 +325,33 @@ const groupedResults = computed<GroupedResults[]>(() => {
</div> </div>
</div> </div>
<!-- Results Section --> <!-- Summary -->
<div v-if="cutting.results.length" class="p-6"> <div class="p-6">
<h3 class="mb-3 text-sm font-semibold">Hasil Produk</h3> <h3 class="mb-3 text-sm font-semibold">Ringkasan</h3>
<div class="overflow-hidden rounded-md border"> <div class="grid gap-4 sm:grid-cols-2">
<Table> <div class="rounded-lg border p-3">
<TableHeader> <p class="text-xs text-muted-foreground">
<TableRow> Total Hasil Cutting
<TableHead>Varian</TableHead> </p>
<TableHead>Foto</TableHead> <p class="mt-1 text-lg font-semibold text-primary">
<TableHead class="text-right" {{ cutting.total_result_pieces ?? 0 }} pcs
>Hasil</TableHead </p>
> </div>
<TableHead class="text-right" <div
>Sample</TableHead v-if="
> cutting.total_material_usage_summary_formatted
<TableHead class="text-right" "
>Diluar Sample</TableHead class="rounded-lg border p-3"
> >
</TableRow> <p class="text-xs text-muted-foreground">
</TableHeader> Total Pemakaian Bahan
<TableBody> </p>
<template <p class="mt-1 text-lg font-semibold text-primary">
v-for="group in groupedResults" {{
:key="group.key" cutting.total_material_usage_summary_formatted
> }}
<TableRow </p>
class="bg-muted/20 hover:bg-muted/20" </div>
>
<TableCell
colspan="5"
class="font-semibold"
>
{{ group.name }}
</TableCell>
</TableRow>
<TableRow
v-for="result in group.items"
:key="result.id"
>
<TableCell class="pl-6">
{{ result.product_variant?.name }}
</TableCell>
<TableCell>
<MediaThumbnailCell
:items="
result.product_variant
?.images ?? []
"
:max-visible="1"
/>
</TableCell>
<TableCell
class="text-right tabular-nums"
>
{{ result.cutting_result }} pcs
</TableCell>
<TableCell
class="text-right tabular-nums"
>
{{ result.sample }} pcs
</TableCell>
<TableCell
class="text-right tabular-nums"
>
{{ result.original_outside_sample }}
pcs
</TableCell>
</TableRow>
</template>
</TableBody>
</Table>
</div> </div>
</div> </div>
</div> </div>