生产管理系统前端 - 地块信息管理系统、智能农机管理系统页面空壳子提交
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
|
||||
# <!-- Powered by BMAD™ Core -->
|
||||
template:
|
||||
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 = {
|
||||
title: '农机档案管理 - Crop-X 智慧农业管理系统',
|
||||
description: '农机设备档案信息管理',
|
||||
}
|
||||
import { Card } from '@/components/ui/card';
|
||||
import { Package } from 'lucide-react';
|
||||
|
||||
export default function MachineryArchivePage() {
|
||||
export default function ArchivePage() {
|
||||
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 md:grid-cols-3 gap-6">
|
||||
<div className="bg-green-50 rounded-lg p-6 hover:bg-green-100 transition-colors cursor-pointer">
|
||||
<h3 className="font-semibold text-green-900 mb-2">
|
||||
📝 农机档案录入与维护
|
||||
</h3>
|
||||
<p className="text-green-700 text-sm">
|
||||
管理农机设备的基本信息档案
|
||||
</p>
|
||||
<Card className="p-6">
|
||||
<div className="flex items-center gap-3 mb-4">
|
||||
<Package className="w-6 h-6 text-blue-600" />
|
||||
<h2 className="text-xl font-semibold">农机档案</h2>
|
||||
</div>
|
||||
|
||||
<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">
|
||||
农机设备分类和标签体系管理
|
||||
<div className="space-y-3">
|
||||
<p className="text-muted-foreground">
|
||||
农机档案管理模块用于管理农业机械的基础信息和档案资料。
|
||||
</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">
|
||||
农机设备二维码生成和管理
|
||||
<div className="p-3 bg-muted rounded-lg">
|
||||
<p className="text-sm">
|
||||
<strong>页面路径:</strong> /agricultural-machinery/archive
|
||||
</p>
|
||||
<p className="text-sm mt-1">
|
||||
<strong>主要功能:</strong>农机信息录入、分类管理、二维码生成等
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
</Card>
|
||||
</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>
|
||||
)
|
||||
);
|
||||
}
|
||||
@@ -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 {SideBarOld} from '@/components/layouts/SideBar/SideBarOld'
|
||||
import '@/styles/globals.css'
|
||||
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 = {
|
||||
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({
|
||||
children,
|
||||
@@ -169,14 +636,7 @@ export default function RootLayout({
|
||||
enableSystem
|
||||
disableTransitionOnChange
|
||||
>
|
||||
<div className="bodyFlexUpDown">
|
||||
<Navbar1 />
|
||||
<div className="bodySon2">
|
||||
<SideBarOld data={centralConfigData}>
|
||||
{children}
|
||||
</SideBarOld>
|
||||
</div>
|
||||
</div>
|
||||
<RootLayoutContent>{children}</RootLayoutContent>
|
||||
</ThemeProvider>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -44,14 +44,15 @@ interface MenuItem {
|
||||
}
|
||||
|
||||
interface Navbar1Props {
|
||||
logo?: {
|
||||
navbarData: {
|
||||
logo: {
|
||||
url: string;
|
||||
src: string;
|
||||
alt: string;
|
||||
title: string;
|
||||
};
|
||||
menu?: MenuItem[];
|
||||
auth?: {
|
||||
menu: MenuItem[];
|
||||
auth: {
|
||||
login: {
|
||||
title: string;
|
||||
url: string;
|
||||
@@ -61,70 +62,9 @@ interface Navbar1Props {
|
||||
url: string;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
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 Navbar1 = () => {
|
||||
const Navbar1 = ({ navbarData }: Navbar1Props) => {
|
||||
const logo = navbarData.logo
|
||||
const menu = navbarData.menu
|
||||
const auth = navbarData.auth
|
||||
|
||||
Reference in New Issue
Block a user