生产管理系统前端 - AI作物模型精准决策系统 框架搭建

This commit is contained in:
2025-10-28 19:46:50 +08:00
parent 7a0096caed
commit 58f5ca7f22
27 changed files with 609 additions and 151 deletions

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function DeviceControlPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/application/device-control
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function ExternalSystemPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/application/external-system
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function ApplicationPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/application
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function ExternalPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/data-center/external
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function IotPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold">IoT数据</h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/data-center/iot
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function DataCenterPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/data-center
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function FusionPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/decision/fusion
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function LogPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/decision/log
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function DecisionPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/decision
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function SimulationPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold">仿</h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/decision/simulation
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function KnowledgeGenerationPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/knowledge/generation
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function KnowledgePage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold">AI知识库</h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/knowledge
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function GenerationPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/model-application/generation
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function ModelApplicationPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/model-application
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function SchedulingPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/model-application/scheduling
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function AccessPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/model-integration/access
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function ManagementPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/model-integration/management
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function ModelIntegrationPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/model-integration
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function AlertMonitoringPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/monitoring/alert
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function AuditMonitoringPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/monitoring/audit
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function ModelMonitoringPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/monitoring/model
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function MonitoringPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/monitoring
</p>
</div>
</Card>
</div>
);
}

View File

@@ -1,159 +1,18 @@
import Link from 'next/link' 'use client';
import { Metadata } from 'next'
export const metadata: Metadata = { import { Card } from '@/components/ui/card';
title: 'AI作物模型 - Crop-X 智慧农业管理系统',
description: 'AI作物模型精准决策系统主页面',
}
export default function AiCropModelPage() { export default function AiCropModelPage() {
return ( return (
<div className="space-y-6"> <div className="space-y-6">
<div className="bg-white rounded-lg shadow p-6"> <Card className="p-6">
<h2 className="text-xl font-semibold text-gray-800 mb-4"> <h2 className="text-xl font-semibold">AI作物模型精准决策系统</h2>
AI作物模型精准决策系统 <div className="p-3 bg-muted rounded-lg mt-3">
</h2> <p className="text-sm">
<p className="text-gray-600 mb-6"> <strong></strong> /ai-crop-model
AI知识库管理
</p> </p>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<Link
href="/ai-crop-model/data-perception-center"
className="block p-4 bg-green-50 rounded-lg hover:bg-green-100 transition-colors"
>
<h3 className="font-semibold text-green-900 mb-2">
📊
</h3>
<p className="text-green-700 text-sm">
</p>
</Link>
<Link
href="/ai-crop-model/model-integration-center"
className="block p-4 bg-blue-50 rounded-lg hover:bg-blue-100 transition-colors"
>
<h3 className="font-semibold text-blue-900 mb-2">
🔗
</h3>
<p className="text-blue-700 text-sm">
</p>
</Link>
<Link
href="/ai-crop-model/model-application-center"
className="block p-4 bg-purple-50 rounded-lg hover:bg-purple-100 transition-colors"
>
<h3 className="font-semibold text-purple-900 mb-2">
🎯
</h3>
<p className="text-purple-700 text-sm">
</p>
</Link>
<Link
href="/ai-crop-model/intelligent-decision-generation"
className="block p-4 bg-orange-50 rounded-lg hover:bg-orange-100 transition-colors"
>
<h3 className="font-semibold text-orange-900 mb-2">
🧠
</h3>
<p className="text-orange-700 text-sm">
</p>
</Link>
<Link
href="/ai-crop-model/intelligent-decision-support"
className="block p-4 bg-teal-50 rounded-lg hover:bg-teal-100 transition-colors"
>
<h3 className="font-semibold text-teal-900 mb-2">
💡
</h3>
<p className="text-teal-700 text-sm">
</p>
</Link>
<Link
href="/ai-crop-model/decision-application"
className="block p-4 bg-indigo-50 rounded-lg hover:bg-indigo-100 transition-colors"
>
<h3 className="font-semibold text-indigo-900 mb-2">
</h3>
<p className="text-indigo-700 text-sm">
</p>
</Link>
<Link
href="/ai-crop-model/ai-knowledge-base"
className="block p-4 bg-pink-50 rounded-lg hover:bg-pink-100 transition-colors"
>
<h3 className="font-semibold text-pink-900 mb-2">
📚 AI知识库
</h3>
<p className="text-pink-700 text-sm">
</p>
</Link>
<Link
href="/ai-crop-model/monitoring-center"
className="block p-4 bg-red-50 rounded-lg hover:bg-red-100 transition-colors"
>
<h3 className="font-semibold text-red-900 mb-2">
📈
</h3>
<p className="text-red-700 text-sm">
</p>
</Link>
</div> </div>
</Card>
</div> </div>
);
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
<div className="bg-white rounded-lg shadow p-6">
<h3 className="text-lg font-semibold text-gray-800 mb-4">
📊 AI模型状态
</h3>
<div className="space-y-2">
<div className="flex justify-between items-center">
<span className="text-gray-600"></span>
<span className="text-green-600 font-semibold">24 </span>
</div>
<div className="flex justify-between items-center">
<span className="text-gray-600"></span>
<span className="text-blue-600 font-semibold">156 </span>
</div>
<div className="flex justify-between items-center">
<span className="text-gray-600"></span>
<span className="text-purple-600 font-semibold">94.5%</span>
</div>
</div>
</div>
<div className="bg-white rounded-lg shadow p-6">
<h3 className="text-lg font-semibold text-gray-800 mb-4">
🔧
</h3>
<div className="space-y-2">
<button className="w-full px-4 py-2 bg-green-600 text-white rounded hover:bg-green-700 transition-colors">
</button>
<button className="w-full px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 transition-colors">
</button>
<button className="w-full px-4 py-2 bg-purple-600 text-white rounded hover:bg-purple-700 transition-colors">
</button>
</div>
</div>
</div>
</div>
)
} }

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function DashboardPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/support/dashboard
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function DetailPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/support/detail
</p>
</div>
</Card>
</div>
);
}

