生产管理系统前端 - 地块信息管理系统、智能农机管理系统页面空壳子提交
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
# <!-- Powered by BMAD™ Core -->
|
# <!-- Powered by BMAD™ Core -->
|
||||||
template:
|
template:
|
||||||
id: competitor-analysis-template-v2
|
id: competitor-analysis-template-v2
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function ClassificationPage() {
|
||||||
|
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> /agricultural-machinery/archive/classification
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { FileText } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function AgriculturalMachineryEntryPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<FileText className="w-6 h-6 text-blue-600" />
|
||||||
|
<h2 className="text-xl font-semibold">农机录入维护</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
农机设备信息录入、编辑和维护管理界面。支持农机基本信息、技术参数、购置信息等全面管理。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/archive/entry
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong> 农机设备信息录入、档案编辑、状态更新、设备台账管理
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -1,94 +0,0 @@
|
|||||||
import { Metadata } from 'next'
|
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
|
||||||
title: '农机档案录入与维护 - Crop-X 智慧农业管理系统',
|
|
||||||
description: '农机设备信息管理',
|
|
||||||
}
|
|
||||||
|
|
||||||
export default function MachineryEntryPage() {
|
|
||||||
return (
|
|
||||||
<div className="space-y-6">
|
|
||||||
<div className="bg-white rounded-lg shadow p-6">
|
|
||||||
<h2 className="text-2xl font-bold text-gray-800 mb-6">
|
|
||||||
📋 农机档案录入与维护
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
|
|
||||||
<div className="bg-green-50 rounded-lg p-6">
|
|
||||||
<h3 className="text-lg font-semibold text-green-900 mb-4">
|
|
||||||
添加新农机
|
|
||||||
</h3>
|
|
||||||
<form className="space-y-4">
|
|
||||||
<div>
|
|
||||||
<label className="block text-sm font-medium text-gray-700 mb-2">
|
|
||||||
农机编号
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-green-500"
|
|
||||||
placeholder="请输入农机编号"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<label className="block text-sm font-medium text-gray-700 mb-2">
|
|
||||||
农机类型
|
|
||||||
</label>
|
|
||||||
<select className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-green-500">
|
|
||||||
<option>拖拉机</option>
|
|
||||||
<option>收割机</option>
|
|
||||||
<option>播种机</option>
|
|
||||||
<option>喷洒机</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<label className="block text-sm font-medium text-gray-700 mb-2">
|
|
||||||
购买日期
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
type="date"
|
|
||||||
className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-green-500"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<button
|
|
||||||
type="submit"
|
|
||||||
className="w-full px-4 py-2 bg-green-600 text-white rounded-md hover:bg-green-700 transition-colors"
|
|
||||||
>
|
|
||||||
添加农机
|
|
||||||
</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="bg-blue-50 rounded-lg p-6">
|
|
||||||
<h3 className="text-lg font-semibold text-blue-900 mb-4">
|
|
||||||
农机列表
|
|
||||||
</h3>
|
|
||||||
<div className="space-y-3">
|
|
||||||
{[
|
|
||||||
{ id: 'NJ001', type: '拖拉机', status: '运行中', date: '2023-01-15' },
|
|
||||||
{ id: 'NJ002', type: '收割机', status: '空闲中', date: '2023-03-20' },
|
|
||||||
{ id: 'NJ003', type: '播种机', status: '维护中', date: '2023-02-10' },
|
|
||||||
].map((machine) => (
|
|
||||||
<div key={machine.id} className="bg-white rounded-lg p-4 shadow-sm">
|
|
||||||
<div className="flex justify-between items-start">
|
|
||||||
<div>
|
|
||||||
<h4 className="font-semibold text-gray-800">{machine.id}</h4>
|
|
||||||
<p className="text-sm text-gray-600">{machine.type}</p>
|
|
||||||
<p className="text-xs text-gray-500">购买日期: {machine.date}</p>
|
|
||||||
</div>
|
|
||||||
<span className={`px-2 py-1 text-xs font-medium rounded-full ${
|
|
||||||
machine.status === '运行中' ? 'bg-green-100 text-green-800' :
|
|
||||||
machine.status === '空闲中' ? 'bg-gray-100 text-gray-800' :
|
|
||||||
'bg-yellow-100 text-yellow-800'
|
|
||||||
}`}>
|
|
||||||
{machine.status}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
@@ -1,71 +1,30 @@
|
|||||||
import { Metadata } from 'next'
|
'use client';
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
import { Card } from '@/components/ui/card';
|
||||||
title: '农机档案管理 - Crop-X 智慧农业管理系统',
|
import { Package } from 'lucide-react';
|
||||||
description: '农机设备档案信息管理',
|
|
||||||
}
|
|
||||||
|
|
||||||
export default function MachineryArchivePage() {
|
export default function ArchivePage() {
|
||||||
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-2xl font-bold text-gray-800 mb-6">
|
<div className="flex items-center gap-3 mb-4">
|
||||||
📋 农机档案管理
|
<Package className="w-6 h-6 text-blue-600" />
|
||||||
</h2>
|
<h2 className="text-xl font-semibold">农机档案</h2>
|
||||||
|
</div>
|
||||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-6">
|
<div className="space-y-3">
|
||||||
<div className="bg-green-50 rounded-lg p-6 hover:bg-green-100 transition-colors cursor-pointer">
|
<p className="text-muted-foreground">
|
||||||
<h3 className="font-semibold text-green-900 mb-2">
|
农机档案管理模块用于管理农业机械的基础信息和档案资料。
|
||||||
📝 农机档案录入与维护
|
</p>
|
||||||
</h3>
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
<p className="text-green-700 text-sm">
|
<p className="text-sm">
|
||||||
管理农机设备的基本信息档案
|
<strong>页面路径:</strong> /agricultural-machinery/archive
|
||||||
</p>
|
</p>
|
||||||
</div>
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong>农机信息录入、分类管理、二维码生成等
|
||||||
<div className="bg-blue-50 rounded-lg p-6 hover:bg-blue-100 transition-colors cursor-pointer">
|
|
||||||
<h3 className="font-semibold text-blue-900 mb-2">
|
|
||||||
🏷️ 农机分类与标签管理
|
|
||||||
</h3>
|
|
||||||
<p className="text-blue-700 text-sm">
|
|
||||||
农机设备分类和标签体系管理
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="bg-purple-50 rounded-lg p-6 hover:bg-purple-100 transition-colors cursor-pointer">
|
|
||||||
<h3 className="font-semibold text-purple-900 mb-2">
|
|
||||||
📱 农机二维码管理
|
|
||||||
</h3>
|
|
||||||
<p className="text-purple-700 text-sm">
|
|
||||||
农机设备二维码生成和管理
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</Card>
|
||||||
<div className="mt-6 bg-gray-50 rounded-lg p-6">
|
|
||||||
<h3 className="text-lg font-semibold text-gray-800 mb-4">
|
|
||||||
📊 档案统计概览
|
|
||||||
</h3>
|
|
||||||
<div className="grid grid-cols-1 md:grid-cols-4 gap-4">
|
|
||||||
<div className="bg-white rounded-lg p-4 text-center">
|
|
||||||
<div className="text-2xl font-bold text-green-600 mb-2">156</div>
|
|
||||||
<div className="text-sm text-gray-600">农机总数</div>
|
|
||||||
</div>
|
|
||||||
<div className="bg-white rounded-lg p-4 text-center">
|
|
||||||
<div className="text-2xl font-bold text-blue-600 mb-2">12</div>
|
|
||||||
<div className="text-sm text-gray-600">设备分类</div>
|
|
||||||
</div>
|
|
||||||
<div className="bg-white rounded-lg p-4 text-center">
|
|
||||||
<div className="text-2xl font-bold text-purple-600 mb-2">89</div>
|
|
||||||
<div className="text-sm text-gray-600">已生成二维码</div>
|
|
||||||
</div>
|
|
||||||
<div className="bg-white rounded-lg p-4 text-center">
|
|
||||||
<div className="text-2xl font-bold text-orange-600 mb-2">95%</div>
|
|
||||||
<div className="text-sm text-gray-600">档案完整率</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { QrCode } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function AgriculturalMachineryQrCodePage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<QrCode className="w-6 h-6 text-purple-600" />
|
||||||
|
<h2 className="text-xl font-semibold">农机二维码管理</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
农机设备二维码生成和管理平台。支持设备身份识别、信息追溯、移动端扫描查询等功能。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/archive/qrcode
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong> 二维码生成、批量打印、扫描验证、设备信息追溯
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function AnalysisPage() {
|
||||||
|
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> /agricultural-machinery/data-analysis/analysis
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function ComparisonPage() {
|
||||||
|
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> /agricultural-machinery/data-analysis/comparison
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { PieChart } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function DataAnalysisPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<PieChart className="w-6 h-6 text-cyan-600" />
|
||||||
|
<h2 className="text-xl font-semibold">数据管理与分析报告</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
数据管理与分析报告模块用于农机作业数据的分析、统计和报告生成。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/data-analysis
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong>作业数据分析、历史数据对比、报告生成等
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { User } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function DriverInfoManagementPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<User className="w-6 h-6 text-orange-600" />
|
||||||
|
<h2 className="text-xl font-semibold">驾驶员信息管理</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
农机驾驶员档案信息管理系统。包括驾驶员基本信息、资质证书、培训记录、考核情况等。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/driver-archive/info
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong> 驾驶员档案管理、资质认证、培训记录、证书到期提醒
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { User } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function DriverArchivePage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<User className="w-6 h-6 text-green-600" />
|
||||||
|
<h2 className="text-xl font-semibold">驾驶员档案</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
驾驶员档案管理模块用于管理农机驾驶员的基本信息、资质认证和工作记录。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/driver-archive
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong>驾驶员信息管理、资质审核、任务分配等
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { Calendar } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function DriverTaskManagementPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<Calendar className="w-6 h-6 text-indigo-600" />
|
||||||
|
<h2 className="text-xl font-semibold">驾驶员任务管理</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
驾驶员作业任务分配和执行管理系统。支持任务派发、进度跟踪、绩效评估等功能。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/driver-archive/task
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong> 任务分配、作业安排、进度监控、绩效考核、工时统计
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function AlertRulesPage() {
|
||||||
|
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> /agricultural-machinery/fault-diagnosis/alert-rules
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function HealthPage() {
|
||||||
|
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> /agricultural-machinery/fault-diagnosis/health
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { Zap } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function FaultDiagnosisPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<Zap className="w-6 h-6 text-red-600" />
|
||||||
|
<h2 className="text-xl font-semibold">远程诊断与故障预警</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
远程诊断与故障预警模块用于农机设备的健康监测、故障预警和远程诊断。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/fault-diagnosis
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong>故障预警规则、预警管理、设备健康监控等
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function ParameterPage() {
|
||||||
|
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> /agricultural-machinery/fault-diagnosis/parameter
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function WarningPage() {
|
||||||
|
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> /agricultural-machinery/fault-diagnosis/warning
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { Cog } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function LoadDeviceManagementPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<Cog className="w-6 h-6 text-red-600" />
|
||||||
|
<h2 className="text-xl font-semibold">负载设备管理</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
农机负载设备的日常管理和维护系统。支持设备状态监控、维护计划、备件管理等。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/load-management/device
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong> 设备台账、维护管理、故障记录、备件库存、状态监控
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { Database } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function LoadDeviceLibraryPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<Database className="w-6 h-6 text-emerald-600" />
|
||||||
|
<h2 className="text-xl font-semibold">负载设备库</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
农机负载设备信息库管理系统。建立完整的负载设备档案,支持设备查询和对比分析。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/load-management/library
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong> 设备信息库、技术规格、性能参数、设备选型推荐
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { Settings } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function LoadManagementPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<Settings className="w-6 h-6 text-orange-600" />
|
||||||
|
<h2 className="text-xl font-semibold">农机负载管理</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
农机负载管理模块用于管理农机设备的负载配置、参数设置和设备库管理。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/load-management
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong>负载类型管理、参数配置、设备库管理等
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { Settings } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function LoadParameterManagementPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<Settings className="w-6 h-6 text-amber-600" />
|
||||||
|
<h2 className="text-xl font-semibold">负载参数管理</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
农机负载设备参数配置和优化管理。支持作业参数调整、性能优化、标准配置等。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/load-management/parameter
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong> 参数配置、性能调优、作业标准设置、参数模板管理
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { Package } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function LoadTypeManagementPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<Package className="w-6 h-6 text-cyan-600" />
|
||||||
|
<h2 className="text-xl font-semibold">负载类型管理</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
农机负载设备类型分类和管理系统。支持播种、施肥、收割等各类作业负载的类型定义。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/load-management/type
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong> 负载类型定义、作业分类、设备规格配置、类型参数设置
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { MapPin } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function RealTimeLocationMonitoringPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<MapPin className="w-6 h-6 text-blue-600" />
|
||||||
|
<h2 className="text-xl font-semibold">实时定位监控</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
农机设备实时GPS定位和轨迹监控系统。提供地图可视化、位置追踪、历史轨迹回放等功能。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/monitoring/location
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong> GPS定位、地图显示、实时轨迹、位置历史、电子围栏
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { BarChart3 } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function OperationDataMonitoringPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<BarChart3 className="w-6 h-6 text-orange-600" />
|
||||||
|
<h2 className="text-xl font-semibold">作业数据监控</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
农机作业数据采集和分析监控。实时收集作业数据,监控作业质量和效率指标。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/monitoring/operation
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong> 数据采集、作业监控、质量分析、效率统计、报表生成
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { Navigation } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function MonitoringPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<Navigation className="w-6 h-6 text-purple-600" />
|
||||||
|
<h2 className="text-xl font-semibold">设备实时监控与定位</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
设备实时监控与定位模块用于实时监控农机设备的位置、状态和作业数据。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/monitoring
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong>实时定位监控、作业状态监控、数据监控等
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -1,93 +0,0 @@
|
|||||||
import { Metadata } from 'next'
|
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
|
||||||
title: '实时位置追踪 - Crop-X 智慧农业管理系统',
|
|
||||||
description: '农机设备定位监控',
|
|
||||||
}
|
|
||||||
|
|
||||||
export default function RealTimeLocationTrackingPage() {
|
|
||||||
return (
|
|
||||||
<div className="space-y-6">
|
|
||||||
<div className="bg-white rounded-lg shadow p-6">
|
|
||||||
<h2 className="text-2xl font-bold text-gray-800 mb-6">
|
|
||||||
📍 实时位置追踪
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<div className="grid grid-cols-1 lg:grid-cols-3 gap-6">
|
|
||||||
<div className="lg:col-span-2">
|
|
||||||
<div className="bg-gray-100 rounded-lg h-96 flex items-center justify-center">
|
|
||||||
<div className="text-center">
|
|
||||||
<div className="text-6xl mb-4">🗺️</div>
|
|
||||||
<h3 className="text-lg font-semibold text-gray-700 mb-2">
|
|
||||||
地图视图
|
|
||||||
</h3>
|
|
||||||
<p className="text-gray-600">
|
|
||||||
实时显示所有农机的地理位置
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="space-y-4">
|
|
||||||
<div className="bg-green-50 rounded-lg p-4">
|
|
||||||
<h3 className="font-semibold text-green-900 mb-3">
|
|
||||||
在线农机
|
|
||||||
</h3>
|
|
||||||
<div className="space-y-2">
|
|
||||||
{[
|
|
||||||
{ id: 'NJ001', name: '拖拉机-001', location: '东区农田', status: '工作中' },
|
|
||||||
{ id: 'NJ002', name: '收割机-002', location: '西区农田', status: '工作中' },
|
|
||||||
{ id: 'NJ003', name: '播种机-003', location: '南区农田', status: '空闲' },
|
|
||||||
].map((machine) => (
|
|
||||||
<div key={machine.id} className="bg-white rounded-lg p-3 shadow-sm">
|
|
||||||
<div className="flex items-center justify-between">
|
|
||||||
<div>
|
|
||||||
<h4 className="font-medium text-gray-800">{machine.name}</h4>
|
|
||||||
<p className="text-sm text-gray-600">{machine.location}</p>
|
|
||||||
</div>
|
|
||||||
<div className={`w-2 h-2 rounded-full ${
|
|
||||||
machine.status === '工作中' ? 'bg-green-500' : 'bg-gray-400'
|
|
||||||
}`} />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="bg-blue-50 rounded-lg p-4">
|
|
||||||
<h3 className="font-semibold text-blue-900 mb-3">
|
|
||||||
统计信息
|
|
||||||
</h3>
|
|
||||||
<div className="space-y-2">
|
|
||||||
<div className="flex justify-between">
|
|
||||||
<span className="text-gray-600">总农机数</span>
|
|
||||||
<span className="font-semibold">12 台</span>
|
|
||||||
</div>
|
|
||||||
<div className="flex justify-between">
|
|
||||||
<span className="text-gray-600">在线</span>
|
|
||||||
<span className="font-semibold text-green-600">10 台</span>
|
|
||||||
</div>
|
|
||||||
<div className="flex justify-between">
|
|
||||||
<span className="text-gray-600">离线</span>
|
|
||||||
<span className="font-semibold text-gray-600">2 台</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="mt-6 grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
||||||
<button className="px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 transition-colors">
|
|
||||||
🔄 刷新位置
|
|
||||||
</button>
|
|
||||||
<button className="px-4 py-2 bg-green-600 text-white rounded-md hover:bg-green-700 transition-colors">
|
|
||||||
📍 定位特定农机
|
|
||||||
</button>
|
|
||||||
<button className="px-4 py-2 bg-purple-600 text-white rounded-md hover:bg-purple-700 transition-colors">
|
|
||||||
📊 历史轨迹
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { Activity } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function WorkStatusMonitoringPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<Activity className="w-6 h-6 text-green-600" />
|
||||||
|
<h2 className="text-xl font-semibold">作业状态监控</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
农机设备作业状态实时监控系统。跟踪设备运行状态、作业进度、工作效率等关键指标。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/monitoring/status
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong> 状态监控、作业跟踪、效率分析、异常报警、状态统计
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function CockpitPage() {
|
||||||
|
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> /agricultural-machinery/precision-operation/cockpit
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function DispatchPage() {
|
||||||
|
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> /agricultural-machinery/precision-operation/dispatch
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { Target } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function PrecisionOperationPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<Target className="w-6 h-6 text-indigo-600" />
|
||||||
|
<h2 className="text-xl font-semibold">精准作业管理与支持</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
精准作业管理与支持模块用于管理农机的精准作业、路径规划和作业调度。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/precision-operation
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong>作业记录管理、路径规划、作业调度、作业驾驶舱等
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function RecordPage() {
|
||||||
|
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> /agricultural-machinery/precision-operation/record
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function RoutePage() {
|
||||||
|
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> /agricultural-machinery/precision-operation/route
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function AssignmentPage() {
|
||||||
|
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> /agricultural-machinery/scheduling/assignment
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function DispatchPage() {
|
||||||
|
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> /agricultural-machinery/scheduling/dispatch
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { Calendar } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function SchedulingPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<Calendar className="w-6 h-6 text-amber-600" />
|
||||||
|
<h2 className="text-xl font-semibold">农机管理与调度</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
农机管理与调度模块用于农机的任务分配、实时调度和轨迹回放管理。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/scheduling
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong>任务分配管理、实时调度管理、轨迹回放等
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function PlaybackPage() {
|
||||||
|
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> /agricultural-machinery/scheduling/playback
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -1,150 +0,0 @@
|
|||||||
import { Metadata } from 'next'
|
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
|
||||||
title: '任务分配 - Crop-X 智慧农业管理系统',
|
|
||||||
description: '农机作业任务分配',
|
|
||||||
}
|
|
||||||
|
|
||||||
export default function TaskAssignmentPage() {
|
|
||||||
return (
|
|
||||||
<div className="space-y-6">
|
|
||||||
<div className="bg-white rounded-lg shadow p-6">
|
|
||||||
<h2 className="text-2xl font-bold text-gray-800 mb-6">
|
|
||||||
📅 任务分配
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
|
|
||||||
<div className="bg-blue-50 rounded-lg p-6">
|
|
||||||
<h3 className="text-lg font-semibold text-blue-900 mb-4">
|
|
||||||
创建新任务
|
|
||||||
</h3>
|
|
||||||
<form className="space-y-4">
|
|
||||||
<div>
|
|
||||||
<label className="block text-sm font-medium text-gray-700 mb-2">
|
|
||||||
任务名称
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
|
|
||||||
placeholder="请输入任务名称"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<label className="block text-sm font-medium text-gray-700 mb-2">
|
|
||||||
选择农机
|
|
||||||
</label>
|
|
||||||
<select className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500">
|
|
||||||
<option>拖拉机-001</option>
|
|
||||||
<option>收割机-002</option>
|
|
||||||
<option>播种机-003</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<label className="block text-sm font-medium text-gray-700 mb-2">
|
|
||||||
选择驾驶员
|
|
||||||
</label>
|
|
||||||
<select className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500">
|
|
||||||
<option>张师傅</option>
|
|
||||||
<option>李师傅</option>
|
|
||||||
<option>王师傅</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<label className="block text-sm font-medium text-gray-700 mb-2">
|
|
||||||
作业地块
|
|
||||||
</label>
|
|
||||||
<select className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500">
|
|
||||||
<option>东区农田-01</option>
|
|
||||||
<option>西区农田-02</option>
|
|
||||||
<option>南区农田-03</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div className="grid grid-cols-2 gap-4">
|
|
||||||
<div>
|
|
||||||
<label className="block text-sm font-medium text-gray-700 mb-2">
|
|
||||||
开始时间
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
type="datetime-local"
|
|
||||||
className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<label className="block text-sm font-medium text-gray-700 mb-2">
|
|
||||||
预计结束时间
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
type="datetime-local"
|
|
||||||
className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<button
|
|
||||||
type="submit"
|
|
||||||
className="w-full px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 transition-colors"
|
|
||||||
>
|
|
||||||
创建任务
|
|
||||||
</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="bg-green-50 rounded-lg p-6">
|
|
||||||
<h3 className="text-lg font-semibold text-green-900 mb-4">
|
|
||||||
待分配任务列表
|
|
||||||
</h3>
|
|
||||||
<div className="space-y-3">
|
|
||||||
{[
|
|
||||||
{ id: 'T001', name: '东区收割作业', priority: '高', deadline: '2024-10-25' },
|
|
||||||
{ id: 'T002', name: '南区犁地作业', priority: '中', deadline: '2024-10-26' },
|
|
||||||
{ id: 'T003', name: '北区播种作业', priority: '低', deadline: '2024-10-27' },
|
|
||||||
].map((task) => (
|
|
||||||
<div key={task.id} className="bg-white rounded-lg p-4 shadow-sm">
|
|
||||||
<div className="flex justify-between items-start">
|
|
||||||
<div>
|
|
||||||
<h4 className="font-semibold text-gray-800">{task.name}</h4>
|
|
||||||
<p className="text-sm text-gray-600">任务编号: {task.id}</p>
|
|
||||||
<p className="text-sm text-gray-600">截止日期: {task.deadline}</p>
|
|
||||||
</div>
|
|
||||||
<div className="text-right">
|
|
||||||
<span className={`inline-block px-2 py-1 text-xs font-medium rounded-full mb-2 ${
|
|
||||||
task.priority === '高' ? 'bg-red-100 text-red-800' :
|
|
||||||
task.priority === '中' ? 'bg-yellow-100 text-yellow-800' :
|
|
||||||
'bg-green-100 text-green-800'
|
|
||||||
}`}>
|
|
||||||
{task.priority}优先级
|
|
||||||
</span>
|
|
||||||
<br />
|
|
||||||
<button className="text-blue-600 hover:text-blue-800 text-sm">
|
|
||||||
分配任务
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="mt-6 bg-yellow-50 rounded-lg p-6">
|
|
||||||
<h3 className="text-lg font-semibold text-yellow-900 mb-4">
|
|
||||||
当前任务状态
|
|
||||||
</h3>
|
|
||||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
||||||
<div className="bg-white rounded-lg p-4 text-center">
|
|
||||||
<div className="text-2xl font-bold text-blue-600 mb-2">8</div>
|
|
||||||
<div className="text-sm text-gray-600">待分配任务</div>
|
|
||||||
</div>
|
|
||||||
<div className="bg-white rounded-lg p-4 text-center">
|
|
||||||
<div className="text-2xl font-bold text-green-600 mb-2">15</div>
|
|
||||||
<div className="text-sm text-gray-600">进行中任务</div>
|
|
||||||
</div>
|
|
||||||
<div className="bg-white rounded-lg p-4 text-center">
|
|
||||||
<div className="text-2xl font-bold text-purple-600 mb-2">23</div>
|
|
||||||
<div className="text-sm text-gray-600">已完成任务</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function FencePage() {
|
||||||
|
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> /agricultural-machinery/security/fence
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
import { Shield } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function SecurityPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<div className="flex items-center gap-3 mb-4">
|
||||||
|
<Shield className="w-6 h-6 text-emerald-600" />
|
||||||
|
<h2 className="text-xl font-semibold">安全与安防</h2>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-3">
|
||||||
|
<p className="text-muted-foreground">
|
||||||
|
安全与安防模块用于农机的安全管理、地理围栏和安全防护。
|
||||||
|
</p>
|
||||||
|
<div className="p-3 bg-muted rounded-lg">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /agricultural-machinery/security
|
||||||
|
</p>
|
||||||
|
<p className="text-sm mt-1">
|
||||||
|
<strong>主要功能:</strong>地理围栏管理、安全监控、防护设置等
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function LayerSamplingPage() {
|
||||||
|
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> /land-information/analysis/layer-sampling
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
18
crop-x/src/app/(app)/land-information/analysis/page.tsx
Normal file
18
crop-x/src/app/(app)/land-information/analysis/page.tsx
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function AnalysisPage() {
|
||||||
|
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> /land-information/analysis
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function SoilDataPage() {
|
||||||
|
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> /land-information/analysis/soil-data
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function SoilQualityPage() {
|
||||||
|
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> /land-information/analysis/soil-quality
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function ClassificationPage() {
|
||||||
|
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> /land-information/archive/classification
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
18
crop-x/src/app/(app)/land-information/archive/entry/page.tsx
Normal file
18
crop-x/src/app/(app)/land-information/archive/entry/page.tsx
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function EntryPage() {
|
||||||
|
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> /land-information/archive/entry
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
18
crop-x/src/app/(app)/land-information/archive/page.tsx
Normal file
18
crop-x/src/app/(app)/land-information/archive/page.tsx
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function ArchivePage() {
|
||||||
|
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> /land-information/archive
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function StatisticsPage() {
|
||||||
|
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> /land-information/archive/statistics
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function ChartPage() {
|
||||||
|
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> /land-information/comparison/chart
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function IndicatorPage() {
|
||||||
|
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> /land-information/comparison/indicator
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
18
crop-x/src/app/(app)/land-information/comparison/page.tsx
Normal file
18
crop-x/src/app/(app)/land-information/comparison/page.tsx
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function ComparisonPage() {
|
||||||
|
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> /land-information/comparison
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function ReportPage() {
|
||||||
|
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> /land-information/comparison/report
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
18
crop-x/src/app/(app)/land-information/map/draw/page.tsx
Normal file
18
crop-x/src/app/(app)/land-information/map/draw/page.tsx
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function DrawPage() {
|
||||||
|
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> /land-information/map/draw
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
18
crop-x/src/app/(app)/land-information/map/gis/page.tsx
Normal file
18
crop-x/src/app/(app)/land-information/map/gis/page.tsx
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function GisPage() {
|
||||||
|
return (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<Card className="p-6">
|
||||||
|
<h2 className="text-xl font-semibold">地块GIS地图</h2>
|
||||||
|
<div className="p-3 bg-muted rounded-lg mt-3">
|
||||||
|
<p className="text-sm">
|
||||||
|
<strong>页面路径:</strong> /land-information/map/gis
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
18
crop-x/src/app/(app)/land-information/map/page.tsx
Normal file
18
crop-x/src/app/(app)/land-information/map/page.tsx
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function MapPage() {
|
||||||
|
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> /land-information/map
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
18
crop-x/src/app/(app)/land-information/map/satellite/page.tsx
Normal file
18
crop-x/src/app/(app)/land-information/map/satellite/page.tsx
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function SatellitePage() {
|
||||||
|
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> /land-information/map/satellite
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function SpatialQueryPage() {
|
||||||
|
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> /land-information/map/spatial-query
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function EnvironmentPage() {
|
||||||
|
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> /land-information/monitoring/environment
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
18
crop-x/src/app/(app)/land-information/monitoring/page.tsx
Normal file
18
crop-x/src/app/(app)/land-information/monitoring/page.tsx
Normal 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> /land-information/monitoring
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function WeatherPage() {
|
||||||
|
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> /land-information/monitoring/weather
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
18
crop-x/src/app/(app)/land-information/risk/disposal/page.tsx
Normal file
18
crop-x/src/app/(app)/land-information/risk/disposal/page.tsx
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function DisposalPage() {
|
||||||
|
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> /land-information/risk/disposal
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function RiskMonitoringPage() {
|
||||||
|
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> /land-information/risk/monitoring
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
18
crop-x/src/app/(app)/land-information/risk/page.tsx
Normal file
18
crop-x/src/app/(app)/land-information/risk/page.tsx
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function RiskPage() {
|
||||||
|
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> /land-information/risk
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
18
crop-x/src/app/(app)/land-information/risk/push/page.tsx
Normal file
18
crop-x/src/app/(app)/land-information/risk/push/page.tsx
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function PushPage() {
|
||||||
|
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> /land-information/risk/push
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function BatchPage() {
|
||||||
|
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> /land-information/suitability/batch
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function ComprehensivePage() {
|
||||||
|
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> /land-information/suitability/comprehensive
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function CropPage() {
|
||||||
|
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> /land-information/suitability/crop
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
18
crop-x/src/app/(app)/land-information/suitability/page.tsx
Normal file
18
crop-x/src/app/(app)/land-information/suitability/page.tsx
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function SuitabilityPage() {
|
||||||
|
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> /land-information/suitability
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { Card } from '@/components/ui/card';
|
||||||
|
|
||||||
|
export default function WeightPage() {
|
||||||
|
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> /land-information/suitability/weight
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -1,8 +1,74 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
import {Navbar1} from "@/components/layouts/Navbar"
|
import {Navbar1} from "@/components/layouts/Navbar"
|
||||||
import {SideBarOld} from '@/components/layouts/SideBar/SideBarOld'
|
import {SideBarOld} from '@/components/layouts/SideBar/SideBarOld'
|
||||||
import '@/styles/globals.css'
|
import '@/styles/globals.css'
|
||||||
import { ThemeProvider } from 'next-themes'
|
import { ThemeProvider } from 'next-themes'
|
||||||
import { Building2, Users, Cog, Activity, Mail, UserCircle } from 'lucide-react'
|
import { usePathname } from 'next/navigation'
|
||||||
|
import { Building2, Users, Cog, Activity, Mail, UserCircle, Database, Map, BarChart3, Cloud, TrendingUp, GitCompare, AlertTriangle, FileText, MapPin, Settings, User, Package, Navigation, Zap, Target, PieChart, Calendar, Shield, Tractor, Clipboard, Brain, Droplets } from 'lucide-react'
|
||||||
|
|
||||||
|
const navbarData = {
|
||||||
|
logo: {
|
||||||
|
url: "/",
|
||||||
|
src: "https://deifkwefumgah.cloudfront.net/shadcnblocks/block/logos/shadcnblockscom-icon.svg",
|
||||||
|
alt: "Crop-X Logo",
|
||||||
|
title: "智慧农业生产管理系统",
|
||||||
|
},
|
||||||
|
menu: [
|
||||||
|
{
|
||||||
|
title: "智能农机管理系统",
|
||||||
|
url: "/agricultural-machinery",
|
||||||
|
description: "农机档案、实时监控、精准作业管理",
|
||||||
|
icon: <Tractor className="size-5 shrink-0" />,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "地块信息管理系统",
|
||||||
|
url: "/land-information",
|
||||||
|
description: "地块档案、地图管理、空间分析",
|
||||||
|
icon: <Map className="size-5 shrink-0" />,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "农事操作管理系统",
|
||||||
|
url: "/farming-operation",
|
||||||
|
description: "农事计划、任务管理、操作执行",
|
||||||
|
icon: <Clipboard className="size-5 shrink-0" />,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "农业资产管理系统",
|
||||||
|
url: "/agricultural-asset",
|
||||||
|
description: "基础信息、采购管理、库存管理",
|
||||||
|
icon: <Package className="size-5 shrink-0" />,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "AI作物模型精准决策系统",
|
||||||
|
url: "/ai-crop-model",
|
||||||
|
description: "数据感知、模型应用、智能决策",
|
||||||
|
icon: <Brain className="size-5 shrink-0" />,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "水肥一体化控制系统",
|
||||||
|
url: "/water-fertilizer-control",
|
||||||
|
description: "水肥机管理、智能灌溉、配方管理",
|
||||||
|
icon: <Droplets className="size-5 shrink-0" />,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "中心配置管理系统",
|
||||||
|
url: "/central-config",
|
||||||
|
description: "租户管理、用户管理、系统监控",
|
||||||
|
icon: <Settings className="size-5 shrink-0" />,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "API 测试示例",
|
||||||
|
url: "/api-example",
|
||||||
|
description: "测试和展示 OpenAPI 客户端调用",
|
||||||
|
icon: <Brain className="size-5 shrink-0" />,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
auth: {
|
||||||
|
login: { title: "登录", url: "/login" },
|
||||||
|
signup: { title: "注册", url: "/register" },
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
const centralConfigData = {
|
const centralConfigData = {
|
||||||
navMain: [
|
navMain: [
|
||||||
@@ -154,6 +220,407 @@ const centralConfigData = {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
// 地块信息管理
|
||||||
|
const fieldMessageManagement = {
|
||||||
|
navMain: [
|
||||||
|
{
|
||||||
|
title: "地块档案管理",
|
||||||
|
url: "/land-information/archive",
|
||||||
|
icon: <Database className="w-4 h-4" />,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: "地块录入维护",
|
||||||
|
url: "/land-information/archive/entry",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "地块分类管理",
|
||||||
|
url: "/land-information/archive/classification",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "地块统计分析",
|
||||||
|
url: "/land-information/archive/statistics",
|
||||||
|
isActive: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "地块数字化与地图管理",
|
||||||
|
url: "/land-information/map",
|
||||||
|
icon: <Map className="w-4 h-4" />,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: "地块GIS地图",
|
||||||
|
url: "/land-information/map/gis",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "地块绘制编辑",
|
||||||
|
url: "/land-information/map/draw",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "地块空间查询",
|
||||||
|
url: "/land-information/map/spatial-query",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "地块卫星影像",
|
||||||
|
url: "/land-information/map/satellite",
|
||||||
|
isActive: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "空间分析与决策支持",
|
||||||
|
url: "/land-information/analysis",
|
||||||
|
icon: <BarChart3 className="w-4 h-4" />,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: "土壤基础数据",
|
||||||
|
url: "/land-information/analysis/soil-data",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "分层采样分析",
|
||||||
|
url: "/land-information/analysis/layer-sampling",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "土壤质量评价",
|
||||||
|
url: "/land-information/analysis/soil-quality",
|
||||||
|
isActive: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "地块环境监测",
|
||||||
|
url: "/land-information/monitoring",
|
||||||
|
icon: <Cloud className="w-4 h-4" />,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: "气象监测",
|
||||||
|
url: "/land-information/monitoring/weather",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "环境监测",
|
||||||
|
url: "/land-information/monitoring/environment",
|
||||||
|
isActive: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "地块适宜性评价",
|
||||||
|
url: "/land-information/suitability",
|
||||||
|
icon: <TrendingUp className="w-4 h-4" />,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: "综合适宜性评价",
|
||||||
|
url: "/land-information/suitability/comprehensive",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "批量适宜性评价",
|
||||||
|
url: "/land-information/suitability/batch",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "作物适宜性评价",
|
||||||
|
url: "/land-information/suitability/crop",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "权重设置",
|
||||||
|
url: "/land-information/suitability/weight",
|
||||||
|
isActive: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "地块对比分析",
|
||||||
|
url: "/land-information/comparison",
|
||||||
|
icon: <GitCompare className="w-4 h-4" />,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: "指标对比",
|
||||||
|
url: "/land-information/comparison/indicator",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "图表对比",
|
||||||
|
url: "/land-information/comparison/chart",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "报告对比",
|
||||||
|
url: "/land-information/comparison/report",
|
||||||
|
isActive: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "地块风险预警",
|
||||||
|
url: "/land-information/risk",
|
||||||
|
icon: <AlertTriangle className="w-4 h-4" />,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: "风险监测",
|
||||||
|
url: "/land-information/risk/monitoring",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "风险推送",
|
||||||
|
url: "/land-information/risk/push",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "风险处置",
|
||||||
|
url: "/land-information/risk/disposal",
|
||||||
|
isActive: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 农机管理
|
||||||
|
const machineryManagement = {
|
||||||
|
navMain: [
|
||||||
|
{
|
||||||
|
title: "农机档案",
|
||||||
|
url: "/agricultural-machinery/archive",
|
||||||
|
icon: <Package className="w-4 h-4" />,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: "农机录入维护",
|
||||||
|
url: "/agricultural-machinery/archive/entry",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "农机分类管理",
|
||||||
|
url: "/agricultural-machinery/archive/classification",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "农机二维码管理",
|
||||||
|
url: "/agricultural-machinery/archive/qrcode",
|
||||||
|
isActive: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "驾驶员档案",
|
||||||
|
url: "/agricultural-machinery/driver-archive",
|
||||||
|
icon: <User className="w-4 h-4" />,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: "驾驶员信息管理",
|
||||||
|
url: "/agricultural-machinery/driver-archive/info",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "驾驶员任务管理",
|
||||||
|
url: "/agricultural-machinery/driver-archive/task",
|
||||||
|
isActive: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "农机负载管理",
|
||||||
|
url: "/agricultural-machinery/load-management",
|
||||||
|
icon: <Settings className="w-4 h-4" />,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: "负载类型管理",
|
||||||
|
url: "/agricultural-machinery/load-management/type",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "负载参数管理",
|
||||||
|
url: "/agricultural-machinery/load-management/parameter",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "负载设备库",
|
||||||
|
url: "/agricultural-machinery/load-management/library",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "负载设备管理",
|
||||||
|
url: "/agricultural-machinery/load-management/device",
|
||||||
|
isActive: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "设备实时监控与定位",
|
||||||
|
url: "/agricultural-machinery/monitoring",
|
||||||
|
icon: <Navigation className="w-4 h-4" />,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: "实时定位监控",
|
||||||
|
url: "/agricultural-machinery/monitoring/location",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "作业状态监控",
|
||||||
|
url: "/agricultural-machinery/monitoring/status",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "作业数据监控",
|
||||||
|
url: "/agricultural-machinery/monitoring/operation",
|
||||||
|
isActive: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "远程诊断与故障预警",
|
||||||
|
url: "/agricultural-machinery/fault-diagnosis",
|
||||||
|
icon: <Zap className="w-4 h-4" />,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: "故障预警规则",
|
||||||
|
url: "/agricultural-machinery/fault-diagnosis/alert-rules",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "故障预警管理",
|
||||||
|
url: "/agricultural-machinery/fault-diagnosis/warning",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "设备健康管理",
|
||||||
|
url: "/agricultural-machinery/fault-diagnosis/health",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "设备参数监控",
|
||||||
|
url: "/agricultural-machinery/fault-diagnosis/parameter",
|
||||||
|
isActive: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "精准作业管理与支持",
|
||||||
|
url: "/agricultural-machinery/precision-operation",
|
||||||
|
icon: <Target className="w-4 h-4" />,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: "作业记录管理",
|
||||||
|
url: "/agricultural-machinery/precision-operation/record",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "路径规划管理",
|
||||||
|
url: "/agricultural-machinery/precision-operation/route",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "作业计划调度",
|
||||||
|
url: "/agricultural-machinery/precision-operation/dispatch",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "作业驾驶舱",
|
||||||
|
url: "/agricultural-machinery/precision-operation/cockpit",
|
||||||
|
isActive: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "数据管理与分析报告",
|
||||||
|
url: "/agricultural-machinery/data-analysis",
|
||||||
|
icon: <PieChart className="w-4 h-4" />,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: "作业数据分析",
|
||||||
|
url: "/agricultural-machinery/data-analysis/analysis",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "历史数据对比",
|
||||||
|
url: "/agricultural-machinery/data-analysis/comparison",
|
||||||
|
isActive: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "农机管理与调度",
|
||||||
|
url: "/agricultural-machinery/scheduling",
|
||||||
|
icon: <Calendar className="w-4 h-4" />,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: "任务分配管理",
|
||||||
|
url: "/agricultural-machinery/scheduling/assignment",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "实时调度管理",
|
||||||
|
url: "/agricultural-machinery/scheduling/dispatch",
|
||||||
|
isActive: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "轨迹回放管理",
|
||||||
|
url: "/agricultural-machinery/scheduling/playback",
|
||||||
|
isActive: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "安全与安防",
|
||||||
|
url: "/agricultural-machinery/security",
|
||||||
|
icon: <Shield className="w-4 h-4" />,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: "地理围栏管理",
|
||||||
|
url: "/agricultural-machinery/security/fence",
|
||||||
|
isActive: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
function RootLayoutContent({
|
||||||
|
children,
|
||||||
|
}: {
|
||||||
|
children: React.ReactNode
|
||||||
|
}) {
|
||||||
|
const pathname = usePathname();
|
||||||
|
|
||||||
|
// 根据当前路径动态选择侧边栏数据
|
||||||
|
const getSidebarData = () => {
|
||||||
|
// 获取当前路径的一级路由
|
||||||
|
const firstLevelPath = '/' + pathname.split('/')[1];
|
||||||
|
|
||||||
|
switch (firstLevelPath) {
|
||||||
|
case '/agricultural-machinery':
|
||||||
|
return machineryManagement;
|
||||||
|
case '/land-information':
|
||||||
|
return fieldMessageManagement;
|
||||||
|
case '/central-config':
|
||||||
|
return centralConfigData;
|
||||||
|
default:
|
||||||
|
return machineryManagement; // 默认返回农机管理
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const sidebarData = getSidebarData();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="bodyFlexUpDown">
|
||||||
|
<Navbar1 navbarData={navbarData} />
|
||||||
|
<div className="bodySon2">
|
||||||
|
<SideBarOld data={sidebarData}>
|
||||||
|
{children}
|
||||||
|
</SideBarOld>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
children,
|
children,
|
||||||
@@ -169,14 +636,7 @@ export default function RootLayout({
|
|||||||
enableSystem
|
enableSystem
|
||||||
disableTransitionOnChange
|
disableTransitionOnChange
|
||||||
>
|
>
|
||||||
<div className="bodyFlexUpDown">
|
<RootLayoutContent>{children}</RootLayoutContent>
|
||||||
<Navbar1 />
|
|
||||||
<div className="bodySon2">
|
|
||||||
<SideBarOld data={centralConfigData}>
|
|
||||||
{children}
|
|
||||||
</SideBarOld>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -44,87 +44,27 @@ interface MenuItem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface Navbar1Props {
|
interface Navbar1Props {
|
||||||
logo?: {
|
navbarData: {
|
||||||
url: string;
|
logo: {
|
||||||
src: string;
|
|
||||||
alt: string;
|
|
||||||
title: string;
|
|
||||||
};
|
|
||||||
menu?: MenuItem[];
|
|
||||||
auth?: {
|
|
||||||
login: {
|
|
||||||
title: string;
|
|
||||||
url: string;
|
url: string;
|
||||||
|
src: string;
|
||||||
|
alt: string;
|
||||||
|
title: string;
|
||||||
};
|
};
|
||||||
signup: {
|
menu: MenuItem[];
|
||||||
title: string;
|
auth: {
|
||||||
url: string;
|
login: {
|
||||||
|
title: string;
|
||||||
|
url: string;
|
||||||
|
};
|
||||||
|
signup: {
|
||||||
|
title: string;
|
||||||
|
url: string;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
const navbarData = {
|
const Navbar1 = ({ navbarData }: Navbar1Props) => {
|
||||||
logo: {
|
|
||||||
url: "/",
|
|
||||||
src: "https://deifkwefumgah.cloudfront.net/shadcnblocks/block/logos/shadcnblockscom-icon.svg",
|
|
||||||
alt: "Crop-X Logo",
|
|
||||||
title: "智慧农业生产管理系统",
|
|
||||||
},
|
|
||||||
menu: [
|
|
||||||
{
|
|
||||||
title: "智能农机管理系统",
|
|
||||||
url: "/agricultural-machinery",
|
|
||||||
description: "农机档案、实时监控、精准作业管理",
|
|
||||||
icon: <Tractor className="size-5 shrink-0" />,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "地块信息管理系统",
|
|
||||||
url: "/land-information",
|
|
||||||
description: "地块档案、地图管理、空间分析",
|
|
||||||
icon: <Map className="size-5 shrink-0" />,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "农事操作管理系统",
|
|
||||||
url: "/farming-operation",
|
|
||||||
description: "农事计划、任务管理、操作执行",
|
|
||||||
icon: <Clipboard className="size-5 shrink-0" />,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "农业资产管理系统",
|
|
||||||
url: "/agricultural-asset",
|
|
||||||
description: "基础信息、采购管理、库存管理",
|
|
||||||
icon: <Package className="size-5 shrink-0" />,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "AI作物模型精准决策系统",
|
|
||||||
url: "/ai-crop-model",
|
|
||||||
description: "数据感知、模型应用、智能决策",
|
|
||||||
icon: <Brain className="size-5 shrink-0" />,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "水肥一体化控制系统",
|
|
||||||
url: "/water-fertilizer-control",
|
|
||||||
description: "水肥机管理、智能灌溉、配方管理",
|
|
||||||
icon: <Droplets className="size-5 shrink-0" />,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "中心配置管理系统",
|
|
||||||
url: "/central-config",
|
|
||||||
description: "租户管理、用户管理、系统监控",
|
|
||||||
icon: <Settings className="size-5 shrink-0" />,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "API 测试示例",
|
|
||||||
url: "/api-example",
|
|
||||||
description: "测试和展示 OpenAPI 客户端调用",
|
|
||||||
icon: <Brain className="size-5 shrink-0" />,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
auth: {
|
|
||||||
login: { title: "登录", url: "/login" },
|
|
||||||
signup: { title: "注册", url: "/register" },
|
|
||||||
},
|
|
||||||
};
|
|
||||||
const Navbar1 = () => {
|
|
||||||
const logo = navbarData.logo
|
const logo = navbarData.logo
|
||||||
const menu = navbarData.menu
|
const menu = navbarData.menu
|
||||||
const auth = navbarData.auth
|
const auth = navbarData.auth
|
||||||
|
|||||||
Reference in New Issue
Block a user