diff --git a/package.json b/package.json index 696916f..e5e4ec3 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,6 @@ "jsencrypt": "3.3.2", "nprogress": "0.2.0", "pinia": "3.0.4", - "splitpanes": "4.0.4", "vue": "3.5.26", "vue-cropper": "1.1.1", "vue-router": "4.6.4", diff --git a/src/assets/styles/ruoyi.scss b/src/assets/styles/ruoyi.scss index eb27307..87bdf3d 100644 --- a/src/assets/styles/ruoyi.scss +++ b/src/assets/styles/ruoyi.scss @@ -332,6 +332,28 @@ display: block; } +/* tree-sidebar content */ +.tree-sidebar-manage-wrap { + display: flex; + gap: 0; + min-height: calc(100vh - 130px); + padding: 0 !important; + overflow: hidden; +} + +.tree-sidebar-content { + flex: 1; + min-width: 0; + overflow: hidden; + background: #fff; + + .content-inner { + padding: 12px 16px; + height: 100%; + overflow-y: auto; + } +} + /* error */ .error-title { color: #c0392b !important; } .error-title i { color: #c0392b !important; } @@ -415,8 +437,3 @@ .top-right-btn { margin-left: auto; } - -/* 分割面板样式 */ -.splitpanes.default-theme .splitpanes__pane { - background-color: var(--splitpanes-default-bg) !important; -} diff --git a/src/assets/styles/variables.module.scss b/src/assets/styles/variables.module.scss index 1f34402..aaf9b2b 100644 --- a/src/assets/styles/variables.module.scss +++ b/src/assets/styles/variables.module.scss @@ -194,25 +194,36 @@ html.dark { } /* 分割窗格覆盖 */ - .splitpanes { - background-color: var(--splitpanes-bg); - - .splitpanes__pane { - background-color: var(--splitpanes-bg); - border-color: var(--splitpanes-border); + .tree-sidebar-manage-wrap { + .tree-sidebar-content { + background: var(--splitpanes-bg); } - - .splitpanes__splitter { - background-color: var(--splitpanes-splitter-bg); - border-color: var(--splitpanes-border); - - &:hover { - background-color: var(--splitpanes-splitter-hover-bg); + .tree-sidebar { + border-right: 1px solid var(--splitpanes-splitter-bg); + background: var(--splitpanes-bg); + .tree-header { + background: var(--splitpanes-bg); + border-color: var(--splitpanes-border); } - - &:before, - &:after { - background-color: var(--splitpanes-border); + .tree-title { + color: var(--el-color-primary-light-2); + } + .collapse-button-container { + background: var(--splitpanes-bg) !important; + } + .collapse-button { + &:hover { + color: var(--el-color-primary-light-2); + background: var(--splitpanes-bg); + } + } + .resize-handle { + &:hover { + background: var(--splitpanes-splitter-hover-bg); + } + &.active { + background: var(--splitpanes-splitter-hover-bg); + } } } } diff --git a/src/components/TreePanel/index.vue b/src/components/TreePanel/index.vue new file mode 100644 index 0000000..513b8e3 --- /dev/null +++ b/src/components/TreePanel/index.vue @@ -0,0 +1,756 @@ + + + + + diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 5b0bbbe..0ccbef0 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -1,105 +1,90 @@