20260822173019
This commit is contained in:
1 parent
27a32b313d
commit
5ff4583aeb
2 files changed
+39
-5
No files matched your search
@@ -1386,7 +1386,7 @@ loadMenuTree()
|
||||
</div>
|
||||
|
||||
<div class="mm-body__inner">
|
||||
<div class="mm-config">
|
||||
<div v-if="drafts" class="mm-config">
|
||||
<nav class="mm-config-nav">
|
||||
<template v-for="group in configGroups" :key="group.key">
|
||||
<div class="mm-config-nav__group">
|
||||
@@ -1530,6 +1530,12 @@ loadMenuTree()
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 加载中/无数据占位:避免配置区一片空白 -->
|
||||
<div v-else-if="configLoading" class="mm-config-state">
|
||||
<span class="mm-config-state__spinner"></span>
|
||||
<span>加载中...</span>
|
||||
</div>
|
||||
<div v-else class="mm-config-state">暂无配置数据</div>
|
||||
</div>
|
||||
</template>
|
||||
<div v-else class="mm-main__empty">
|
||||
@@ -1664,7 +1670,6 @@ loadMenuTree()
|
||||
<Modal
|
||||
:open="!!switchConfirm"
|
||||
title="有未保存的修改"
|
||||
:footer="false"
|
||||
:mask-closable="false"
|
||||
:confirm-loading="switchSaving"
|
||||
@cancel="onSwitchCancel"
|
||||
@@ -2026,6 +2031,34 @@ loadMenuTree()
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
/* 配置区加载中 / 空态占位 */
|
||||
.mm-config-state {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 8px;
|
||||
flex: 1;
|
||||
min-height: 120px;
|
||||
color: var(--fms-text-secondary);
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.mm-config-state__spinner {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
border: 2px solid var(--fms-border);
|
||||
border-top-color: var(--fms-primary);
|
||||
border-radius: 50%;
|
||||
animation: mm-config-spin 0.8s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes mm-config-spin {
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.mm-section-toolbar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -55,11 +55,12 @@ const panelStubs = {
|
||||
ModulePowersPanel: { name: 'ModulePowersPanel', template: '<div class="stub-powers" />' },
|
||||
ModuleI18nPanel: { name: 'ModuleI18nPanel', template: '<div class="stub-i18n" />' },
|
||||
MenuDetailPanel: { name: 'MenuDetailPanel', template: '<div class="stub-menu" />' },
|
||||
// Modal 尊重 open 条件,且渲染默认插槽 + footer 插槽(只渲染真正打开的弹窗)
|
||||
// Modal 尊重 open / footer 条件:footer=false 时不渲染按钮区(与真实组件一致)
|
||||
Modal: {
|
||||
name: 'Modal',
|
||||
props: ['open', 'title', 'okText', 'okType', 'confirmLoading'],
|
||||
template: '<div v-if="open" class="stub-modal"><slot /><slot name="footer" /></div>',
|
||||
props: ['open', 'title', 'okText', 'okType', 'confirmLoading', 'footer'],
|
||||
template:
|
||||
'<div v-if="open" class="stub-modal"><slot /><div v-if="footer !== false" class="stub-modal-footer"><slot name="footer" /></div></div>',
|
||||
},
|
||||
Transition: { template: '<slot />' },
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user