import React, { useState } from 'react';
import { Head, router } from '@inertiajs/react';
import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout';
import { PageProps } from '@/types/global';
import { Card, CardContent, CardHeader, CardTitle } from '@/Components/ui/card';
import { Button } from '@/Components/ui/button';
import { Input } from '@/Components/ui/input';
import { Label } from '@/Components/ui/label';
import { TrendingUp, Search, RotateCcw } from 'lucide-react';
import { RadioGroup, RadioGroupItem } from '@/Components/ui/radio-group';
import { cn } from '@/lib/utils';
import TreeView, { TraceabilityNode } from './Components/TreeView';
import { TraceabilitySummary } from './Components/TraceabilitySummary';
import { Can } from '@/Components/Permission/Can';
interface Props extends PageProps {
search: {
batch_number: string | null;
direction: 'backward' | 'forward';
};
result: TraceabilityNode | null;
}
export default function TraceabilityIndex({ search, result }: Props) {
const [batchNumber, setBatchNumber] = useState(search.batch_number || '');
const [direction, setDirection] = useState<'backward' | 'forward'>(search.direction || 'backward');
const [isSearching, setIsSearching] = useState(false);
const handleSearch = (e: React.FormEvent) => {
e.preventDefault();
if (!batchNumber.trim()) return;
setIsSearching(true);
router.get(
route('inventory.traceability.index'),
{ batch_number: batchNumber.trim(), direction },
{
preserveState: true,
preserveScroll: true,
onFinish: () => setIsSearching(false)
}
);
};
return (
透過批號追蹤產品的生產履歷,支援從成品追溯原料供應商(逆向),或從原料追查銷售去向(順向)。
請確認您輸入的批號「{search.batch_number}」是否正確存在於系統中。