| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550 |
- <!DOCTYPE html>
- <html lang="zh-CN">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>爱智农 - 智慧农业平台</title>
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css">
- <link rel="stylesheet" href="https://at.alicdn.com/t/font_3114978_qe0b39no76.css">
- <link rel="stylesheet" href="assets/css/global.css">
- <style>
- :root {
- --primary-color: #4CAF50;
- --primary-dark: #388E3C;
- --primary-light: #C8E6C9;
- --accent-color: #8BC34A;
- --text-color: #333;
- --sidebar-width: 240px;
- --sidebar-collapsed-width: 64px;
- --header-height: 60px;
- }
-
- body {
- font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
- color: var(--text-color);
- background-color: #f5f7f9;
- margin: 0;
- padding: 0;
- height: 100vh;
- overflow: hidden;
- }
-
- .app-header {
- height: var(--header-height);
- background: linear-gradient(90deg, var(--primary-color), var(--primary-dark));
- color: white;
- box-shadow: 0 2px 4px rgba(0,0,0,0.1);
- z-index: 100;
- }
-
- .sidebar {
- width: var(--sidebar-width);
- background-color: white;
- box-shadow: 2px 0 5px rgba(0,0,0,0.05);
- transition: all 0.3s;
- height: calc(100vh - var(--header-height));
- overflow-y: auto;
- z-index: 99;
- position: fixed;
- top: var(--header-height);
- }
-
- .sidebar.collapsed {
- width: var(--sidebar-collapsed-width);
- }
-
- .sidebar-item {
- padding: 12px 16px;
- cursor: pointer;
- transition: all 0.2s;
- border-left: 3px solid transparent;
- display: flex;
- align-items: center;
- }
-
- .sidebar-item:hover {
- background-color: #f0f7f0;
- }
-
- .sidebar-item.active {
- background-color: #e8f5e9;
- border-left: 3px solid var(--primary-color);
- color: var(--primary-color);
- }
-
- .sidebar-item i {
- margin-right: 12px;
- font-size: 18px;
- }
-
- .sidebar.collapsed .sidebar-item span,
- .sidebar.collapsed .sidebar-submenu {
- display: none;
- }
-
- .sidebar.collapsed .sidebar-item {
- text-align: center;
- justify-content: center;
- }
-
- .sidebar.collapsed .sidebar-item i {
- margin-right: 0;
- }
-
- .sidebar-submenu {
- padding-left: 24px;
- max-height: 0;
- overflow: hidden;
- transition: max-height 0.3s ease;
- }
-
- .sidebar-submenu.open {
- max-height: 1000px;
- }
-
- .content-wrapper {
- margin-left: var(--sidebar-width);
- transition: all 0.3s;
- height: calc(100vh - var(--header-height));
- position: relative;
- overflow: hidden;
- width: calc(100% - var(--sidebar-width));
- }
-
- .sidebar.collapsed + .content-wrapper {
- margin-left: var(--sidebar-collapsed-width);
- }
-
- .content-frame {
- width: 100%;
- height: 100%;
- border: none;
- background-color: #fff;
- overflow: auto;
- display: block;
- }
-
- .toggle-sidebar {
- cursor: pointer;
- font-size: 20px;
- padding: 0 16px;
- }
-
- .user-info {
- cursor: pointer;
- }
-
- .dropdown-menu {
- display: none;
- position: absolute;
- right: 0;
- top: 100%;
- background: white;
- box-shadow: 0 2px 10px rgba(0,0,0,0.1);
- border-radius: 4px;
- width: 160px;
- z-index: 101;
- }
-
- .dropdown-menu.show {
- display: block;
- }
-
- .dropdown-item {
- padding: 10px 16px;
- cursor: pointer;
- }
-
- .dropdown-item:hover {
- background-color: #f0f7f0;
- }
-
- @media (max-width: 768px) {
- .sidebar {
- width: var(--sidebar-collapsed-width);
- transform: translateX(-100%);
- position: fixed;
- z-index: 1000;
- }
-
- .sidebar.collapsed {
- transform: translateX(0);
- }
-
- .content-wrapper {
- margin-left: 0;
- width: 100%;
- }
-
- .sidebar.collapsed + .content-wrapper {
- margin-left: var(--sidebar-collapsed-width);
- width: calc(100% - var(--sidebar-collapsed-width));
- }
-
- .app-header {
- padding-left: 0;
- }
- }
- </style>
- </head>
- <body>
- <!-- 顶部导航栏 -->
- <header class="app-header fixed w-full top-0 flex items-center justify-between px-4">
- <div class="flex items-center">
- <div class="toggle-sidebar flex items-center justify-center mr-2">
- <i class="iconfont icon-menu"></i>
- </div>
- <div class="flex items-center">
- <img src="assets/images/logo.png" alt="爱智农" class="h-8 mr-2" onerror="this.src='data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 width=%2240%22 height=%2240%22><rect width=%2240%22 height=%2240%22 fill=%22%234CAF50%22 /><text x=%2220%22 y=%2225%22 font-size=%2220%22 text-anchor=%22middle%22 fill=%22white%22>爱</text></svg>'">
- <h1 class="text-xl font-bold">爱智农智慧农业平台</h1>
- </div>
- </div>
-
- <div class="flex items-center">
- <div class="mr-4">
- <i class="iconfont icon-notification text-xl"></i>
- </div>
- <div class="user-info relative flex items-center">
- <div class="w-8 h-8 rounded-full bg-white flex items-center justify-center mr-2">
- <i class="iconfont icon-user text-green-600"></i>
- </div>
- <span>管理员</span>
- <i class="iconfont icon-down ml-1"></i>
-
- <div class="dropdown-menu">
- <div class="dropdown-item flex items-center">
- <i class="iconfont icon-user mr-2"></i>
- <span>个人中心</span>
- </div>
- <div class="dropdown-item flex items-center">
- <i class="iconfont icon-setting mr-2"></i>
- <span>系统设置</span>
- </div>
- <div class="dropdown-item flex items-center" id="logout">
- <i class="iconfont icon-logout mr-2"></i>
- <span>退出登录</span>
- </div>
- </div>
- </div>
- </div>
- </header>
- <!-- 左侧菜单栏和主内容区域 -->
- <div class="flex pt-[60px] w-full">
- <aside class="sidebar fixed left-0">
- <div class="sidebar-menu">
- <div class="sidebar-item" data-page="dashboard">
- <i class="iconfont icon-dashboard"></i>
- <span>首页</span>
- </div>
-
- <div class="sidebar-item has-submenu">
- <i class="iconfont icon-setting"></i>
- <span>系统管理</span>
- <i class="iconfont icon-arrow-down ml-auto"></i>
- </div>
- <div class="sidebar-submenu">
- <div class="sidebar-item" data-page="user-management">
- <i class="iconfont icon-user"></i>
- <span>用户管理</span>
- </div>
- <div class="sidebar-item" data-page="role-management">
- <i class="iconfont icon-team"></i>
- <span>角色管理</span>
- </div>
- <div class="sidebar-item" data-page="permission-management">
- <i class="iconfont icon-lock"></i>
- <span>权限管理</span>
- </div>
- <div class="sidebar-item" data-page="org-management">
- <i class="iconfont icon-apartment"></i>
- <span>组织机构管理</span>
- </div>
- <div class="sidebar-item" data-page="login-log">
- <i class="iconfont icon-file"></i>
- <span>登录日志</span>
- </div>
- <div class="sidebar-item" data-page="operation-log">
- <i class="iconfont icon-file-text"></i>
- <span>操作日志</span>
- </div>
- <div class="sidebar-item" data-page="dict-management">
- <i class="iconfont icon-book"></i>
- <span>字典管理</span>
- </div>
- <div class="sidebar-item" data-page="menu-management">
- <i class="iconfont icon-menu"></i>
- <span>菜单管理</span>
- </div>
- <div class="sidebar-item" data-page="task-management">
- <i class="iconfont icon-schedule"></i>
- <span>定时任务管理</span>
- </div>
- </div>
-
- <div class="sidebar-item has-submenu">
- <i class="iconfont icon-appstore"></i>
- <span>地块与农场管理</span>
- <i class="iconfont icon-arrow-down ml-auto"></i>
- </div>
- <div class="sidebar-submenu">
- <div class="sidebar-item" data-page="field-management">
- <i class="iconfont icon-database"></i>
- <span>地块管理</span>
- </div>
- </div>
-
- <div class="sidebar-item" data-page="visualization-dashboard">
- <i class="iconfont icon-dashboard"></i>
- <span>可视化统计大屏</span>
- </div>
-
- <div class="sidebar-item has-submenu">
- <i class="iconfont icon-car"></i>
- <span>农机设备管理</span>
- <i class="iconfont icon-arrow-down ml-auto"></i>
- </div>
- <div class="sidebar-submenu">
- <div class="sidebar-item" data-page="machine-management">
- <i class="iconfont icon-car"></i>
- <span>农机管理列表</span>
- </div>
- <div class="sidebar-item" data-page="machine-monitor">
- <i class="iconfont icon-eye"></i>
- <span>农机实时监控</span>
- </div>
- <div class="sidebar-item" data-page="machine-alarm">
- <i class="iconfont icon-warning"></i>
- <span>农机故障告警</span>
- </div>
- <div class="sidebar-item" data-page="machine-record">
- <i class="iconfont icon-file-text"></i>
- <span>农机作业记录</span>
- </div>
- <div class="sidebar-item" data-page="machine-maintenance">
- <i class="iconfont icon-tool"></i>
- <span>农机保养管理</span>
- </div>
- <div class="sidebar-item" data-page="machine-statistics">
- <i class="iconfont icon-bar-chart"></i>
- <span>农机使用统计</span>
- </div>
- </div>
-
- <div class="sidebar-item has-submenu">
- <i class="iconfont icon-video-camera"></i>
- <span>设备监控管理</span>
- <i class="iconfont icon-arrow-down ml-auto"></i>
- </div>
- <div class="sidebar-submenu">
- <div class="sidebar-item" data-page="device-management">
- <i class="iconfont icon-database"></i>
- <span>设备管理列表</span>
- </div>
- <div class="sidebar-item" data-page="device-monitor">
- <i class="iconfont icon-eye"></i>
- <span>设备监控实时展示</span>
- </div>
- <div class="sidebar-item" data-page="device-alarm">
- <i class="iconfont icon-warning"></i>
- <span>设备告警信息</span>
- </div>
- </div>
-
- <div class="sidebar-item has-submenu">
- <i class="iconfont icon-calendar"></i>
- <span>智慧农作管理</span>
- <i class="iconfont icon-arrow-down ml-auto"></i>
- </div>
- <div class="sidebar-submenu">
- <div class="sidebar-item" data-page="task-list">
- <i class="iconfont icon-ordered-list"></i>
- <span>作业任务列表</span>
- </div>
- <div class="sidebar-item" data-page="farm-plan">
- <i class="iconfont icon-schedule"></i>
- <span>农事计划制定</span>
- </div>
- <div class="sidebar-item" data-page="task-track">
- <i class="iconfont icon-environment"></i>
- <span>作业轨迹地图</span>
- </div>
- </div>
-
- <div class="sidebar-item has-submenu">
- <i class="iconfont icon-cluster"></i>
- <span>作物生命周期</span>
- <i class="iconfont icon-arrow-down ml-auto"></i>
- </div>
- <div class="sidebar-submenu">
- <div class="sidebar-item" data-page="crop-profile">
- <i class="iconfont icon-profile"></i>
- <span>作物档案</span>
- </div>
- <div class="sidebar-item" data-page="crop-trace">
- <i class="iconfont icon-qrcode"></i>
- <span>溯源信息展示</span>
- </div>
- </div>
-
- <div class="sidebar-item has-submenu">
- <i class="iconfont icon-experiment"></i>
- <span>AI模型与智能分析</span>
- <i class="iconfont icon-arrow-down ml-auto"></i>
- </div>
- <div class="sidebar-submenu">
- <div class="sidebar-item" data-page="model-list">
- <i class="iconfont icon-appstore"></i>
- <span>模型列表</span>
- </div>
- <div class="sidebar-item" data-page="data-analysis">
- <i class="iconfont icon-bar-chart"></i>
- <span>数据分析图表</span>
- </div>
- <div class="sidebar-item" data-page="model-visualization">
- <i class="iconfont icon-fund"></i>
- <span>模型结果可视化</span>
- </div>
- </div>
-
- <div class="sidebar-item has-submenu">
- <i class="iconfont icon-medicine-box"></i>
- <span>农作处方管理</span>
- <i class="iconfont icon-arrow-down ml-auto"></i>
- </div>
- <div class="sidebar-submenu">
- <div class="sidebar-item" data-page="prescription-list">
- <i class="iconfont icon-ordered-list"></i>
- <span>农作处方列表</span>
- </div>
- <div class="sidebar-item" data-page="prescription-detail">
- <i class="iconfont icon-file-text"></i>
- <span>处方详情展示</span>
- </div>
- </div>
-
- <div class="sidebar-item has-submenu">
- <i class="iconfont icon-file-pdf"></i>
- <span>报表与档案管理</span>
- <i class="iconfont icon-arrow-down ml-auto"></i>
- </div>
- <div class="sidebar-submenu">
- <div class="sidebar-item" data-page="report-download">
- <i class="iconfont icon-download"></i>
- <span>报表下载</span>
- </div>
- <div class="sidebar-item" data-page="farm-archive">
- <i class="iconfont icon-folder"></i>
- <span>农事档案</span>
- </div>
- <div class="sidebar-item" data-page="device-archive">
- <i class="iconfont icon-folder-open"></i>
- <span>设备档案</span>
- </div>
- <div class="sidebar-item" data-page="statistics-summary">
- <i class="iconfont icon-file-excel"></i>
- <span>统计类汇总</span>
- </div>
- </div>
-
- <div class="sidebar-item has-submenu">
- <i class="iconfont icon-customer-service"></i>
- <span>对外服务</span>
- <i class="iconfont icon-arrow-down ml-auto"></i>
- </div>
- <div class="sidebar-submenu">
- <div class="sidebar-item" data-page="tech-promotion">
- <i class="iconfont icon-bulb"></i>
- <span>农技推广中心</span>
- </div>
- <div class="sidebar-item" data-page="policy-info">
- <i class="iconfont icon-file-text"></i>
- <span>政策信息汇总</span>
- </div>
- </div>
- </div>
- </aside>
- <!-- 主内容区域 -->
- <main class="content-wrapper">
- <iframe id="contentFrame" class="content-frame" src="pages/dashboard.html" frameborder="0"></iframe>
- </main>
- </div>
- <script>
- document.addEventListener('DOMContentLoaded', function() {
- // 侧边栏折叠功能
- const toggleBtn = document.querySelector('.toggle-sidebar');
- const sidebar = document.querySelector('.sidebar');
- const contentWrapper = document.querySelector('.content-wrapper');
-
- toggleBtn.addEventListener('click', function() {
- sidebar.classList.toggle('collapsed');
- if (sidebar.classList.contains('collapsed')) {
- contentWrapper.style.width = `calc(100% - var(--sidebar-collapsed-width))`;
- contentWrapper.style.marginLeft = `var(--sidebar-collapsed-width)`;
- } else {
- contentWrapper.style.width = `calc(100% - var(--sidebar-width))`;
- contentWrapper.style.marginLeft = `var(--sidebar-width)`;
- }
- });
-
- // 用户下拉菜单
- const userInfo = document.querySelector('.user-info');
- const dropdownMenu = document.querySelector('.dropdown-menu');
-
- userInfo.addEventListener('click', function(e) {
- e.stopPropagation();
- dropdownMenu.classList.toggle('show');
- });
-
- document.addEventListener('click', function() {
- dropdownMenu.classList.remove('show');
- });
-
- // 子菜单展开/折叠
- const subMenuItems = document.querySelectorAll('.has-submenu');
-
- subMenuItems.forEach(item => {
- item.addEventListener('click', function() {
- const submenu = this.nextElementSibling;
- submenu.classList.toggle('open');
-
- // 切换箭头方向
- const arrow = this.querySelector('.icon-arrow-down');
- if (submenu.classList.contains('open')) {
- arrow.style.transform = 'rotate(180deg)';
- } else {
- arrow.style.transform = 'rotate(0)';
- }
- });
- });
-
- // 页面导航
- const menuItems = document.querySelectorAll('.sidebar-item[data-page]');
- const contentFrame = document.getElementById('contentFrame');
-
- menuItems.forEach(item => {
- item.addEventListener('click', function() {
- const page = this.getAttribute('data-page');
- contentFrame.src = `pages/${page}.html`;
-
- // 移除其他菜单项的活动状态
- menuItems.forEach(i => i.classList.remove('active'));
-
- // 添加当前菜单项的活动状态
- this.classList.add('active');
- });
- });
-
- // 登出功能
- document.getElementById('logout').addEventListener('click', function() {
- window.location.href = 'login.html';
- });
-
- // 默认选中首页
- document.querySelector('.sidebar-item[data-page="dashboard"]').classList.add('active');
- });
- </script>
- </body>
- </html>
|