重构路由
This commit is contained in:
72
src/router/index.js
Normal file
72
src/router/index.js
Normal file
@@ -0,0 +1,72 @@
|
||||
import {createRouter, createWebHistory} from 'vue-router';
|
||||
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 PigFarmManagementView from '../views/pms/PigFarmManagementView.vue';
|
||||
import PigBatchManagementView from '../views/pms/PigBatchManagementView.vue';
|
||||
import DeviceCommandLogView from '../views/monitor/DeviceCommandLogView.vue';
|
||||
import FeedUsageRecordsView from '../views/monitor/FeedUsageRecordsView.vue';
|
||||
import MedicationLogsView from '../views/monitor/MedicationLogsView.vue';
|
||||
import NotificationLogView from '../views/monitor/NotificationLogView.vue';
|
||||
import PendingCollectionsView from '../views/monitor/PendingCollectionsView.vue';
|
||||
import PigBatchLogsView from '../views/monitor/PigBatchLogsView.vue';
|
||||
import PigPurchasesView from '../views/monitor/PigPurchasesView.vue';
|
||||
import PigSalesView from '../views/monitor/PigSalesView.vue';
|
||||
import PigSickLogsView from '../views/monitor/PigSickLogsView.vue';
|
||||
import PigTransferLogsView from '../views/monitor/PigTransferLogsView.vue';
|
||||
import PlanExecutionLogsView from '../views/monitor/PlanExecutionLogsView.vue';
|
||||
import RawMaterialPurchasesView from '../views/monitor/RawMaterialPurchasesView.vue';
|
||||
import RawMaterialStockLogsView from '../views/monitor/RawMaterialStockLogsView.vue';
|
||||
import SensorDataView from '../views/monitor/SensorDataView.vue';
|
||||
import TaskExecutionLogsView from '../views/monitor/TaskExecutionLogsView.vue';
|
||||
import UserActionLogsView from '../views/monitor/UserActionLogsView.vue';
|
||||
import WeighingBatchesView from '../views/monitor/WeighingBatchesView.vue';
|
||||
import WeighingRecordsView from '../views/monitor/WeighingRecordsView.vue';
|
||||
|
||||
const routes = [
|
||||
{path: '/', component: Home, meta: {requiresAuth: true, title: '系统首页'}},
|
||||
{path: '/devices', component: DeviceList, meta: {requiresAuth: true, title: '设备管理'}},
|
||||
{path: '/device-templates', component: DeviceTemplateList, meta: {requiresAuth: true, title: '设备模板管理'}},
|
||||
{path: '/plans', component: PlanList, meta: {requiresAuth: true, title: '计划管理'}},
|
||||
{path: '/login', component: LoginForm},
|
||||
{path: '/pms/farm-management', name: 'PigFarmManagement', component: PigFarmManagementView, meta: { requiresAuth: true, title: '栏舍管理' }},
|
||||
{path: '/pms/batch-management', name: 'PigBatchManagement', component: PigBatchManagementView, meta: { requiresAuth: true, title: '猪群管理' }},
|
||||
{path: '/monitor/device-command-logs', component: DeviceCommandLogView, meta: {requiresAuth: true, title: '设备命令日志'}},
|
||||
{path: '/monitor/feed-usage-records', component: FeedUsageRecordsView, meta: {requiresAuth: true, title: '饲料使用记录'}},
|
||||
{path: '/monitor/medication-logs', component: MedicationLogsView, meta: {requiresAuth: true, title: '用药记录'}},
|
||||
{path: '/monitor/notifications', component: NotificationLogView, meta: {requiresAuth: true, title: '通知记录'}},
|
||||
{path: '/monitor/pending-collections', component: PendingCollectionsView, meta: {requiresAuth: true, title: '待采集请求'}},
|
||||
{path: '/monitor/pig-batch-logs', component: PigBatchLogsView, meta: {requiresAuth: true, title: '猪批次日志'}},
|
||||
{path: '/monitor/pig-purchases', component: PigPurchasesView, meta: {requiresAuth: true, title: '猪只采购记录'}},
|
||||
{path: '/monitor/pig-sales', component: PigSalesView, meta: {requiresAuth: true, title: '猪只售卖记录'}},
|
||||
{path: '/monitor/pig-sick-logs', component: PigSickLogsView, meta: {requiresAuth: true, title: '病猪日志'}},
|
||||
{path: '/monitor/pig-transfer-logs', component: PigTransferLogsView, meta: {requiresAuth: true, title: '猪只迁移日志'}},
|
||||
{path: '/monitor/plan-execution-logs', component: PlanExecutionLogsView, meta: {requiresAuth: true, title: '计划执行日志'}},
|
||||
{path: '/monitor/raw-material-purchases', component: RawMaterialPurchasesView, meta: {requiresAuth: true, title: '原料采购记录'}},
|
||||
{path: '/monitor/raw-material-stock-logs', component: RawMaterialStockLogsView, meta: {requiresAuth: true, title: '原料库存日志'}},
|
||||
{path: '/monitor/sensor-data', component: SensorDataView, meta: {requiresAuth: true, title: '传感器数据'}},
|
||||
{path: '/monitor/task-execution-logs', component: TaskExecutionLogsView, meta: {requiresAuth: true, title: '任务执行日志'}},
|
||||
{path: '/monitor/user-action-logs', component: UserActionLogsView, meta: {requiresAuth: true, title: '用户操作日志'}},
|
||||
{path: '/monitor/weighing-batches', component: WeighingBatchesView, meta: {requiresAuth: true, title: '批次称重记录'}},
|
||||
{path: '/monitor/weighing-records', component: WeighingRecordsView, meta: {requiresAuth: true, title: '单次称重记录'}},
|
||||
];
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory(),
|
||||
routes
|
||||
});
|
||||
|
||||
router.beforeEach((to, from, next) => {
|
||||
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();
|
||||
}
|
||||
});
|
||||
|
||||
export default router;
|
||||
Reference in New Issue
Block a user