# 运行与打包说明 建筑材料放射性判定系统(Rust + Tauri + React + TypeScript)。 ## 1. 环境要求 | 工具 | 版本 | 说明 | | --- | --- | --- | | Node.js | ≥ 18 | 前端构建(Vite) | | npm | 随 Node 安装 | 依赖管理 | | Rust | ≥ 1.78(已验证 1.93) | 计算引擎与 Tauri 后端,`rustup` 安装 | | Tauri 前置依赖 | Windows: WebView2 Runtime(Win11 已内置) | 见 | 首次准备: ```powershell npm install ``` > Rust 依赖在首次 `cargo`/`tauri` 命令时自动下载编译。 ## 2. 开发运行 ### 2.1 仅前端(浏览器预览,不含 Tauri 原生命令) ```powershell npm run dev ``` 打开 。注意:此模式下 `invoke("calculate")` 不可用,仅用于调样式。 ### 2.2 完整桌面应用(推荐) ```powershell npm run tauri:dev ``` 该命令会自动启动 Vite 开发服务器并编译 Rust 后端,弹出桌面窗口,支持热重载。 ## 3. 测试 计算引擎(含蒙特卡洛仿真)的单元/集成测试: ```powershell cargo test -p ceramic-radioactivity ``` 前端类型检查与生产构建: ```powershell npm run build ``` ## 4. 打包(生成 Windows 安装包) 1. 在 `src-tauri/tauri.conf.json` 中将 `bundle.active` 设为 `true`: ```json "bundle": { "active": true, "targets": ["nsis", "msi"], "icon": ["icons/icon.ico"] } ``` - `nsis` 生成 `.exe` 安装包,`msi` 生成 `.msi`(需安装 WiX Toolset,可只保留 `nsis`)。 - `icon` 需指向有效图标;可用 `npx tauri icon path\to\logo.png` 生成整套图标。 2. 执行构建: ```powershell npm run tauri:build ``` 3. 产物输出目录: ``` src-tauri/target/release/ # 可执行文件 建筑材料放射性判定.exe src-tauri/target/release/bundle/nsis/ # NSIS 安装包 src-tauri/target/release/bundle/msi/ # MSI 安装包(如启用) ``` > 首次 release 构建较慢(需编译全部 Rust 依赖),后续增量构建会显著加快。 ## 5. 项目结构 ``` src/ 计算引擎(库 crate:ceramic-radioactivity) ├─ domain.rs 输入/输出/校准/判定/MCM 数据结构 ├─ calculator.rs GUM 法不确定度计算与三态判定 └─ mcm.rs 蒙特卡洛法仿真(10000 次,含 PRNG) tests/ 计算引擎测试 src-tauri/ Tauri 桌面外壳(command: calculate) ui/ React + Ant Design 前端 run.md 本说明 ``` ## 6. 功能说明(计算与判定) - **GUM 法**:A 类(标准差 / 极差法)、B 类不确定度合成,输出 IRa、Ir 及相对不确定度。 - `ur ≤ 20%` → `OK`;否则次数 < 6 → `请增加试验次数至 6 次`;否则 → `校准仪器后重新测量`。 - **蒙特卡洛法(MCM)**:对各核素校准比活度按正态分布抽样,10000 次仿真传播至 IRa、Ir, 输出**平均值、标准偏差、P2.5、P97.5**(95% 包含区间),并与**标准值**比较给出**合格 / 不合格概率**。 - 标准值(IRa、Ir 限值)可在界面“校准参数 / 判定标准值”中修改,默认均为 `1.0`(GB 6566 主体材料)。 - 仿真使用固定随机种子,结果可复现。