44 lines
2.1 KiB
PHP
44 lines
2.1 KiB
PHP
@php
|
|
use App\Services\DocumentPdfPreviewService;
|
|
|
|
$previewService = app(DocumentPdfPreviewService::class);
|
|
$canPreview = $previewService->canPreview($document);
|
|
$previewUrl = $canPreview ? $previewService->previewUrl($document) : null;
|
|
@endphp
|
|
|
|
<div class="document-preview-modal">
|
|
@if (! $canPreview)
|
|
<div class="rounded-lg bg-danger-50 p-4 text-danger-600 dark:bg-danger-400/10 dark:text-danger-400">
|
|
<div class="flex items-center gap-3">
|
|
<svg class="h-5 w-5" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z" />
|
|
</svg>
|
|
<div>
|
|
<p class="font-semibold">预览失败</p>
|
|
<p class="text-sm">该文档尚未完成转换或原文件不存在</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@elseif ($previewUrl)
|
|
<div class="rounded-lg border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-800">
|
|
<div class="border-b border-gray-200 bg-gray-50 px-4 py-3 dark:border-gray-700 dark:bg-gray-900">
|
|
<div class="flex items-center justify-between">
|
|
<h3 class="text-sm font-medium text-gray-700 dark:text-gray-300">
|
|
PDF 内容预览
|
|
</h3>
|
|
<span class="text-xs text-gray-500 dark:text-gray-400">
|
|
{{ $document->display_file_name }}
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
<iframe
|
|
class="w-full rounded-b-lg bg-gray-100 dark:bg-gray-950"
|
|
style="height: min(82vh, 960px); min-height: 720px;"
|
|
src="{{ $previewUrl }}"
|
|
title="{{ $document->title }} PDF 预览"
|
|
></iframe>
|
|
</div>
|
|
@endif
|
|
</div>
|