生产管理系统 - 员工管理、企业信息联调完毕以及一些页面上的样式修改

This commit is contained in:
2025-11-05 17:18:25 +08:00
parent c10b507cf6
commit 1fb128ede5
16 changed files with 1266 additions and 207 deletions

View File

@@ -18,11 +18,12 @@ import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { ScrollArea } from '@/components/ui/scroll-area';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { Building2, Eye, Power, PowerOff, Search, FileText, CreditCard, User, RefreshCw, AlertCircle, ChevronLeft, ChevronRight } from 'lucide-react';
import { Building2, Eye, Power, PowerOff, Search, FileText, CreditCard, User, RefreshCw, AlertCircle, ChevronLeft, ChevronRight, Plus } from 'lucide-react';
import { toast } from 'sonner';
import { enterpriseReducer, initialState, EnterpriseState, EnterpriseAction } from './components/enterpriseReducer';
import { fetchTenants, transformTenantData, enableTenant, disableTenant, TenantsQueryParams, Enterprise } from './components/enterpriseApi';
import { fetchTenants, transformTenantData, enableTenant, disableTenant, createEnterprise, TenantsQueryParams, Enterprise } from './components/enterpriseApi';
import { CreateEnterpriseDialog } from './components/CreateEnterpriseDialog';
// Utility functions
const getStatusBadge = (status: 'active' | 'inactive') => {
@@ -152,6 +153,16 @@ export default function EnterpriseManagement() {
dispatch({ type: 'TOGGLE_STATUS_DIALOG', payload: true });
};
const handleCreateNew = () => {
dispatch({ type: 'RESET_FORM_DATA' });
dispatch({ type: 'TOGGLE_ADD_DIALOG', payload: true });
};
const handleCreateSuccess = () => {
// 创建成功后刷新数据
loadEnterprises(true);
};
const confirmStatusChange = async () => {
if (!state.selectedEnterprise) return;
@@ -226,6 +237,10 @@ export default function EnterpriseManagement() {
</div>
</div>
<div className="flex items-center gap-2">
<Button onClick={handleCreateNew} disabled={state.loading}>
<Plus className="w-4 h-4 mr-2" />
</Button>
<Button variant="outline" size="sm" onClick={handleRefresh} disabled={state.loading}>
<RefreshCw className={`w-4 h-4 mr-1 ${state.loading ? 'animate-spin' : ''}`} />
@@ -668,6 +683,13 @@ export default function EnterpriseManagement() {
</AlertDialogFooter>
</AlertDialogContent>
</AlertDialog>
{/* Create Enterprise Dialog */}
<CreateEnterpriseDialog
open={state.showAddDialog}
onOpenChange={(open) => dispatch({ type: 'TOGGLE_ADD_DIALOG', payload: open })}
onSuccess={handleCreateSuccess}
/>
</div>
);
}