From 457eceb6471bb7370d7dcdfb44046ad51c89321e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= Date: Mon, 29 Sep 2025 11:13:20 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20=E7=B4=A7=E5=87=91=E5=B8=83?= =?UTF-8?q?=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rtsp-vue/index.html | 2 +- rtsp-vue/src/api/video/model.js | 44 +++ rtsp-vue/src/assets/styles/element-ui.scss | 8 +- .../assets/styles/element/layout-compact.scss | 77 +++++ rtsp-vue/src/assets/styles/index.scss | 2 +- .../src/assets/styles/variables.module.scss | 6 +- .../src/components/RightToolbar/index.vue | 2 +- rtsp-vue/src/layout/components/Navbar.vue | 4 - rtsp-vue/src/views/video/model/index.vue | 299 ++++++++++++++++++ 9 files changed, 433 insertions(+), 11 deletions(-) create mode 100644 rtsp-vue/src/api/video/model.js create mode 100644 rtsp-vue/src/assets/styles/element/layout-compact.scss create mode 100644 rtsp-vue/src/views/video/model/index.vue diff --git a/rtsp-vue/index.html b/rtsp-vue/index.html index 95bd769..99b0c7d 100644 --- a/rtsp-vue/index.html +++ b/rtsp-vue/index.html @@ -201,7 +201,7 @@ -
+
diff --git a/rtsp-vue/src/api/video/model.js b/rtsp-vue/src/api/video/model.js new file mode 100644 index 0000000..3fb6830 --- /dev/null +++ b/rtsp-vue/src/api/video/model.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询算法模型列表 +export function listModel(query) { + return request({ + url: '/video/model/list', + method: 'get', + params: query + }) +} + +// 查询算法模型详细 +export function getModel(modelId) { + return request({ + url: '/video/model/' + modelId, + method: 'get' + }) +} + +// 新增算法模型 +export function addModel(data) { + return request({ + url: '/video/model', + method: 'post', + data: data + }) +} + +// 修改算法模型 +export function updateModel(data) { + return request({ + url: '/video/model', + method: 'put', + data: data + }) +} + +// 删除算法模型 +export function delModel(modelId) { + return request({ + url: '/video/model/' + modelId, + method: 'delete' + }) +} diff --git a/rtsp-vue/src/assets/styles/element-ui.scss b/rtsp-vue/src/assets/styles/element-ui.scss index 0f175f2..c4d3f03 100644 --- a/rtsp-vue/src/assets/styles/element-ui.scss +++ b/rtsp-vue/src/assets/styles/element-ui.scss @@ -1,4 +1,5 @@ // cover some element-ui styles +@import './element/layout-compact.scss'; .el-breadcrumb__inner, .el-breadcrumb__inner a { @@ -54,6 +55,10 @@ margin: 0 auto; } +.el-select { + width: 180px; +} + // refine element ui upload .upload-container { .el-upload { @@ -93,4 +98,5 @@ .el-dropdown .el-dropdown-link{ color: var(--el-color-primary) !important; -} \ No newline at end of file +} + diff --git a/rtsp-vue/src/assets/styles/element/layout-compact.scss b/rtsp-vue/src/assets/styles/element/layout-compact.scss new file mode 100644 index 0000000..c62c767 --- /dev/null +++ b/rtsp-vue/src/assets/styles/element/layout-compact.scss @@ -0,0 +1,77 @@ +// 定制element-ui组件的尺寸, 紧凑布局 +:root { + --el-component-size: 25px !important; + --el-pagination-button-width: 25px !important; + --el-pagination-button-height: 25px !important; +} + +.el-table { + .el-table__cell { + padding: 0 !important; + } + + .el-table__header-wrapper th.el-table__cell { + padding: 0 !important; + height: 30px !important; + } +} + +.el-button { + height: 25px !important; + font-size: 12px !important; + border-radius: 0; + + &.is-circle { + width: 25px !important; + border-radius: 8px; + } +} + +.el-form { + &--inline { + .el-form-item { + margin-right: 10px !important; + } + } + + .el-form-item { + margin-bottom: 10px !important; + font-size: 12px !important; + } +} + +.el-select { + .el-select__wrapper { + min-height: 25px !important; + } +} + +.el-menu { + .el-menu-item { + height: 40px !important; + } + + .el-sub-menu__title { + height: 40px !important; + } +} + +.el-pagination { + .el-pager { + li { + height: 25px !important; + width: 25px !important; + min-height: 25px !important; + min-width: 25px !important; + padding: 0 !important; + } + } + + .btn-prev, .btn-next { + height: 25px !important; + width: 25px !important; + min-height: 25px !important; + min-width: 25px !important; + padding: 0 !important; + } +} \ No newline at end of file diff --git a/rtsp-vue/src/assets/styles/index.scss b/rtsp-vue/src/assets/styles/index.scss index 2b8dca5..b98f88d 100644 --- a/rtsp-vue/src/assets/styles/index.scss +++ b/rtsp-vue/src/assets/styles/index.scss @@ -132,7 +132,7 @@ aside { } .pagination-container { - margin-top: 30px; + margin-top: 10px; } .text-center { diff --git a/rtsp-vue/src/assets/styles/variables.module.scss b/rtsp-vue/src/assets/styles/variables.module.scss index 8764e13..5635b5a 100644 --- a/rtsp-vue/src/assets/styles/variables.module.scss +++ b/rtsp-vue/src/assets/styles/variables.module.scss @@ -10,7 +10,7 @@ $panGreen: #30B08F; // 默认主题变量 $menuText: #bfcbd9; -$menuActiveText: #409eff; +$menuActiveText: #2bf; $menuBg: #304156; $menuHover: #263445; @@ -18,7 +18,7 @@ $menuHover: #263445; $menuLightBg: #ffffff; $menuLightHover: #f0f1f5; $menuLightText: #303133; -$menuLightActiveText: #409EFF; +$menuLightActiveText: #2bf; // 基础变量 $base-sidebar-width: 200px; @@ -32,7 +32,7 @@ $base-sub-menu-background: #1f2d3d; $base-sub-menu-hover: #001528; // 组件变量 -$--color-primary: #409EFF; +$--color-primary: #2bf; $--color-success: #67C23A; $--color-warning: #E6A23C; $--color-danger: #F56C6C; diff --git a/rtsp-vue/src/components/RightToolbar/index.vue b/rtsp-vue/src/components/RightToolbar/index.vue index 5a53dd4..765d322 100644 --- a/rtsp-vue/src/components/RightToolbar/index.vue +++ b/rtsp-vue/src/components/RightToolbar/index.vue @@ -120,7 +120,7 @@ function checkboxChange(event, label) {