📖 BOM管理系统升级指南 - Mizu模型优化版

📖 BOM管理系统升级指南 - Mizu模型优化版

✅ 本文档指导您将原版BOM管理系统升级到Mizu模型优化后的企业级版本


📋 升级前准备

版本信息

  • 当前版本: v1.0 基础版
  • 目标版本: v1.1 企业级增强版 (Mizu优化)
  • 升级内容: 4个P0级企业级功能增强
  • 预计升级时间: 5分钟
  • 停机时间: 服务重启约10秒

备份建议

升级前请备份以下文件:

# 1. 备份核心文件
copy index-vue.html index-vue.html.backup
copy server.js server.js.backup

# 2. 备份配置文件
copy config.yaml config.yaml.backup

# 3. 如已产生审计日志,备份审计目录
xcopy audit-logs audit-logs.backup /E /I

🚀 一键升级步骤

方法一:自动升级(推荐)

  1. 替换核心文件
  • 将优化后的 server.js 覆盖原文件
  • 将优化后的 index-vue.html 覆盖原文件
  1. 重启服务
   # 停止原服务
   Ctrl+C
   
   # 重新启动
   node server.js
   
  1. 验证升级
  • 访问 http://localhost:3005
  • 使用不同用户登录验证权限控制
  • 测试导出功能验证加载状态和通知
  • 删除项目验证确认对话框

方法二:手动增量升级

如果您对原版已有自定义修改,建议采用以下增量升级方式:

#### 第1步:服务端 - 审计日志功能

server.js 中添加以下代码(约第75-120行附近):

// ===== P0-02: 审计日志服务端落盘 =====
const AUDIT_LOG_DIR = path.join(__dirname, 'audit-logs');
if (!fs.existsSync(AUDIT_LOG_DIR)) {
    fs.mkdirSync(AUDIT_LOG_DIR, { recursive: true });
    console.log('📝 审计日志目录已创建:', AUDIT_LOG_DIR);
}

function getAuditLogFilename() {
    const today = new Date().toISOString().split('T')[0];
    return path.join(AUDIT_LOG_DIR, `audit-${today}.log`);
}

function writeAuditLog(entry) {
    const logEntry = {
        timestamp: new Date().toISOString(),
        ...entry
    };
    const logLine = JSON.stringify(logEntry) + '\n';
    const filename = getAuditLogFilename();
    fs.appendFileSync(filename, logLine, 'utf8');
}

function readAuditLogs(date = null, limit = 100) {
    const filename = date ? path.join(AUDIT_LOG_DIR, `audit-${date}.log`) : getAuditLogFilename();
    if (!fs.existsSync(filename)) return [];
    
    const lines = fs.readFileSync(filename, 'utf8').trim().split('\n').filter(Boolean);
    return lines.slice(-limit).reverse().map(line => {
        try { return JSON.parse(line); } catch { return null; }
    }).filter(Boolean);
}

#### 第2步:服务端 - 添加审计日志API路由

handleRequest 函数中,变更管理路由之前添加:

// ===== P0-02: 审计日志API路由 =====
if (pathname.startsWith('/api/audit/')) {
    if (req.method === 'POST' && pathname === '/api/audit/logs') {
        let auditBody = [];
        req.on('data', chunk => auditBody.push(chunk));
        req.on('end', () => {
            const bodyStr = Buffer.concat(auditBody).toString('utf8');
            try {
                const entry = JSON.parse(bodyStr);
                entry.ip = req.socket.remoteAddress || '';
                entry.userAgent = req.headers['user-agent'] || '';
                writeAuditLog(entry);
                apiJson(res, 200, { success: true }, '审计日志已记录');
            } catch (e) {
                apiJson(res, 400, null, '无效的请求体');
            }
        });
        return;
    }
    if (req.method === 'GET' && pathname === '/api/audit/logs') {
        const date = query.date || null;
        const limit = parseInt(query.limit) || 100;
        const logs = readAuditLogs(date, limit);
        apiJson(res, 200, { logs, total: logs.length }, '');
        return;
    }
    apiJson(res, 404, null, 'API not found');
    return;
}

#### 第3步:前端 - 添加4个P0功能

index-vue.html 中,按以下位置增量添加:

| 功能模块 | 添加位置 | 代码行数 |

|---------|---------|---------|

| 确认对话框组件 | Vue模板末尾,

之前 | ~80行 |

| 全局加载遮罩组件 | 确认对话框之后 | ~30行 |

| 通知组件 | 加载遮罩之后 | ~50行 |

| 权限控制初始化 | Vue created() 钩子函数开头 | ~40行 |

| 全局方法注册 | Vue methods 中 | ~60行 |

| 已有功能接入 | 导出功能、删除功能 | ~20行 |

💡 具体代码可参考 CHANGELOG-mizu.md,搜索关键词 "P0-01" 到 "P0-05" 查找对应代码块。


✅ 升级验证清单

升级完成后,请逐一验证以下功能:

✅ P0-05 操作确认机制

✅ P0-04 统一加载状态与操作反馈

✅ P0-03 前端权限控制

✅ P0-02 审计日志服务端落盘


🔄 版本回滚方案

如遇升级问题,可立即回滚:

# 1. 停止服务
Ctrl+C

# 2. 恢复备份文件
copy index-vue.html.backup index-vue.html
copy server.js.backup server.js
copy config.yaml.backup config.yaml

# 3. 重新启动
node server.js

📊 升级前后对比

| 功能项 | 升级前 (v1.0) | 升级后 (v1.1) |

|-------|--------------|--------------|

| 删除确认 | ❌ 直接删除,容易误操作 | ✅ 二次确认,安全可靠 |

| 加载状态 | ❌ 用户点击后无反馈 | ✅ 全局加载遮罩,明确状态 |

| 操作结果 | ❌ 完成后无提示 | ✅ 通知组件,清晰告知结果 |

| 权限控制 | ❌ 所有人权限相同 | ✅ 四种角色,权限分级 |

| 操作审计 | ❌ 操作无痕,无法追溯 | ✅ 所有操作落盘,满足合规 |

| 项目可用性 | ⭐⭐ 基础可用 | ⭐⭐⭐⭐⭐ 企业级可用 |


📝 升级注意事项

  1. 浏览器缓存问题
  1. 审计日志磁盘占用
  1. 自定义修改冲突
  1. 权限系统集成

🆘 技术支持

升级过程中如遇问题,请查看:

  1. CHANGELOG-mizu.md - 详细修改记录
  2. 浏览器开发者工具 Console - 前端错误信息
  3. 服务器控制台输出 - 后端错误信息

🎉 升级完成

恭喜!您的BOM管理系统已成功升级到企业级版本!

升级后新增能力:

下一步建议:

← 返回案例列表
分享:
🤖 Try Now →
🤖
🎁