2026-01-26 13:47:53 +08:00
|
|
|
|
<script setup lang="ts">
|
2026-01-27 15:50:23 +08:00
|
|
|
|
// 1. 引入需要的图标组件
|
|
|
|
|
|
import { InfoFilled } from '@element-plus/icons-vue'
|
2026-01-26 13:47:53 +08:00
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<template>
|
2026-01-26 17:00:12 +08:00
|
|
|
|
<div class="app-wrapper">
|
|
|
|
|
|
<header class="app-header">
|
|
|
|
|
|
<div class="logo-container">
|
|
|
|
|
|
<router-link to="/" class="home-link">
|
2026-01-27 15:50:23 +08:00
|
|
|
|
<img src="@/assets/iris.png" class="logo" alt="Logo" />
|
|
|
|
|
|
<span class="system-title">IRIS 库存管理系统</span>
|
2026-01-26 17:00:12 +08:00
|
|
|
|
</router-link>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="header-right">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</header>
|
|
|
|
|
|
|
|
|
|
|
|
<main class="app-content">
|
|
|
|
|
|
<router-view />
|
|
|
|
|
|
</main>
|
|
|
|
|
|
|
|
|
|
|
|
<footer class="app-footer">
|
|
|
|
|
|
<span class="version-tag">
|
|
|
|
|
|
<el-icon style="vertical-align: middle; margin-right: 4px"><InfoFilled /></el-icon>
|
|
|
|
|
|
当前版本: 1.0 Beta (测试版)
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</footer>
|
2026-01-26 13:47:53 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
2026-01-26 17:00:12 +08:00
|
|
|
|
<style>
|
2026-01-27 15:50:23 +08:00
|
|
|
|
/* 注意:App.vue 中的 style 标签通常不加 scoped,
|
|
|
|
|
|
或者将全局样式(html, body)单独放在一个 style 标签中,
|
|
|
|
|
|
以确保 html, body 的高度设置能生效
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
/* --- 全局重置样式 Start --- */
|
2026-01-26 17:00:12 +08:00
|
|
|
|
html, body {
|
|
|
|
|
|
margin: 0;
|
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
height: 100%;
|
2026-01-27 15:50:23 +08:00
|
|
|
|
width: 100%;
|
2026-01-26 17:00:12 +08:00
|
|
|
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
2026-01-27 15:50:23 +08:00
|
|
|
|
background-color: #f5f7fa; /* 整体背景色 */
|
|
|
|
|
|
overflow: hidden; /* 防止最外层出现双滚动条 */
|
2026-01-26 17:00:12 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#app {
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
}
|
2026-01-27 15:50:23 +08:00
|
|
|
|
/* --- 全局重置样式 End --- */
|
2026-01-26 17:00:12 +08:00
|
|
|
|
|
|
|
|
|
|
.app-wrapper {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
2026-01-27 15:50:23 +08:00
|
|
|
|
height: 100vh; /* 强制占满视口高度 */
|
|
|
|
|
|
overflow: hidden;
|
2026-01-26 17:00:12 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* 顶部栏样式 */
|
|
|
|
|
|
.app-header {
|
|
|
|
|
|
height: 60px;
|
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
|
border-bottom: 1px solid #dcdfe6;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
padding: 0 20px;
|
|
|
|
|
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
|
2026-01-27 15:50:23 +08:00
|
|
|
|
flex-shrink: 0; /* 禁止被压缩 */
|
|
|
|
|
|
z-index: 1000; /* 确保头部在最上层 */
|
2026-01-26 17:00:12 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.logo-container {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.home-link {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 15px;
|
|
|
|
|
|
text-decoration: none;
|
|
|
|
|
|
cursor: pointer;
|
2026-01-27 15:50:23 +08:00
|
|
|
|
user-select: none;
|
2026-01-26 17:00:12 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-01-26 13:47:53 +08:00
|
|
|
|
.logo {
|
2026-01-27 15:50:23 +08:00
|
|
|
|
height: 36px; /* 稍微调整高度适配 */
|
2026-01-26 17:00:12 +08:00
|
|
|
|
width: auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.system-title {
|
2026-01-27 15:50:23 +08:00
|
|
|
|
font-size: 20px;
|
|
|
|
|
|
font-weight: 600;
|
2026-01-26 17:00:12 +08:00
|
|
|
|
color: #303133;
|
2026-01-27 15:50:23 +08:00
|
|
|
|
letter-spacing: 1px;
|
2026-01-26 13:47:53 +08:00
|
|
|
|
}
|
2026-01-26 17:00:12 +08:00
|
|
|
|
|
|
|
|
|
|
/* 内容区样式 */
|
|
|
|
|
|
.app-content {
|
2026-01-27 15:50:23 +08:00
|
|
|
|
flex: 1; /* 自动占据剩余空间 */
|
|
|
|
|
|
overflow: hidden; /* 这里设为 hidden,让内部的 Layout 组件去处理滚动 */
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
/* 如果您希望整个页面有内边距,可以加 padding;
|
|
|
|
|
|
但通常建议 padding 加在具体的业务页面里,保持 Layout 铺满 */
|
|
|
|
|
|
padding: 0;
|
2026-01-26 13:47:53 +08:00
|
|
|
|
}
|
2026-01-26 17:00:12 +08:00
|
|
|
|
|
2026-01-27 15:50:23 +08:00
|
|
|
|
/* 底部栏样式 */
|
2026-01-26 17:00:12 +08:00
|
|
|
|
.app-footer {
|
2026-01-27 15:50:23 +08:00
|
|
|
|
height: 36px;
|
|
|
|
|
|
background-color: #f0f2f5;
|
|
|
|
|
|
border-top: 1px solid #e4e7ed;
|
2026-01-26 17:00:12 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
2026-01-27 15:50:23 +08:00
|
|
|
|
justify-content: center;
|
|
|
|
|
|
flex-shrink: 0; /* 禁止被压缩 */
|
2026-01-26 17:00:12 +08:00
|
|
|
|
font-size: 12px;
|
|
|
|
|
|
color: #909399;
|
2026-01-27 15:50:23 +08:00
|
|
|
|
z-index: 1000;
|
2026-01-26 17:00:12 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.version-tag {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
font-weight: 500;
|
2026-01-27 15:50:23 +08:00
|
|
|
|
color: #e6a23c; /* 橙色警告色 */
|
|
|
|
|
|
background: rgba(230, 162, 60, 0.1); /* 淡橙色背景 */
|
|
|
|
|
|
padding: 2px 8px;
|
|
|
|
|
|
border-radius: 4px;
|
2026-01-26 13:47:53 +08:00
|
|
|
|
}
|
2026-01-26 17:00:12 +08:00
|
|
|
|
</style>
|