This commit is contained in:
2026-06-09 11:26:42 +08:00
parent 7d0fa506b6
commit 5d73a7d036
19 changed files with 35 additions and 248 deletions
@@ -67,17 +67,16 @@ onUnmounted(() => {
</div>
</div>
<div v-if="!state.backendDbReady" class="inline-alert inline-alert-warning">
<div class="inline-alert-title">提示</div>
<div class="inline-alert-message">{{ state.backendDbMessage }}</div>
</div>
<el-alert
v-if="!state.backendDbReady"
:title="state.backendDbMessage"
type="warning"
show-icon
:closable="false"
style="margin-bottom: 16px;"
/>
<div v-if="state.loading" class="loading-state">
<div class="spinner"></div>
<span>加载中...</span>
</div>
<div v-else>
<div v-loading="state.loading">
<DashboardTab v-if="state.activeTab === 'dashboard'" />
<ProductsTab v-else-if="state.activeTab === 'products'" />
<MaterialsTab v-else-if="state.activeTab === 'materials'" />
@@ -109,15 +108,6 @@ onUnmounted(() => {
.inventory-breadcrumb .sep { margin: 0 var(--space-2); }
.inventory-breadcrumb .current { color: var(--text-primary); font-weight: var(--font-medium); }
.inline-alert { padding: var(--space-4); border-radius: var(--radius-md); margin-bottom: var(--space-4); }
.inline-alert-warning { background: var(--warning-bg); border: 1px solid var(--warning); }
.inline-alert-title { font-weight: var(--font-semibold); margin-bottom: var(--space-1); }
.inline-alert-message { font-size: var(--text-sm); }
.loading-state { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-8); justify-content: center; color: var(--text-tertiary); }
.spinner { width: 20px; height: 20px; border: 2px solid var(--border-default); border-top-color: var(--primary-500); border-radius: 50%; animation: spin 0.8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.inventory-sidebar-wrapper :deep(.el-menu) {
border-right: none;
background: transparent;
@@ -1,7 +1,6 @@
<script setup lang="ts">
import { ref, computed, onMounted } from 'vue'
import { useInventory } from '../composables/useInventory'
import { handleApiError } from '@/shared/notification'
const {
state,
@@ -454,7 +454,7 @@ import { useRoute, useRouter } from 'vue-router'
import { useAppStore } from '@/stores/app'
import { apiRequest } from '@/shared/api'
import { handleApiError, addNotification } from '@/shared/notification'
import { formatFileSize, formatDateTime, formatNumber } from '@/shared/utils'
import { formatDateTime, formatNumber } from '@/shared/utils'
const route = useRoute()
const router = useRouter()