feat: 統一庫存管理分頁 UI 與寬度規範,並更新 SKILL 規範文件

This commit is contained in:
2026-02-03 17:24:34 +08:00
parent 15aaa039e4
commit bd999c7bb6
17 changed files with 357 additions and 205 deletions

View File

@@ -1,5 +1,6 @@
import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout';
import { Head, useForm, Link, router } from '@inertiajs/react'; // Added Link
import { Head, useForm, Link, router } from '@inertiajs/react';
import { usePermission } from '@/hooks/usePermission'; // Added Link
import {
Table,
TableBody,
@@ -61,7 +62,10 @@ export default function Show({ doc }: any) {
});
}
const { can } = usePermission();
const isCompleted = ['completed', 'adjusted'].includes(doc.status);
const canEdit = can('inventory_count.edit');
const isReadOnly = isCompleted || !canEdit;
// Calculate progress
const totalItems = doc.items.length;
@@ -155,7 +159,7 @@ export default function Show({ doc }: any) {
{!isCompleted && (
<div className="flex items-center gap-2">
<Can permission="inventory.view">
<Can permission="inventory_count.delete">
<AlertDialog>
<AlertDialogTrigger asChild>
<Button variant="outline" size="sm" disabled={processing} className="button-outlined-error">
@@ -176,7 +180,9 @@ export default function Show({ doc }: any) {
</AlertDialogFooter>
</AlertDialogContent>
</AlertDialog>
</Can>
<Can permission="inventory_count.edit">
<Button
variant="outline"
size="sm"
@@ -261,7 +267,7 @@ export default function Show({ doc }: any) {
<TableCell className="text-sm font-mono">{item.batch_number || '-'}</TableCell>
<TableCell className="text-right font-medium">{item.system_qty.toFixed(0)}</TableCell>
<TableCell className="text-right px-1 py-3">
{isCompleted ? (
{isReadOnly ? (
<span className="font-semibold mr-2">{item.counted_qty}</span>
) : (
<Input
@@ -290,7 +296,7 @@ export default function Show({ doc }: any) {
</TableCell>
<TableCell className="text-sm text-gray-500">{item.unit || item.unit_name}</TableCell>
<TableCell className="px-1">
{isCompleted ? (
{isReadOnly ? (
<span className="text-sm text-gray-600">{item.notes}</span>
) : (
<Input