From 828c3bbe3668460f9f1ce18bd0ee69c17cc1aa97 Mon Sep 17 00:00:00 2001 From: huang <1724659546@qq.com> Date: Wed, 22 Oct 2025 15:39:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=96=87=E4=BB=B6=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/PlanList.vue | 400 ----------------- src/main.js | 88 ++-- .../device}/DeviceList.vue | 4 +- .../device}/DeviceTemplateList.vue | 4 +- src/{components => views/home}/Home.vue | 0 src/{components => views/home}/LoginForm.vue | 2 +- src/views/plan/PlanList.vue | 425 ++++++++++++++++-- 7 files changed, 442 insertions(+), 481 deletions(-) delete mode 100644 src/components/PlanList.vue rename src/{components => views/device}/DeviceList.vue (98%) rename src/{components => views/device}/DeviceTemplateList.vue (97%) rename src/{components => views/home}/Home.vue (100%) rename src/{components => views/home}/LoginForm.vue (98%) diff --git a/src/components/PlanList.vue b/src/components/PlanList.vue deleted file mode 100644 index 8bfdd53d..00000000 --- a/src/components/PlanList.vue +++ /dev/null @@ -1,400 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/main.js b/src/main.js index 2103955d..3685ac93 100644 --- a/src/main.js +++ b/src/main.js @@ -1,15 +1,15 @@ -import { createApp } from 'vue'; -import { createRouter, createWebHistory } from 'vue-router'; +import {createApp} from 'vue'; +import {createRouter, createWebHistory} from 'vue-router'; import ElementPlus from 'element-plus'; import 'element-plus/dist/index.css'; import zhCn from 'element-plus/dist/locale/zh-cn.mjs'; // 导入 Element Plus 中文语言包 import App from './App.vue'; -import Home from './components/Home.vue'; -import DeviceList from './components/DeviceList.vue'; -import PlanList from './components/PlanList.vue'; -import LoginForm from './components/LoginForm.vue'; -import DeviceTemplateList from './components/DeviceTemplateList.vue'; +import Home from './views/home/Home.vue'; +import DeviceList from './views/device/DeviceList.vue'; +import PlanList from './views/plan/PlanList.vue'; +import LoginForm from './views/home/LoginForm.vue'; +import DeviceTemplateList from './views/device/DeviceTemplateList.vue'; // --- 统一导入所有监控视图 --- import DeviceCommandLogView from './views/monitor/DeviceCommandLogView.vue'; @@ -36,58 +36,58 @@ import './assets/styles/main.css'; // 配置路由 const routes = [ - { path: '/', component: Home, meta: { requiresAuth: true } }, - { path: '/devices', component: DeviceList, meta: { requiresAuth: true } }, - { path: '/device-templates', component: DeviceTemplateList, meta: { requiresAuth: true } }, - { path: '/plans', component: PlanList, meta: { requiresAuth: true } }, - { path: '/login', component: LoginForm }, + {path: '/', component: Home, meta: {requiresAuth: true}}, + {path: '/devices', component: DeviceList, meta: {requiresAuth: true}}, + {path: '/device-templates', component: DeviceTemplateList, meta: {requiresAuth: true}}, + {path: '/plans', component: PlanList, meta: {requiresAuth: true}}, + {path: '/login', component: LoginForm}, - // --- 统一注册所有监控路由 --- - { path: '/monitor/device-command-logs', component: DeviceCommandLogView, meta: { requiresAuth: true } }, - { path: '/monitor/feed-usage-records', component: FeedUsageRecordsView, meta: { requiresAuth: true } }, - { path: '/monitor/medication-logs', component: MedicationLogsView, meta: { requiresAuth: true } }, - { path: '/monitor/pending-collections', component: PendingCollectionsView, meta: { requiresAuth: true } }, - { path: '/monitor/pig-batch-logs', component: PigBatchLogsView, meta: { requiresAuth: true } }, - { path: '/monitor/pig-purchases', component: PigPurchasesView, meta: { requiresAuth: true } }, - { path: '/monitor/pig-sales', component: PigSalesView, meta: { requiresAuth: true } }, - { path: '/monitor/pig-sick-logs', component: PigSickLogsView, meta: { requiresAuth: true } }, - { path: '/monitor/pig-transfer-logs', component: PigTransferLogsView, meta: { requiresAuth: true } }, - { path: '/monitor/plan-execution-logs', component: PlanExecutionLogsView, meta: { requiresAuth: true } }, - { path: '/monitor/raw-material-purchases', component: RawMaterialPurchasesView, meta: { requiresAuth: true } }, - { path: '/monitor/raw-material-stock-logs', component: RawMaterialStockLogsView, meta: { requiresAuth: true } }, - { path: '/monitor/sensor-data', component: SensorDataView, meta: { requiresAuth: true } }, - { path: '/monitor/task-execution-logs', component: TaskExecutionLogsView, meta: { requiresAuth: true } }, - { path: '/monitor/user-action-logs', component: UserActionLogsView, meta: { requiresAuth: true } }, - { path: '/monitor/weighing-batches', component: WeighingBatchesView, meta: { requiresAuth: true } }, - { path: '/monitor/weighing-records', component: WeighingRecordsView, meta: { requiresAuth: true } }, - // --------------------------- + // --- 统一注册所有监控路由 --- + {path: '/monitor/device-command-logs', component: DeviceCommandLogView, meta: {requiresAuth: true}}, + {path: '/monitor/feed-usage-records', component: FeedUsageRecordsView, meta: {requiresAuth: true}}, + {path: '/monitor/medication-logs', component: MedicationLogsView, meta: {requiresAuth: true}}, + {path: '/monitor/pending-collections', component: PendingCollectionsView, meta: {requiresAuth: true}}, + {path: '/monitor/pig-batch-logs', component: PigBatchLogsView, meta: {requiresAuth: true}}, + {path: '/monitor/pig-purchases', component: PigPurchasesView, meta: {requiresAuth: true}}, + {path: '/monitor/pig-sales', component: PigSalesView, meta: {requiresAuth: true}}, + {path: '/monitor/pig-sick-logs', component: PigSickLogsView, meta: {requiresAuth: true}}, + {path: '/monitor/pig-transfer-logs', component: PigTransferLogsView, meta: {requiresAuth: true}}, + {path: '/monitor/plan-execution-logs', component: PlanExecutionLogsView, meta: {requiresAuth: true}}, + {path: '/monitor/raw-material-purchases', component: RawMaterialPurchasesView, meta: {requiresAuth: true}}, + {path: '/monitor/raw-material-stock-logs', component: RawMaterialStockLogsView, meta: {requiresAuth: true}}, + {path: '/monitor/sensor-data', component: SensorDataView, meta: {requiresAuth: true}}, + {path: '/monitor/task-execution-logs', component: TaskExecutionLogsView, meta: {requiresAuth: true}}, + {path: '/monitor/user-action-logs', component: UserActionLogsView, meta: {requiresAuth: true}}, + {path: '/monitor/weighing-batches', component: WeighingBatchesView, meta: {requiresAuth: true}}, + {path: '/monitor/weighing-records', component: WeighingRecordsView, meta: {requiresAuth: true}}, + // --------------------------- ]; const router = createRouter({ - history: createWebHistory(), - routes + history: createWebHistory(), + routes }); // 全局路由守卫 router.beforeEach((to, from, next) => { - const loggedIn = localStorage.getItem('jwt_token'); + const loggedIn = localStorage.getItem('jwt_token'); - if (to.matched.some(record => record.meta.requiresAuth) && !loggedIn) { - // 如果路由需要认证但用户未登录,则重定向到登录页 - next('/login'); - } else if (to.path === '/login' && loggedIn) { - // 如果用户已登录但试图访问登录页,则重定向到首页 - next('/'); - } else { - next(); // 正常放行 - } + if (to.matched.some(record => record.meta.requiresAuth) && !loggedIn) { + // 如果路由需要认证但用户未登录,则重定向到登录页 + next('/login'); + } else if (to.path === '/login' && loggedIn) { + // 如果用户已登录但试图访问登录页,则重定向到首页 + next('/'); + } else { + next(); // 正常放行 + } }); // 创建Vue应用实例 const app = createApp(App); // 全局配置 Element Plus 为中文 -app.use(ElementPlus, { locale: zhCn }); +app.use(ElementPlus, {locale: zhCn}); // 使用路由 app.use(router); diff --git a/src/components/DeviceList.vue b/src/views/device/DeviceList.vue similarity index 98% rename from src/components/DeviceList.vue rename to src/views/device/DeviceList.vue index f1431eca..2bed3a32 100644 --- a/src/components/DeviceList.vue +++ b/src/views/device/DeviceList.vue @@ -81,8 +81,8 @@ + \ No newline at end of file