feat(ui): 新增“天天系统”ERP管理平台主页布局与控制台页面优化

- 为控制台首页添加页面标题动态设置
- 为应用中心页面添加页面标题动态设置
- 修改控制台布局,实现动态浏览器标签页标题更新
- 新增“天天系统”ERP管理平台主页,包含侧边栏导航、顶部栏及数据概览模块
- 实现主页搜索框、通知、语言和用户信息区域交互
- 添加欢迎区、快捷入口、最近使用应用列表及应用详情抽屉功能
- 支持小程序扫码弹窗展示和应用类型图标及颜色区分
- 优化页面样式,支持响应式布局及交互效果
- 更新Nuxt国际化重定向路径片段标识符以兼容新版本
This commit is contained in:
2026-04-09 00:58:15 +08:00
parent 4986d90eb9
commit d8c559b5b1
20 changed files with 3083 additions and 316 deletions

View File

@@ -0,0 +1,461 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>天天系统 - 功能菜单脑图</title>
<script src="https://cdn.jsdelivr.net/npm/markmap-lib@0.14.4/dist/browser/index.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/d3@7"></script>
<script src="https://cdn.jsdelivr.net/npm/markmap-view@0.14.4/dist/browser/index.min.js"></script>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'PingFang SC', sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
padding: 20px;
}
.container {
max-width: 1800px;
margin: 0 auto;
}
.header {
text-align: center;
color: white;
margin-bottom: 30px;
}
.header h1 {
font-size: 2.5rem;
font-weight: 600;
text-shadow: 0 2px 10px rgba(0,0,0,0.2);
margin-bottom: 10px;
}
.header p {
opacity: 0.9;
font-size: 1.1rem;
}
#mindmap {
background: white;
border-radius: 20px;
box-shadow: 0 25px 50px -12px rgba(0,0,0,0.25);
overflow: hidden;
min-height: 800px;
}
#mindmap svg {
width: 100%;
height: 800px;
}
.toolbar {
display: flex;
gap: 10px;
margin-bottom: 20px;
justify-content: center;
flex-wrap: wrap;
}
.toolbar button {
padding: 12px 24px;
border: none;
border-radius: 10px;
cursor: pointer;
font-size: 1rem;
font-weight: 500;
transition: all 0.3s ease;
}
.toolbar button.primary {
background: white;
color: #667eea;
}
.toolbar button.secondary {
background: rgba(255,255,255,0.2);
color: white;
}
.toolbar button:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}
.legend {
display: flex;
justify-content: center;
gap: 30px;
margin-top: 20px;
flex-wrap: wrap;
}
.legend-item {
display: flex;
align-items: center;
gap: 8px;
color: white;
font-size: 0.9rem;
}
.legend-dot {
width: 12px;
height: 12px;
border-radius: 50%;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>🗺️ 天天系统功能菜单脑图</h1>
<p>6大核心模块 · 完整功能架构</p>
</div>
<div class="toolbar">
<button class="primary" onclick="zoomIn()">🔍 放大</button>
<button class="primary" onclick="zoomOut()">🔍 缩小</button>
<button class="secondary" onclick="resetZoom()">↺ 重置</button>
<button class="secondary" onclick="downloadImage()">📥 下载PNG</button>
</div>
<div id="mindmap"></div>
<div class="legend">
<div class="legend-item">
<div class="legend-dot" style="background: #667eea;"></div>
<span>一级菜单</span>
</div>
<div class="legend-item">
<div class="legend-dot" style="background: #764ba2;"></div>
<span>二级菜单</span>
</div>
<div class="legend-item">
<div class="legend-dot" style="background: #f093fb;"></div>
<span>三级功能</span>
</div>
</div>
</div>
<script>
const { Markmap, loadCSS, loadJS } = markmap;
const data = {
content: "天天系统 ERP",
children: [
{
content: "1⃣ 设备管理",
children: [
{
content: "📊 设备台账",
children: [
"设备列表",
"设备分类",
"设备档案"
]
},
{
content: "🔍 巡检管理",
children: [
"巡检计划",
"巡检任务",
"巡检记录"
]
},
{
content: "🔧 维护保养",
children: [
"保养计划",
"保养任务",
"维修记录"
]
},
{
content: "📈 统计分析",
children: [
"设备完好率",
"故障分析",
"维保成本"
]
}
]
},
{
content: "2⃣ 采购管理",
children: [
{
content: "📝 采购需求",
children: [
"需求申请",
"需求审批",
"需求池"
]
},
{
content: "📋 采购订单",
children: [
"订单创建",
"订单跟踪",
"订单结算"
]
},
{
content: "🏭 供应商管理",
children: [
"供应商档案",
"供应商评估",
"供应商分类"
]
},
{
content: "📦 库存查询",
children: [
"实时库存",
"库存预警",
"库存流水"
]
}
]
},
{
content: "3⃣ 仓储物流",
children: [
{
content: "📥 入库管理",
children: [
"采购入库",
"生产入库",
"退货入库"
]
},
{
content: "📤 出库管理",
children: [
"领料出库",
"销售出库",
"调拨出库"
]
},
{
content: "📦 库存管理",
children: [
"库存盘点",
"库存调拨",
"库存预警"
]
},
{
content: "📊 报表统计",
children: [
"出入库明细",
"库存周转",
"ABC分析"
]
}
]
},
{
content: "4⃣ 财务管理",
children: [
{
content: "📒 总账管理",
children: [
"科目设置",
"凭证管理",
"账簿查询"
]
},
{
content: "💵 应收应付",
children: [
"应收账款",
"应付账款",
"收付款管理"
]
},
{
content: "📊 报表中心",
children: [
"资产负债表",
"利润表",
"现金流量表"
]
},
{
content: "💼 资产管理",
children: [
"固定资产",
"资产折旧",
"资产盘点"
]
},
{
content: "💳 出纳管理",
children: [
"银行对账",
"现金日记账",
"资金计划"
]
}
]
},
{
content: "5⃣ 人力资源",
children: [
{
content: "🏢 组织管理",
children: [
"组织架构",
"岗位管理",
"编制管理"
]
},
{
content: "👤 员工管理",
children: [
"员工档案",
"入职离职",
"合同管理"
]
},
{
content: "📅 假期管理",
children: [
"假期类型",
"假期余额",
"请假审批"
]
},
{
content: "💰 薪酬核算",
children: [
"薪资结构",
"薪资计算",
"薪资发放"
]
},
{
content: "⚙️ 工作流配置",
children: [
"审批流程",
"表单设计",
"流程监控"
]
}
]
},
{
content: "6⃣ 协同办公",
children: [
{
content: "🏠 企业门户",
children: [
"门户配置",
"快捷入口",
"消息中心"
]
},
{
content: "📚 知识管理",
children: [
"文档中心",
"知识库",
"文件共享"
]
},
{
content: "📝 审批中心",
children: [
"待办事项",
"已办事项",
"我发起的"
]
},
{
content: "💸 费用报销",
children: [
"报销申请",
"借款管理",
"费用标准"
]
},
{
content: "📢 通知公告",
children: [
"公告发布",
"公告管理",
"阅读统计"
]
}
]
}
]
};
let markmap = null;
let svgElement = null;
let scale = 1;
function initMindmap() {
markmap = Markmap.create('#mindmap', {
preset: 'colorful',
color: (node) => {
if (node.depth === 0) return '#667eea';
if (node.depth === 1) return '#764ba2';
if (node.depth === 2) return '#f093fb';
return '#4fd1c5';
},
initialExpandLevel: 2,
nodeHeight: 28,
paddingX: 16,
paddingY: 8,
duration: 500
}, data);
}
function zoomIn() {
scale += 0.2;
applyZoom();
}
function zoomOut() {
scale -= 0.2;
applyZoom();
}
function resetZoom() {
scale = 1;
applyZoom();
}
function applyZoom() {
const svg = document.querySelector('#mindmap svg');
if (svg) {
svg.style.transform = `scale(${scale})`;
svg.style.transformOrigin = 'center center';
}
}
function downloadImage() {
const svg = document.querySelector('#mindmap svg');
if (!svg) return;
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
const svgData = new XMLSerializer().serializeToString(svg);
const img = new Image();
canvas.width = 2400;
canvas.height = 1600;
img.onload = function() {
ctx.fillStyle = 'white';
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
const link = document.createElement('a');
link.download = '天天系统功能菜单脑图.png';
link.href = canvas.toDataURL('image/png');
link.click();
};
img.src = 'data:image/svg+xml;base64,' + btoa(unescape(encodeURIComponent(svgData)));
}
initMindmap();
</script>
</body>
</html>