@@ -481,6 +489,39 @@ export default { background-color: #f5f7fa; } +.nav { + background-color: #343a40; + padding: 0; + margin-bottom: 20px; +} + +.nav ul { + list-style-type: none; + margin: 0; + padding: 0; + display: flex; +} + +.nav li { + margin: 0; +} + +.nav a { + display: block; + padding: 15px 20px; + color: #fff; + text-decoration: none; + transition: background-color 0.3s; +} + +.nav a:hover { + background-color: #495057; +} + +.nav a.active { + background-color: #007bff; +} + .header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; diff --git a/frontend/src/pages/FeedPlan.vue b/frontend/src/pages/FeedPlan.vue new file mode 100644 index 0000000..917fe87 --- /dev/null +++ b/frontend/src/pages/FeedPlan.vue @@ -0,0 +1,402 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/router/index.js b/frontend/src/router/index.js index 288c1b2..2a43d84 100644 --- a/frontend/src/router/index.js +++ b/frontend/src/router/index.js @@ -2,6 +2,7 @@ import { createRouter, createWebHistory } from 'vue-router' import Login from '../pages/Login.vue' import Dashboard from '../pages/Dashboard.vue' import Device from '../pages/Device.vue' +import FeedPlan from '../pages/FeedPlan.vue' const routes = [ { @@ -20,6 +21,12 @@ const routes = [ name: 'Device', component: Device, meta: { requiresAuth: true } + }, + { + path: '/feed/plan', + name: 'FeedPlan', + component: FeedPlan, + meta: { requiresAuth: true } } ] diff --git a/internal/storage/db/postgres.go b/internal/storage/db/postgres.go index 9112640..6b34d24 100644 --- a/internal/storage/db/postgres.go +++ b/internal/storage/db/postgres.go @@ -19,6 +19,10 @@ var migrateModels = []interface{}{ &model.OperationHistory{}, &model.Device{}, &model.DeviceControl{}, + &model.FeedingPlan{}, + &model.FeedingPlanStep{}, + &model.FeedingExecution{}, + &model.FeedingExecutionStep{}, } // PostgresStorage 代表基于PostgreSQL的存储实现