diff --git a/src/api/system/info.js b/src/api/system/info.js new file mode 100644 index 0000000..f12a368 --- /dev/null +++ b/src/api/system/info.js @@ -0,0 +1,18 @@ +import request from '@/utils/request' + +// 查询设备基本信息列表 +export function listInfo(query) { + return request({ + url: '/system/info/list', + method: 'get', + params: query + }) +} + +// 查询设备基本信息详细 +export function getInfo(deviceId) { + return request({ + url: '/system/info/' + deviceId, + method: 'get' + }) +} diff --git a/src/api/system/video.js b/src/api/system/video.js new file mode 100644 index 0000000..8f70b59 --- /dev/null +++ b/src/api/system/video.js @@ -0,0 +1,18 @@ +import request from '@/utils/request' + +// 查询教学视频列表 +export function listVideo(query) { + return request({ + url: '/system/video/list', + method: 'get', + params: query + }) +} + +// 查询教学视频详细 +export function getVideo(videoId) { + return request({ + url: '/system/video/' + videoId, + method: 'get' + }) +} diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js index 6a16d9d..7b71840 100644 --- a/src/store/modules/permission.js +++ b/src/store/modules/permission.js @@ -58,6 +58,14 @@ const usePermissionStore = defineStore( // 遍历后台传来的路由字符串,转换为组件对象 function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) { return asyncRouterMap.filter(route => { + // 兼容:后端把顶级菜单配置成了具体页面组件(非Layout)时,会导致进入后丢失整体布局(侧边栏/顶部栏)。 + // 这里将该类顶级叶子路由自动包一层 Layout,子路由使用空 path 以保持原 URL 不变。 + if (!lastRouter && route.component && !route.children && !['Layout', 'ParentView', 'InnerLink'].includes(route.component) && typeof route.path === 'string' && route.path.startsWith('/')) { + const inner = { ...route } + route.component = 'Layout' + route.name = inner.name ? `${inner.name}Wrapper` : route.name + route.children = [Object.assign(inner, { path: '' })] + } if (type && route.children) { route.children = filterChildren(route.children) } diff --git a/src/views/system/info/index.vue b/src/views/system/info/index.vue new file mode 100644 index 0000000..476a4f7 --- /dev/null +++ b/src/views/system/info/index.vue @@ -0,0 +1,545 @@ + + + + + diff --git a/src/views/system/video/index.vue b/src/views/system/video/index.vue new file mode 100644 index 0000000..4db52ce --- /dev/null +++ b/src/views/system/video/index.vue @@ -0,0 +1,329 @@ +