diff --git a/docs/功能测试-托盘追溯.md b/docs/功能测试-托盘追溯.md new file mode 100644 index 00000000..e2f05822 --- /dev/null +++ b/docs/功能测试-托盘追溯.md @@ -0,0 +1,31 @@ +# 功能测试 - 托盘追溯 + +> 模块:数据中台 / 基础追溯 / 托盘追溯 (Tray Traceability) +> 路由:`/data_middleground/produce/traceability/tray` + +## 测试前置条件 + +- 测试账号具备访问“托盘追溯”和“电池追溯”的菜单权限。 +- 准备至少 1 个存在电池明细和工序时间线的托盘号。 +- 后端接口 `tray`、`traydetail`、`batteryactive` 可正常访问。 + +## 测试任务列表 + +| 序号 | 测试项 | 操作步骤 | 预期结果 | +|---:|---|---|---| +| 1 | 页面入口 | 进入“托盘追溯”页面 | 页面显示托盘号输入框、查询、重置按钮和托盘列表 | +| 2 | 托盘查询 | 输入有效托盘号并查询 | 表格展示托盘、批次、LOT、激活状态、投入电池数和时间信息 | +| 3 | 空数据查询 | 输入无数据托盘号并查询 | 表格显示空态,页面不报错 | +| 4 | 打开电池明细 | 点击某行“电池明细” | 打开全屏抽屉,展示左侧工序时间线和右侧电池明细表 | +| 5 | 明细搜索 | 在抽屉内输入电池条码关键字 | 明细表按电池条码过滤 | +| 6 | 取消激活校验 | 不选择电池,点击取消电池激活 | 页面提示请至少选择一个电池 | +| 7 | 取消激活 | 选择一个或多个电池后点击取消电池激活 | 调用取消激活接口,成功后刷新明细 | +| 8 | 跳转电池追溯 | 点击明细中的电池条码 | 跳转到电池追溯页面并携带 battery_id 查询参数 | +| 9 | 重置功能 | 查询后点击重置 | 托盘号、列表和分页状态清空 | +| 10 | 国际化检查 | 切换中英文语言后重新进入页面 | 页面按钮、表格列和抽屉文案随语言切换显示 | + +## 回归关注点 + +- 电池明细过滤需要排除空电池条码和 0。 +- 取消激活接口参数 `batterData` 必须是已选择电池数组的 JSON 字符串。 +- 电池条码跳转需保留 `battery_id` 查询参数。 diff --git a/docs/功能测试-电池详情报表.md b/docs/功能测试-电池详情报表.md new file mode 100644 index 00000000..50f406fb --- /dev/null +++ b/docs/功能测试-电池详情报表.md @@ -0,0 +1,23 @@ +# 功能测试 - 电池详情报表 + +> 模块:数据中台 / 生产报表 / 电池详情报表 (Battery Detail Report) +> 路由:`/data_middleground/produce/report/battery-detail` + +## 测试任务列表 + +| 序号 | 测试项 | 操作步骤 | 预期结果 | +|---:|---|---|---| +| 1 | 页面入口 | 进入电池详情报表页面 | 页面显示工艺流程、批次、工序、托盘、时间筛选项 | +| 2 | 工艺选择 | 选择工艺流程 | 批次和工序下拉数据按工艺刷新 | +| 3 | 批次必填校验 | 不选批次点击查询 | 页面提示请选择批次 | +| 4 | 查询报表 | 选择批次和筛选条件后查询 | 表格按动态表头展示电池详情数据 | +| 5 | 分页切换 | 查询出多页数据后切换分页 | 当前页数据刷新,总数正确 | +| 6 | 导出任务 | 选择批次后点击导出并确认 | 创建导出任务成功并跳转任务页面 | +| 7 | 重置功能 | 点击重置 | 筛选项、动态表头、表格和分页清空 | +| 8 | 国际化检查 | 切换中英文语言 | 页面文案随语言切换 | + +## 回归关注点 + +- 查询前必须先获取动态表头。 +- 导出任务 action 必须为 `download`。 +- 后端返回嵌套表头时需要展开为可展示列。 diff --git a/docs/功能测试-电池追溯.md b/docs/功能测试-电池追溯.md new file mode 100644 index 00000000..ac1e86c4 --- /dev/null +++ b/docs/功能测试-电池追溯.md @@ -0,0 +1,31 @@ +# 功能测试 - 电池追溯 + +> 模块:数据中台 / 基础追溯 / 电池追溯 (Battery Traceability) +> 路由:`/data_middleground/produce/traceability/battery` + +## 测试前置条件 + +- 测试账号具备访问“电池追溯”的菜单权限。 +- 准备至少 1 个存在工序过程数据的电池条码。 +- 准备 1 个已激活电池和 1 个 NG 且未激活电池,用于验证操作按钮。 + +## 测试任务列表 + +| 序号 | 测试项 | 操作步骤 | 预期结果 | +|---:|---|---|---| +| 1 | 页面入口 | 进入“电池追溯”页面 | 页面显示电池条码输入框、查询、重置按钮和列表区域 | +| 2 | 电池查询 | 输入有效电池条码并查询 | 表格展示批次、托盘、LOT、激活状态、GOOD/NG、等级、不良信息、当前工序 | +| 3 | URL 参数查询 | 访问路由并携带 `?battery_id=xxx` | 页面自动按该电池条码查询 | +| 4 | 打开电池详情 | 点击某行“电池详情” | 弹出全屏详情,左侧展示工序列表,右侧展示默认工序数据 | +| 5 | 切换工序 | 在详情中点击不同工序 | 右侧工序数据按选中工序刷新 | +| 6 | 工序数据搜索 | 在详情中输入项目名称关键字 | 工序数据表按项目名称过滤 | +| 7 | 取消激活 | 对已激活电池点击取消激活并确认 | 调用取消激活接口,行状态更新为停止 | +| 8 | 复投激活 | 对 NG 且未激活电池点击复投激活并确认 | 调用 Workerman 复投接口,成功后刷新该电池数据 | +| 9 | 重置功能 | 查询后点击重置 | 电池条码、列表和分页状态清空 | +| 10 | 国际化检查 | 切换中英文语言后重新进入页面 | 页面按钮、表格列和弹窗文案随语言切换显示 | + +## 回归关注点 + +- 工序详情接口必须携带当前行的批次、电池条码、托盘、LOT 和工序信息。 +- 取消激活接口参数 `batterData` 必须是数组 JSON。 +- 复投激活必须发送 `set_battery_rebatch` action。 diff --git a/docs/功能测试-设备履历报表.md b/docs/功能测试-设备履历报表.md new file mode 100644 index 00000000..923ba142 --- /dev/null +++ b/docs/功能测试-设备履历报表.md @@ -0,0 +1,22 @@ +# 功能测试 - 设备履历报表 + +> 模块:数据中台 / 生产报表 / 设备履历报表 (Equipment History Report) +> 路由:`/data_middleground/produce/report/equipment-history` + +## 测试任务列表 + +| 序号 | 测试项 | 操作步骤 | 预期结果 | +|---:|---|---|---| +| 1 | 页面入口 | 进入设备履历报表页面 | 页面显示设备编码、状态、时间范围筛选项和列表 | +| 2 | 设备编码查询 | 输入有效设备编码并查询 | 表格展示设备履历记录 | +| 3 | 状态筛选 | 选择运行/空闲/异常状态查询 | 表格仅展示匹配状态数据 | +| 4 | 时间范围筛选 | 选择开始结束时间后查询 | 表格展示时间范围内履历 | +| 5 | 分页切换 | 查询出多页数据后切换分页 | 当前页数据刷新,总数正确 | +| 6 | 重置功能 | 点击重置 | 筛选项、表格和分页状态清空 | +| 7 | 空数据 | 输入无匹配条件查询 | 显示空态,不出现脚本错误 | +| 8 | 国际化检查 | 切换中英文语言 | 页面文案随语言切换 | + +## 回归关注点 + +- 接口必须调用 `report/device/log`,method 为 `get.device.status.log`。 +- 时间范围需要拆分为 `start_time` 和 `end_time`。 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 3e4af14e..fb442f2c 100644 --- a/docs/迁移任务列表.md +++ b/docs/迁移任务列表.md @@ -3,8 +3,8 @@ > 根据 `后台Webman界面截图对照表.md` 生成。状态以当前 V2 项目中已落地的页面目录为准。 - 总功能数:79 -- 已迁移:30 -- 未迁移:49 +- 已迁移:35 +- 未迁移:44 | 状态 | 一级模块 | 二级模块 | 三级模块 | 功能说明 | V2 目标路径 | |:---:|---|---|---|---|---| @@ -82,11 +82,11 @@ | ✅ | 数据中台 (Data Platform) | 基础追溯 (Traceability) | 反向追溯 (Backward Traceability) | 反向追溯 | `src/views/data-platform/traceability/backward/` | | ✅ | 数据中台 (Data Platform) | 基础追溯 (Traceability) | 正向追溯 (Forward Traceability) | 正向追溯 | `src/views/data-platform/traceability/forward/` | | ✅ | 数据中台 (Data Platform) | 基础追溯 (Traceability) | 电池曲线 (Battery Curve) | 电池曲线 | `src/views/data-platform/traceability/battery-curve/` | -| ⬜ | 数据中台 (Data Platform) | 基础追溯 (Traceability) | 托盘追溯 (Tray Traceability) | | 待确认 | -| ⬜ | 数据中台 (Data Platform) | 基础追溯 (Traceability) | 电池追溯 (Battery Traceability) | | 待确认 | -| ⬜ | 数据中台 (Data Platform) | 生产报表 (Production Reports) | 设备履历报表 (Equipment History Report) | | 待确认 | -| ⬜ | 数据中台 (Data Platform) | 生产报表 (Production Reports) | 电池详情报表 (Battery Detail Report) | | 待确认 | -| ⬜ | 数据中台 (Data Platform) | 相关性分析 (Correlation Analysis) | 鹰眼 (Hawkeye) | | 待确认 | +| ✅ | 数据中台 (Data Platform) | 基础追溯 (Traceability) | 托盘追溯 (Tray Traceability) | 托盘追溯 | `src/views/data-platform/traceability/tray/` | +| ✅ | 数据中台 (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) | 鹰眼 | `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/api/data-platform/production-reports/battery-detail.js b/src/api/data-platform/production-reports/battery-detail.js new file mode 100644 index 00000000..708daf9d --- /dev/null +++ b/src/api/data-platform/production-reports/battery-detail.js @@ -0,0 +1,23 @@ +import { request } from '@/api/_service' + +const BASE = 'planning_production/produce/battery_details_report/' + +function dataParams (method, data = {}, platform = 'api') { + return { method, platform, ...data } +} + +export function getBatteryDetailTitle (data) { + return request({ url: BASE + 'battery_details_title', method: 'post', data: dataParams('production_report_battery_details_title', data) }) +} + +export function getBatteryDetailList (data) { + return request({ url: BASE + 'battery_details_list', method: 'post', data: dataParams('production_report_battery_details_list', data) }) +} + +export function getBatteryDetailFlowBatch (data) { + return request({ url: BASE + 'battery_details_flow_batch', method: 'get', params: dataParams('production_report_battery_details_flow_batch', data) }) +} + +export function createBatteryDetailExportTask (data) { + return request({ url: BASE + 'battery_details_task', method: 'post', data: dataParams('system_exporttask_battery_details_task', data, 'admin') }) +} diff --git a/src/api/data-platform/production-reports/equipment-history.js b/src/api/data-platform/production-reports/equipment-history.js new file mode 100644 index 00000000..7d200f12 --- /dev/null +++ b/src/api/data-platform/production-reports/equipment-history.js @@ -0,0 +1,15 @@ +import { request } from '@/api/_service' + +const BASE = 'report/' + +function apiParams (method, data = {}) { + return { method, platform: 'api', ...data } +} + +export function getEquipmentHistoryList (data) { + return request({ + url: BASE + 'device/log', + method: 'post', + data: apiParams('get.device.status.log', data) + }) +} diff --git a/src/api/data-platform/traceability/battery.js b/src/api/data-platform/traceability/battery.js new file mode 100644 index 00000000..d213e7cf --- /dev/null +++ b/src/api/data-platform/traceability/battery.js @@ -0,0 +1,31 @@ +import { request } from '@/api/_service' + +const BASE = 'planning_production/produce/traceability/' + +function apiParams (method, data = {}) { + return { method, platform: 'background', ...data } +} + +export function getBatteryTraceList (data) { + return request({ + url: BASE + 'battery', + method: 'get', + params: apiParams('planning_production_produce_traceability_battery', data) + }) +} + +export function getBatteryProcessData (data) { + return request({ + url: BASE + 'batteryProcess', + method: 'get', + params: apiParams('planning_production_produce_traceability_batteryProcess', data) + }) +} + +export function cancelBatteryActive (data) { + return request({ + url: BASE + 'batteryactive', + method: 'get', + params: apiParams('planning_production_produce_traceability_batteryactive', data) + }) +} diff --git a/src/api/data-platform/traceability/tray.js b/src/api/data-platform/traceability/tray.js new file mode 100644 index 00000000..9810b623 --- /dev/null +++ b/src/api/data-platform/traceability/tray.js @@ -0,0 +1,31 @@ +import { request } from '@/api/_service' + +const BASE = 'planning_production/produce/traceability/' + +function apiParams (method, data = {}) { + return { method, platform: 'background', ...data } +} + +export function getTrayTraceList (data) { + return request({ + url: BASE + 'tray', + method: 'get', + params: apiParams('planning_production_produce_traceability_tray', data) + }) +} + +export function getTrayTraceDetail (data) { + return request({ + url: BASE + 'traydetail', + method: 'get', + params: apiParams('planning_production_produce_traceability_traydetail', data) + }) +} + +export function cancelTraceBatteryActive (data) { + return request({ + url: BASE + 'batteryactive', + method: 'get', + params: apiParams('planning_production_produce_traceability_batteryactive', data) + }) +} diff --git a/src/locales/en.json b/src/locales/en.json index 25244d49..734e6aee 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1336,6 +1336,151 @@ "current": "Current", "voltage": "Voltage", "capacity": "Capacity" + }, + "tray": { + "query": "Search", + "reset": "Reset", + "tray_code": "Tray No.", + "tray_code_placeholder": "Enter tray no.", + "data_empty": "No data", + "id": "ID", + "tray": "Tray", + "login_batch": "Login Batch", + "lot": "LOT", + "is_active": "Active", + "active": "Active", + "inactive": "Inactive", + "input_battery_count": "Input Battery Count", + "login_time": "Login Time", + "cancel_active_time": "Cancel Active Time", + "battery_detail": "Battery Detail", + "battery_detail_data": "Battery Detail Data", + "process": "Process", + "start_time": "Start Time", + "end_time": "End Time", + "device_no": "Device No.", + "battery_id": "Battery Barcode", + "search_battery_id": "Search battery barcode", + "cancel_battery_active": "Cancel Battery Active", + "sort": "No.", + "production_batch": "Production Batch", + "model": "Model", + "process_flow_name": "Process Flow Name", + "tray_no": "Tray No.", + "activation_status": "Activation Status", + "category": "Category", + "grade": "Grade", + "please_select_at_least_one_battery": "Select at least one battery", + "cancel_success": "Cancel active successfully" + }, + "battery": { + "query": "Search", + "reset": "Reset", + "battery_code": "Battery Barcode", + "enter_battery_code": "Enter battery barcode", + "login_batch": "Login Batch", + "tray_no": "Tray No.", + "lot": "LOT", + "is_active": "Active", + "activated": "Activated", + "stopped": "Stopped", + "good_or_ng": "GOOD/NG", + "grade": "Grade", + "ng_info": "NG Info", + "current_process_code": "Current Process Code", + "battery_detail": "Battery Detail", + "cancel_activation": "Cancel Active", + "reinvestment_activation": "Rework Activation", + "no_data": "No data", + "title": "Battery [{battery_id}] Traceability Detail", + "process_label": "Process", + "process_data": "Process Data", + "item_name": "Item Name", + "content": "Content", + "search_item_name": "Search item name", + "prompt": "Prompt", + "cancel_active_confirm": "Cancel activation for this battery?", + "activation_confirm": "Execute rework activation?", + "cancel_success": "Cancel active successfully", + "activation_success": "Rework activation successfully" + } + }, + "production_reports": { + "equipment_history": { + "query": "Search", + "reset": "Reset", + "device_code": "Device Code", + "enter_device_code": "Enter device code", + "device_name": "Device Name", + "status": "Status", + "select_status": "Select status", + "running": "Running", + "idle": "Idle", + "error": "Error", + "status_name": "Status Name", + "time_range": "Time Range", + "start_time": "Start Time", + "end_time": "End Time", + "duration": "Duration", + "remark": "Remark", + "no_data": "No data" + }, + "battery_detail": { + "query": "Search", + "reset": "Reset", + "export": "Export", + "flow": "Process Flow", + "select_flow": "Select process flow", + "batch": "Batch", + "select_batch": "Select batch", + "process": "Process", + "select_process": "Select process", + "tray_no": "Tray No.", + "enter_tray_no": "Enter tray no.", + "time": "Completion Time", + "start_date": "Start Time", + "end_date": "End Time", + "no_data": "No data", + "please_select_batch": "Select batch", + "export_confirm": "Create battery detail export task?", + "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 eb1d2336..b1100b3c 100644 --- a/src/locales/zh-chs.json +++ b/src/locales/zh-chs.json @@ -1336,6 +1336,151 @@ "current": "电流", "voltage": "电压", "capacity": "容量" + }, + "tray": { + "query": "查询", + "reset": "重置", + "tray_code": "托盘号", + "tray_code_placeholder": "请输入托盘号", + "data_empty": "暂无数据", + "id": "ID", + "tray": "托盘", + "login_batch": "登录批次", + "lot": "LOT", + "is_active": "是否激活", + "active": "激活", + "inactive": "未激活", + "input_battery_count": "投入电池数", + "login_time": "登录时间", + "cancel_active_time": "取消激活时间", + "battery_detail": "电池明细", + "battery_detail_data": "电池明细数据", + "process": "工序", + "start_time": "开始时间", + "end_time": "结束时间", + "device_no": "设备编号", + "battery_id": "电池条码", + "search_battery_id": "搜索电池条码", + "cancel_battery_active": "取消电池激活", + "sort": "序号", + "production_batch": "生产批次", + "model": "型号", + "process_flow_name": "工艺流程名称", + "tray_no": "托盘号", + "activation_status": "激活状态", + "category": "类别", + "grade": "等级", + "please_select_at_least_one_battery": "请至少选择一个电池", + "cancel_success": "取消激活成功" + }, + "battery": { + "query": "查询", + "reset": "重置", + "battery_code": "电池条码", + "enter_battery_code": "请输入电池条码", + "login_batch": "登录批次", + "tray_no": "托盘号", + "lot": "LOT", + "is_active": "是否激活", + "activated": "已激活", + "stopped": "已停止", + "good_or_ng": "良品/不良", + "grade": "等级", + "ng_info": "不良信息", + "current_process_code": "当前工序编码", + "battery_detail": "电池详情", + "cancel_activation": "取消激活", + "reinvestment_activation": "复投激活", + "no_data": "暂无数据", + "title": "电池【{battery_id}】追溯详情", + "process_label": "工序", + "process_data": "工序数据", + "item_name": "项目名称", + "content": "内容", + "search_item_name": "搜索项目名称", + "prompt": "提示", + "cancel_active_confirm": "确认取消该电池激活?", + "activation_confirm": "确认执行复投激活?", + "cancel_success": "取消激活成功", + "activation_success": "复投激活成功" + } + }, + "production_reports": { + "equipment_history": { + "query": "查询", + "reset": "重置", + "device_code": "设备编码", + "enter_device_code": "请输入设备编码", + "device_name": "设备名称", + "status": "状态", + "select_status": "请选择状态", + "running": "运行", + "idle": "空闲", + "error": "异常", + "status_name": "状态名称", + "time_range": "时间范围", + "start_time": "开始时间", + "end_time": "结束时间", + "duration": "持续时长", + "remark": "备注", + "no_data": "暂无数据" + }, + "battery_detail": { + "query": "查询", + "reset": "重置", + "export": "导出", + "flow": "工艺流程", + "select_flow": "请选择工艺流程", + "batch": "批次", + "select_batch": "请选择批次", + "process": "工序", + "select_process": "请选择工序", + "tray_no": "托盘号", + "enter_tray_no": "请输入托盘号", + "time": "完成时间", + "start_date": "开始时间", + "end_date": "结束时间", + "no_data": "暂无数据", + "please_select_batch": "请选择批次", + "export_confirm": "确认创建电池详情报表导出任务?", + "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 0769b241..bf3662a9 100644 --- a/src/router/modules/data-platform.js +++ b/src/router/modules/data-platform.js @@ -31,6 +31,36 @@ export default { name: `${pre}traceability-curve`, meta: { ...meta, cache: true, title: '电池曲线' }, component: _import('data-platform/traceability/battery-curve') + }, + { + path: 'produce/traceability/tray', + name: `${pre}traceability-tray`, + meta: { ...meta, cache: true, title: '托盘追溯' }, + component: _import('data-platform/traceability/tray') + }, + { + path: 'produce/traceability/battery', + name: `${pre}traceability-battery`, + meta: { ...meta, cache: true, title: '电池追溯' }, + component: _import('data-platform/traceability/battery') + }, + { + path: 'produce/report/equipment-history', + name: `${pre}report-equipment-history`, + meta: { ...meta, cache: true, title: '设备履历报表' }, + component: _import('data-platform/production-reports/equipment-history') + }, + { + path: 'produce/report/battery-detail', + 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 @@ + + + + + diff --git a/src/views/data-platform/production-reports/battery-detail/index.vue b/src/views/data-platform/production-reports/battery-detail/index.vue new file mode 100644 index 00000000..ec6f481b --- /dev/null +++ b/src/views/data-platform/production-reports/battery-detail/index.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/src/views/data-platform/production-reports/equipment-history/index.vue b/src/views/data-platform/production-reports/equipment-history/index.vue new file mode 100644 index 00000000..be7737d3 --- /dev/null +++ b/src/views/data-platform/production-reports/equipment-history/index.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/views/data-platform/traceability/battery/index.vue b/src/views/data-platform/traceability/battery/index.vue new file mode 100644 index 00000000..ba2340a4 --- /dev/null +++ b/src/views/data-platform/traceability/battery/index.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/src/views/data-platform/traceability/tray/index.vue b/src/views/data-platform/traceability/tray/index.vue new file mode 100644 index 00000000..b3995a4a --- /dev/null +++ b/src/views/data-platform/traceability/tray/index.vue @@ -0,0 +1,199 @@ + + + + +