You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

0 lines
6.3 KiB

1 month ago
  1. {"ast":null,"code":"import { computed } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { useStore } from 'vuex';\nimport { Document, Plus, List, User } from '@element-plus/icons-vue';\nimport { ElMessage } from 'element-plus';\nimport { logout } from '@/api/auth';\nexport default {\n __name: 'index',\n setup(__props, {\n expose: __expose\n }) {\n __expose();\n const route = useRoute();\n const router = useRouter();\n const store = useStore();\n const userInfo = computed(() => store.state.userInfo);\n const handleLogout = async () => {\n try {\n await logout();\n store.dispatch('logout');\n ElMessage.success('退出成功');\n router.push('/login');\n } catch (error) {\n console.error('退出失败:', error);\n store.dispatch('logout');\n router.push('/login');\n }\n };\n const __returned__ = {\n route,\n router,\n store,\n userInfo,\n handleLogout,\n computed,\n get useRoute() {\n return useRoute;\n },\n get useRouter() {\n return useRouter;\n },\n get useStore() {\n return useStore;\n },\n get Document() {\n return Document;\n },\n get Plus() {\n return Plus;\n },\n get List() {\n return List;\n },\n get User() {\n return User;\n },\n get ElMessage() {\n return ElMessage;\n },\n get logout() {\n return logout;\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n};","map":{"version":3,"names":["computed","useRoute","useRouter","useStore","Document","Plus","List","User","ElMessage","logout","route","router","store","userInfo","state","handleLogout","dispatch","success","push","error","console"],"sources":["D:/language/VScode/Front-end logistics/src/components/layout/index.vue"],"sourcesContent":["<template>\r\n <el-container class=\"layout-container\">\r\n <el-aside width=\"200px\">\r\n <div class=\"logo\">物流管理系统</div>\r\n <el-menu\r\n :router=\"true\"\r\n :default-active=\"route.path\"\r\n >\r\n <!-- 普通用户菜单 -->\r\n <el-menu-item \r\n v-if=\"userInfo.role === 'ROLE_USER'\"\r\n index=\"/orders/my\"\r\n >\r\n <el-icon><Document /></el-icon>\r\n <span>我的订单</span>\r\n </el-menu-item>\r\n \r\n <!-- 仓库管理员菜单 -->\r\n <template v-if=\"userInfo.role === 'ROLE_WAREHOUSE_ADMIN'\">\r\n <el-menu-item index=\"/orders/create\">\r\n <el-icon><Plus /></el-icon>\r\n <span>创建订单</span>\r\n </el-menu-item>\r\n <el-menu-item index=\"/orders/my\">\r\n <el-icon><Document /></el-icon>\r\n <span>订单列表</span>\r\n </el-menu-item>\r\n </template>\r\n\r\n <!-- 管理员和物流管理员菜单 -->\r\n <template v-if=\"['ROLE_ADMIN', 'ROLE_LOGISTICS_ADMIN'].includes(userInfo.role)\">\r\n <el-menu-item index=\"/admin/orders\">\r\n <el-icon><List /></el-icon>\r\n <span>订单管理</span>\r\n </el-menu-item>\r\n </template>\r\n\r\n <!-- 仅管理员菜单 -->\r\n <el-menu-item \r\n v-if=\"userInfo.role === 'ROLE_ADMIN'\"\r\n index=\"/admin/users\"\r\n >\r\n <el-icon><User /></el-icon>\r\n <span>用户管理</span>\r\n </el-menu-item>\r\n </el-menu>\r\n </el-aside>\r\n \r\n <el-container>\r\n <el-header>\r\n <div class=\"header-right\">\r\n <span>{{ userInfo.username }}</span>\r\n <el-button type=\"text\" @click=\"handleLogout\">退</el-button>\r\n </div>\r\n </el-header>\r\n \r\n <el-main>\r\n <router-view></router-view>\r\n </el-main>\r\n </el-container>\r\n </el-container>\r\n</