View File

@@ -0,0 +1,18 @@
'use client';
import { Card } from '@/components/ui/card';
export default function SupportPage() {
return (
<div className="space-y-6">
<Card className="p-6">
<h2 className="text-xl font-semibold"></h2>
<div className="p-3 bg-muted rounded-lg mt-3">
<p className="text-sm">
<strong></strong> /ai-crop-model/support
</p>
</div>
</Card>
</div>
);
}

View File

@@ -976,6 +976,153 @@ const agricultureAsset = {
] ]
} }
// AI作物模型精准决策系统
const aiCropModel = {
navMain: [
{
title: "全域数据感知中心",
url: "/ai-crop-model/data-center",
icon: <Cloud className="w-4 h-4" />,
items: [
{
title: "外部数据",
url: "/ai-crop-model/data-center/external",
isActive: false
},
{
title: "IoT数据",
url: "/ai-crop-model/data-center/iot",
isActive: false
}
]
},
{
title: "模型接入集成",
url: "/ai-crop-model/model-integration",
icon: <Zap className="w-4 h-4" />,
items: [
{
title: "模型接入",
url: "/ai-crop-model/model-integration/access",
isActive: false
},
{
title: "模型管理",
url: "/ai-crop-model/model-integration/management",
isActive: false
}
]
},
{
title: "模型应用中心",
url: "/ai-crop-model/model-application",
icon: <Target className="w-4 h-4" />,
items: [
{
title: "生成调度",
url: "/ai-crop-model/model-application/generation",
isActive: false
},
{
title: "应用调度",
url: "/ai-crop-model/model-application/scheduling",
isActive: false
}
]
},
{
title: "智能决策生成",
url: "/ai-crop-model/decision",
icon: <Brain className="w-4 h-4" />,
items: [
{
title: "融合决策",
url: "/ai-crop-model/decision/fusion",
isActive: false
},
{
title: "决策仿真",
url: "/ai-crop-model/decision/simulation",
isActive: false
},
{
title: "决策日志",
url: "/ai-crop-model/decision/log",
isActive: false
}
]
},
{
title: "智能决策支持",
url: "/ai-crop-model/support",
icon: <BarChart3 className="w-4 h-4" />,
items: [
{
title: "决策仪表盘",
url: "/ai-crop-model/support/dashboard",
isActive: false
},
{
title: "决策详情",
url: "/ai-crop-model/support/detail",
isActive: false
}
]
},
{
title: "决策应用",
url: "/ai-crop-model/application",
icon: <Settings className="w-4 h-4" />,
items: [
{
title: "设备控制",
url: "/ai-crop-model/application/device-control",
isActive: false
},
{
title: "外部系统",
url: "/ai-crop-model/application/external-system",
isActive: false
}
]
},
{
title: "AI知识库",
url: "/ai-crop-model/knowledge",
icon: <Book className="w-4 h-4" />,
items: [
{
title: "知识生成",
url: "/ai-crop-model/knowledge/generation",
isActive: false
}
]
},
{
title: "监控中心",
url: "/ai-crop-model/monitoring",
icon: <AlertTriangle className="w-4 h-4" />,
items: [
{
title: "模型监控",
url: "/ai-crop-model/monitoring/model",
isActive: false
},
{
title: "审计监控",
url: "/ai-crop-model/monitoring/audit",
isActive: false
},
{
title: "预警监控",
url: "/ai-crop-model/monitoring/alert",
isActive: false
}
]
}
]
}
function RootLayoutContent({ function RootLayoutContent({
children, children,
}: { }: {
@@ -997,6 +1144,8 @@ function RootLayoutContent({
return farmingOperation; return farmingOperation;
case '/agricultural-asset': case '/agricultural-asset':
return agricultureAsset; return agricultureAsset;
case '/ai-crop-model':
return aiCropModel;
case '/central-config': case '/central-config':
return centralConfigData; return centralConfigData;
default: default: