20260916172703

This commit is contained in:
oneao committed 2026-09-16 17:27:04 +08:00
1 parent dce29f250e
commit de05498552
25 files changed
+1141 -1315

No files matched your search

@@ -822,9 +822,9 @@ loadModuleOptions()
</script>
<template>
<div class="mm-page">
<div class="mm-body">
<Splitter class="mm-body-splitter">
<div class="fms-page">
<div class="fms-page__body">
<Splitter class="fms-splitter-clean">
<SplitterPanel :default-size="248" :min="180" :max="420">
<MenuTreePanel
v-model:expanded-keys="menuExpandedKeys"
@@ -841,10 +841,10 @@ loadModuleOptions()
</SplitterPanel>
<SplitterPanel>
<main class="mm-main">
<main class="fms-page__main">
<template v-if="selectedMenu">
<!-- 顶部操作栏 -->
<div class="mm-main-toolbar">
<div class="fms-toolbar">
<Button
type="primary"
:loading="configSaving"
@@ -860,11 +860,11 @@ loadModuleOptions()
<!-- 主体:三块 Splitter 分割 -->
<div v-if="maindata" class="mm-edit-body">
<Splitter class="mm-edit-splitter">
<Splitter class="fms-splitter-clean mm-edit-splitter">
<SplitterPanel :default-size="360">
<div class="mm-form-col__card">
<div class="fms-card mm-form-col__card">
<div class="mm-form-col__head">
<div class="mm-pane__title">菜单配置</div>
<div class="fms-pane-title">菜单配置</div>
</div>
<MenuBasicPanel
ref="basicPanelRef"
@@ -880,13 +880,13 @@ loadModuleOptions()
</SplitterPanel>
</Splitter>
</div>
<div v-else-if="configLoading" class="mm-config-state">
<div v-else-if="configLoading" class="fms-state">
<Spin />
<span>加载中...</span>
</div>
<div v-else class="mm-config-state">暂无配置数据</div>
<div v-else class="fms-state">暂无配置数据</div>
</template>
<div v-else class="mm-main__empty">
<div v-else class="fms-state fms-card">
<FolderTree :size="32" />
<span>请选择左侧菜单节点</span>
</div>
@@ -954,87 +954,14 @@ loadModuleOptions()
<style lang="scss" scoped>
/* ============================================================
* 菜单管理页面样式(仅页面布局)
* 菜单管理页面样式(仅页面专有部分)
* 通用骨架(页面三层 / Splitter / 白卡 / 工具条 / 状态占位)见 styles/common.scss
* 面板内部样式随各面板组件(MenuTreePanel / MenuBasicPanel)一起维护
* ============================================================ */
/* ---- 页面根 ---- */
.mm-page {
display: flex;
flex-direction: column;
flex: 1;
min-height: 0;
}
/* ---- 主体左右布局 ---- */
.mm-body {
display: flex;
flex: 1;
min-height: 0;
}
/* ---- Splitter 面板 ----
* 面板不再左右留白,两张白卡紧贴;灰缝由分隔条自身的触发区宽度
* (--fms-splitter-trigger-size,默认 6px)承担。
* 常显线平时透明,hover / 拖拽时显示整条 100% 高度的细线 + 手柄提示 */
.mm-body-splitter :deep(> .fms-splitter-panel) {
overflow: hidden;
}
.mm-body-splitter :deep(.fms-splitter-bar::before) {
opacity: 0;
}
.mm-body-splitter :deep(.fms-splitter-bar:hover::before),
.mm-body-splitter :deep(.fms-splitter-bar-active::before),
.mm-body-splitter :deep(.fms-splitter-bar:focus-visible::before) {
opacity: 1;
}
/* ---- 右侧主区 ---- */
.mm-main {
display: flex;
flex-direction: column;
flex: 1;
width: 100%;
height: 100%;
min-width: 0;
min-height: 0;
overflow: hidden;
gap: 8px;
}
.mm-main__empty {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 8px;
flex: 1;
color: var(--fms-text-secondary);
font-size: 14px;
background: var(--fms-card);
border-radius: var(--fms-control-radius);
box-shadow: var(--fms-shadow);
svg {
color: var(--fms-text-secondary);
opacity: 0.4;
}
}
/* ---- 顶部操作栏 ---- */
.mm-main-toolbar {
display: flex;
align-items: center;
gap: 8px;
flex-shrink: 0;
padding: 8px 10px;
background: var(--fms-card);
border-radius: var(--fms-control-radius);
}
/* ---- 主体三块 Splitter ---- */
/* ---- 主体三块 Splitter ----
* 面板裁切与「常显线平时透明」已由 .fms-splitter-clean 统一处理,
* 这里只补面板之间的 3px 灰缝,首尾面板不留边距。 */
.mm-edit-body {
flex: 1;
min-height: 0;
@@ -1043,7 +970,6 @@ loadModuleOptions()
}
.mm-edit-splitter :deep(> .fms-splitter-panel) {
overflow: hidden;
padding: 0 3px;
}
@@ -1056,13 +982,10 @@ loadModuleOptions()
padding-right: 0;
}
/* 左栏:表单卡片 */
/* 左栏:表单卡片(.fms-card 提供白卡三件套,这里只写排布) */
.mm-form-col__card {
height: 100%;
padding: 8px 10px;
background: var(--fms-card);
border-radius: var(--fms-control-radius);
box-shadow: var(--fms-shadow);
display: flex;
flex-direction: column;
gap: 16px;
@@ -1075,25 +998,5 @@ loadModuleOptions()
align-items: center;
justify-content: space-between;
gap: 8px;
margin-bottom: 0;
}
/* 区块标题 */
.mm-pane__title {
margin-bottom: 0;
font-size: 13px;
font-weight: 600;
color: var(--fms-text);
}
.mm-config-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 8px;
flex: 1;
color: var(--fms-text-secondary);
font-size: 14px;
}
</style>