diff --git a/docs/功能测试-鹰眼.md b/docs/功能测试-鹰眼.md new file mode 100644 index 00000000..e0f05ada --- /dev/null +++ b/docs/功能测试-鹰眼.md @@ -0,0 +1,36 @@ +# 鹰眼功能测试任务列表 + +## 基础入口 + +- [ ] 进入 `数据中台 / 相关性分析 / 鹰眼`,页面正常加载,无控制台报错。 +- [ ] 左侧分析条件区域显示生产批次、工序、NG 码三个筛选项和分析按钮。 +- [ ] 页面右侧显示分析详情区域,未查询时为空状态。 + +## 查询条件 + +- [ ] 选择生产批次后,工序下拉框自动加载该批次下的不良工序列。 +- [ ] 选择工序后,NG 码下拉框自动切换为该工序对应的不良代码。 +- [ ] 点击重置后,批次、工序、NG 码、相关性结果和图表全部清空。 + +## 相关性分析 + +- [ ] 未选择生产批次时点击分析,系统提示需要选择批次。 +- [ ] 未选择工序时点击分析,系统提示需要选择工序。 +- [ ] 选择有效批次、工序和 NG 码后点击分析,Pearson 相关性散点图正常渲染。 +- [ ] PCC 表格显示工序参数、样本量、相关系数、P 值和相关性判断。 +- [ ] 卡方表格显示工序参数、样本量、卡方值、P 值和相关性判断。 +- [ ] 有不能参与分析的数据列时,顶部折叠区域展示对应参数名称。 + +## 图表与交互 + +- [ ] 散点图鼠标悬停时显示参数名称、相关系数和 P 值。 +- [ ] P 值大于 0.05 的记录以蓝色相关状态显示。 +- [ ] P 值小于或等于 0.05 的记录以红色不相关状态显示。 +- [ ] 已选择 NG 码时点击表格中的相关性文字,弹出分析报告弹窗。 +- [ ] 分析报告弹窗内按分类展示折线分布图,关闭后再次打开能正常刷新。 + +## 兼容性 + +- [ ] 页面在 1366px 宽度下表格和图表不重叠。 +- [ ] 浏览器窗口缩放后图表能自动适配。 +- [ ] 切换不同批次再次分析,旧批次结果不会残留。 diff --git a/docs/迁移任务列表.md b/docs/迁移任务列表.md index 87e4e308..fb442f2c 100644 --- a/docs/迁移任务列表.md +++ b/docs/迁移任务列表.md @@ -3,8 +3,8 @@ > 根据 `后台Webman界面截图对照表.md` 生成。状态以当前 V2 项目中已落地的页面目录为准。 - 总功能数:79 -- 已迁移:34 -- 未迁移:45 +- 已迁移:35 +- 未迁移:44 | 状态 | 一级模块 | 二级模块 | 三级模块 | 功能说明 | V2 目标路径 | |:---:|---|---|---|---|---| @@ -86,7 +86,7 @@ | ✅ | 数据中台 (Data Platform) | 基础追溯 (Traceability) | 电池追溯 (Battery Traceability) | 电池追溯 | `src/views/data-platform/traceability/battery/` | | ✅ | 数据中台 (Data Platform) | 生产报表 (Production Reports) | 设备履历报表 (Equipment History Report) | 设备履历报表 | `src/views/data-platform/production-reports/equipment-history/` | | ✅ | 数据中台 (Data Platform) | 生产报表 (Production Reports) | 电池详情报表 (Battery Detail Report) | 电池详情报表 | `src/views/data-platform/production-reports/battery-detail/` | -| ⬜ | 数据中台 (Data Platform) | 相关性分析 (Correlation Analysis) | 鹰眼 (Hawkeye) | | 待确认 | +| ✅ | 数据中台 (Data Platform) | 相关性分析 (Correlation Analysis) | 鹰眼 (Hawkeye) | 鹰眼 | `src/views/data-platform/correlation-analysis/hawkeye/` | ## 状态说明 diff --git a/src/api/data-platform/correlation-analysis/hawkeye.js b/src/api/data-platform/correlation-analysis/hawkeye.js new file mode 100644 index 00000000..2fa39c63 --- /dev/null +++ b/src/api/data-platform/correlation-analysis/hawkeye.js @@ -0,0 +1,43 @@ +import { request } from '@/api/_service' + +const BASE = 'data_middleground/eagle_eyes/' + +function apiParams (method, data = {}) { + return { + method, + platform: 'admin', + ...data + } +} + +export function getNGWorkstationBatch (data) { + return request({ + url: BASE + 'getNGWorkstationBatch', + method: 'get', + params: apiParams('data_middleground_eagle_eyes_getNGWorkstationBatch', data) + }) +} + +export function getBatchResultParam (data) { + return request({ + url: BASE + 'getBatchResultParam', + method: 'get', + params: apiParams('data_middleground_eagle_eyes_getBatchResultParam', data) + }) +} + +export function analyzeHawkeyeCorrelation (data) { + return request({ + url: BASE + 'saveCsvFile', + method: 'get', + params: apiParams('data_middleground_eagle_eyes_saveCsvFile', data) + }) +} + +export function getDataClassificationByNGCode (data) { + return request({ + url: BASE + 'getDataClassificationByNGCode', + method: 'get', + params: apiParams('data_middleground_eagle_eyes_get_data_classification_by_ng_code', data) + }) +} diff --git a/src/locales/en.json b/src/locales/en.json index 2b65a3b0..a1b8c0da 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1378,6 +1378,42 @@ "prompt": "Prompt", "create_download_task_success": "Download task created successfully" } + }, + "correlation_analysis": { + "hawkeye": { + "analysis_condition": "Analysis Conditions", + "analyze": "Analyze", + "reset": "Reset", + "production_batch": "Production Batch", + "select_production_batch": "Select production batch", + "process": "Process", + "select_ng_column": "Select NG column", + "ng_code": "NG Code", + "select_ng_code": "Select NG code", + "analysis_detail": "Analysis Detail", + "correlated": "Correlated", + "not_correlated": "Not Correlated", + "correlated_short": "Related", + "not_correlated_short": "Not Related", + "no_analysis_data_hint": "Columns skipped because values are all identical or all different", + "process_param": "Process Parameter", + "sample_size": "Sample Size", + "correlation_coeff": "Correlation Coeff.", + "chi_square_value": "Chi-square Value", + "p_value": "P Value", + "correlation": "Correlation", + "p_value_hint": "P value greater than 0.05 is considered correlated", + "p_value_hint2": "P value greater than 0.05 is considered correlated", + "scientific_notation_hint": "Value may be shown in scientific notation", + "tooltip_dependent_var": "Dependent Variable", + "tooltip_corr_coeff": "Correlation Coeff.", + "tooltip_p_value": "P Value", + "analysis_report": "Analysis Report", + "total": "Total", + "no_data": "No analysis data", + "please_select_batch": "Select production batch", + "please_select_process": "Select process" + } } } }, diff --git a/src/locales/zh-chs.json b/src/locales/zh-chs.json index eccd29f7..4ea95695 100644 --- a/src/locales/zh-chs.json +++ b/src/locales/zh-chs.json @@ -1378,6 +1378,42 @@ "prompt": "提示", "create_download_task_success": "创建下载任务成功" } + }, + "correlation_analysis": { + "hawkeye": { + "analysis_condition": "分析条件", + "analyze": "分析", + "reset": "重置", + "production_batch": "生产批次", + "select_production_batch": "请选择生产批次", + "process": "工序", + "select_ng_column": "请选择NG列", + "ng_code": "NG码", + "select_ng_code": "请选择NG码", + "analysis_detail": "分析详情", + "correlated": "相关", + "not_correlated": "不相关", + "correlated_short": "相关", + "not_correlated_short": "不相关", + "no_analysis_data_hint": "因列中数据完全相同或完全不相同,而不进行分析的数据列", + "process_param": "工序参数", + "sample_size": "样本量", + "correlation_coeff": "相关系数", + "chi_square_value": "卡方值", + "p_value": "P值", + "correlation": "相关性", + "p_value_hint": "P值大于0.05时判定为相关", + "p_value_hint2": "P值大于0.05时判定为相关", + "scientific_notation_hint": "数值可能以科学计数法显示", + "tooltip_dependent_var": "因变量", + "tooltip_corr_coeff": "相关系数", + "tooltip_p_value": "P值", + "analysis_report": "分析报告", + "total": "总数", + "no_data": "暂无分析数据", + "please_select_batch": "请选择生产批次", + "please_select_process": "请选择工序" + } } } }, diff --git a/src/router/modules/data-platform.js b/src/router/modules/data-platform.js index d101770b..bf3662a9 100644 --- a/src/router/modules/data-platform.js +++ b/src/router/modules/data-platform.js @@ -55,6 +55,12 @@ export default { name: `${pre}report-battery-detail`, meta: { ...meta, cache: true, title: '电池详情报表' }, component: _import('data-platform/production-reports/battery-detail') + }, + { + path: 'pancake/eagle_eyes', + name: `${pre}formation-data-record`, + meta: { ...meta, cache: true, title: '鹰眼' }, + component: _import('data-platform/correlation-analysis/hawkeye') } ])('data_middleground-') } diff --git a/src/views/data-platform/correlation-analysis/hawkeye/index.vue b/src/views/data-platform/correlation-analysis/hawkeye/index.vue new file mode 100644 index 00000000..3dd16b19 --- /dev/null +++ b/src/views/data-platform/correlation-analysis/hawkeye/index.vue @@ -0,0 +1,403 @@ + + + + +