[update] strukview

This commit is contained in:
dhilanradya 2025-09-19 15:50:27 +07:00
parent 6246800b0c
commit 604148e28e

View File

@ -1,7 +1,9 @@
<template> <template>
<div v-if="isOpen" <div v-if="isOpen"
class="text-D pt-serif-regular-italic fixed inset-0 bg-black/75 flex items-center justify-center z-[9999]"> class="text-D pt-serif-regular-italic fixed inset-0 bg-black/75 flex items-center justify-center z-[9999]">
<div class="bg-white w-[1224px] h-[528px] rounded-md shadow-lg relative overflow-hidden">
<!-- Tambahkan class "print-area" agar bisa difokuskan saat print -->
<div class="print-area bg-white w-[1224px] h-[528px] rounded-md shadow-lg relative overflow-hidden">
<div class="bg-yellow-500 h-8 w-full"> <div class="bg-yellow-500 h-8 w-full">
<div class="bg-D h-6 w-full"></div> <div class="bg-D h-6 w-full"></div>
</div> </div>
@ -133,7 +135,7 @@
<p class="font-semibold">Ongkos bikin</p> <p class="font-semibold">Ongkos bikin</p>
<p class="text-red-500 text-xs">diluar harga jual</p> <p class="text-red-500 text-xs">diluar harga jual</p>
</div> </div>
<div class="flex items-center w-40"> <div class="flex p-1 items-center w-40 bg-B rounded-sm">
<p>Rp</p> <p>Rp</p>
<p class="px-2 pl-0 text-left text-sm w-full"> <p class="px-2 pl-0 text-left text-sm w-full">
{{ (transaksi.ongkos_bikin || 0).toLocaleString() }},- {{ (transaksi.ongkos_bikin || 0).toLocaleString() }},-
@ -154,7 +156,7 @@
</div> </div>
<!-- Tombol --> <!-- Tombol -->
<div class="flex justify-end gap-2 mt-4"> <div class="flex justify-end gap-2 mt-4 no-print">
<button @click="$emit('close')" class="bg-gray-400 text-white px-6 py-2 rounded"> <button @click="$emit('close')" class="bg-gray-400 text-white px-6 py-2 rounded">
Tutup Tutup
</button> </button>
@ -196,50 +198,34 @@ const props = defineProps({
const emit = defineEmits(['close']) const emit = defineEmits(['close'])
// Format tanggal sesuai dengan format yang ada
const formatDate = (dateString) => { const formatDate = (dateString) => {
if (!dateString) return '-' if (!dateString) return '-'
const days = ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu'] const days = ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu']
const months = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'] const months = ['01','02','03','04','05','06','07','08','09','10','11','12']
const date = new Date(dateString) const date = new Date(dateString)
const dayName = days[date.getDay()] const dayName = days[date.getDay()]
const day = String(date.getDate()).padStart(2, '0') const day = String(date.getDate()).padStart(2, '0')
const month = months[date.getMonth()] const month = months[date.getMonth()]
const year = date.getFullYear() const year = date.getFullYear()
return `${dayName}/${day}-${month}-${year}` return `${dayName}/${day}-${month}-${year}`
} }
// Menambahkan minimal 2 baris untuk tampilan yang konsisten
const itemsWithMinimal = computed(() => { const itemsWithMinimal = computed(() => {
console.log('Transaksi data in StrukView:', props.transaksi)
// Coba berbagai kemungkinan nama field
const items = props.transaksi.itemTransaksi || const items = props.transaksi.itemTransaksi ||
props.transaksi.items || props.transaksi.items ||
props.transaksi.item_transaksi || props.transaksi.item_transaksi ||
[] []
console.log('Items found:', items)
const arr = [...items] const arr = [...items]
// Pastikan minimal ada 2 baris untuk tampilan yang rapi
while (arr.length < 2) { while (arr.length < 2) {
arr.push({ produk: {}, harga_deal: 0, posisi_asal: '' }) arr.push({ produk: {}, harga_deal: 0, posisi_asal: '' })
} }
return arr return arr
}) })
// Fungsi print (bisa dikembangkan lebih lanjut)
const handlePrint = () => { const handlePrint = () => {
window.print() window.print()
} }
// Format number helper
const formatNumber = (number) => { const formatNumber = (number) => {
if (!number) return 0 if (!number) return 0
return parseFloat(number).toLocaleString('id-ID') return parseFloat(number).toLocaleString('id-ID')
@ -256,16 +242,22 @@ const formatNumber = (number) => {
/* Print styles */ /* Print styles */
@media print { @media print {
.fixed { body * {
position: static !important; visibility: hidden;
} }
.print-area, .print-area * {
.bg-black\/75 { visibility: visible;
background: none !important;
} }
.print-area {
button { position: absolute;
top: 0;
left: 0;
transform: scale(0.5); /* perkecil 2x lipat */
transform-origin: top left; /* supaya mengecil dari pojok kiri atas */
}
.no-print {
display: none !important; display: none !important;
} }
} }
</style> </style>