import React from "react"; import AuthenticatedLayout from "@/Layouts/AuthenticatedLayout"; import { Head, useForm } from "@inertiajs/react"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/Components/ui/card"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/Components/ui/tabs"; import { Input } from "@/Components/ui/input"; import { Label } from "@/Components/ui/label"; import { Button } from "@/Components/ui/button"; import { Coins, Package, RefreshCcw, Monitor, Save, Settings } from "lucide-react"; import { toast } from "sonner"; interface Setting { key: string; value: string; description: string; } interface PageProps { settings: Record; } export default function SettingIndex({ settings }: PageProps) { const { data, setData, post, processing } = useForm({ settings: Object.values(settings).flat().map(s => ({ key: s.key, value: s.value })) }); const handleValueChange = (key: string, value: string) => { const newSettings = data.settings.map(s => s.key === key ? { ...s, value } : s ); setData('settings', newSettings); }; const submit = (e: React.FormEvent) => { e.preventDefault(); post(route('settings.update'), { onSuccess: () => toast.success("系統設定已更新"), }); }; const renderSettingRow = (setting: Setting) => { const currentVal = data.settings.find(s => s.key === setting.key)?.value || ''; return (

{setting.key}

handleValueChange(setting.key, e.target.value)} className="max-w-xs" />
); }; return (

系統設定

管理全系統的預設值與業務規則。

財務設定 庫存管理 周轉率分析 顯示設定 財務設定 管理應付帳款與稅務相關的預設規則。 {settings.finance?.map(renderSettingRow)} 庫存管理 管理商品效期、預警等庫存核心設定。 {settings.inventory?.map(renderSettingRow)} 周轉率分析 調整商品周轉率計算與滯銷判定的天數標準。 {settings.turnover?.map(renderSettingRow)} 顯示設定 設定全系統清單頁面的顯示偏好。 {settings.display?.map(renderSettingRow)}
); }