diff --git a/fe-admin/src/components/pe/PeDetailTabs.tsx b/fe-admin/src/components/pe/PeDetailTabs.tsx index fc44fc0..46215c1 100644 --- a/fe-admin/src/components/pe/PeDetailTabs.tsx +++ b/fe-admin/src/components/pe/PeDetailTabs.tsx @@ -1444,8 +1444,9 @@ function HoSoLinkRow({ ev, readOnly = false }: { ev: PeDetailBundle; readOnly?: {ev.hoSoLink} ) : ( - // Đường dẫn ổ cứng/ổ mạng (O:\…, \\server) → trình duyệt CHẶN mở file:// - // từ https nên bấm sẽ hụt → hiện chữ + nút Copy để dán vào File Explorer. + // Đường dẫn ổ cứng/ổ mạng (O:\…, \\server) → render link file:// để BẤM-THỬ + // mở File Explorer (chạy nếu máy/trình duyệt cho phép, vd máy domain map sẵn + // ổ mạng) + nút Copy dự phòng (default Chrome chặn https→file:// thì dùng Copy). ) ) : ( @@ -1456,9 +1457,18 @@ function HoSoLinkRow({ ev, readOnly = false }: { ev: PeDetailBundle; readOnly?: ) } -// e.bis — Đường dẫn ổ cứng/ổ mạng (không phải http) → chữ + nút Copy. Trình duyệt -// CHẶN mở file:// từ trang https nên KHÔNG render bấm-mở (bấm sẽ hụt); thay -// bằng Copy → người dùng dán vào File Explorer (máy có map ổ mạng là mở ngay). +// Đổi đường dẫn Windows → URL file:// (O:\DATA\x → file:///O:/DATA/x · \\srv\share → file://srv/share). +function toFileUrl(p: string): string { + const slashed = p.trim().replace(/\\/g, '/') + const url = slashed.startsWith('//') ? 'file:' + slashed : 'file:///' + slashed + return encodeURI(url) +} + +// e.bis — Đường dẫn ổ cứng/ổ mạng (không phải http). Render LINK file:// để BẤM-THỬ +// mở File Explorer + nút Copy dự phòng. Bấm-mở chỉ chạy khi máy được cấu hình: +// Edge bật policy IntranetFileLinksEnabled (GPO 1 lần/domain, KHÔNG cài per-máy) + +// host trong Intranet Zone. Default Chrome/Edge CHẶN https→file:// (bấm no-op) → +// khi đó dùng nút Copy dán vào File Explorer (máy đã map ổ mạng là mở ngay). function PathWithCopy({ path }: { path: string }) { const [copied, setCopied] = useState(false) const copy = async () => { @@ -1472,9 +1482,15 @@ function PathWithCopy({ path }: { path: string }) { } return (
- + {path} - +