فهرست منبع

稍微调整一哈

wukai 1 ماه پیش
والد
کامیت
e76e989dbc
1فایلهای تغییر یافته به همراه67 افزوده شده و 68 حذف شده
  1. 67 68
      src/views/lean/cap/index.vue

+ 67 - 68
src/views/lean/cap/index.vue

@@ -170,7 +170,7 @@
         <!-- 子表录入测量值 -->
         <el-divider content-position="center">测量值输入</el-divider>
         <div style="margin-bottom: 10px;">
-          <el-button type="primary" icon="Plus" @click="handleAddMeasuredValueGroup">添加测量值(1行10)</el-button>
+          <el-button type="primary" icon="Plus" @click="handleAddMeasuredValueGroup">添加测量值(1行10)</el-button>
           <el-button type="danger" icon="Delete" @click="handleDeleteMeasuredValue">删除选中测量值</el-button>
         </div>
         <el-table :data="measuredValueList" :row-class-name="rowMeasuredValueIndex"
@@ -308,8 +308,8 @@
     </el-dialog>
 
     <!-- 查看白坯布重量分析对话框 -->
-    <el-dialog :title="title" v-model="viewOpen" fullscreen append-to-body>
-      <div style="height: 100%; display: flex; flex-direction: column;">
+    <el-dialog :title="title" v-model="viewOpen" width="1500px" height="800px" append-to-body>
+      <div style="display: flex; flex-direction: column; height: 100%;">
         <!-- 图表和信息区域 -->
         <div style="height: 300px; flex-shrink: 0; margin-bottom: 15px;">
           <el-row :gutter="15" style="height: 100%;">
@@ -348,28 +348,28 @@
         <div style="flex: 1; overflow: hidden;">
           <el-row :gutter="15" style="height: 100%;">
             <el-col :span="10" style="height: 100%; display: flex; flex-direction: column;">
-              <div style="font-size: 14px; font-weight: bold; margin-bottom: 10px;">CPK过程能力评价标准</div>
-              <div style="flex: 1; overflow: auto;">
-                <el-table :data="cpkEvaluation" border :row-class-name="cpkTableRowClassName" size="mini" style="font-size: 12px;">
-                  <el-table-column prop="cpk" label="Cpk值" ></el-table-column>
+              <div style="font-size: 14px; font-weight: bold; margin-bottom: 10px;">整体质量水平评价(CPK过程能力分析)</div>
+              <div style="flex: 1; overflow: hidden;">
+                <el-table :data="cpkEvaluation" border :row-class-name="cpkTableRowClassName" size="mini" style="font-size: 12px; width: 100%;">
+                  <el-table-column prop="cpk" label="Cpk值"  width="125" ></el-table-column>
                   <el-table-column prop="level" label="水平" width="70"></el-table-column>
-                  <el-table-column prop="evaluation" label="过程能力评价"></el-table-column>
-                  <el-table-column prop="defectRate" label="大约对应不良率"></el-table-column>
-                  <el-table-column prop="description" label="说明" width="320"></el-table-column>
+                  <el-table-column prop="evaluation" label="过程能力评价" width="110"></el-table-column>
+                  <el-table-column prop="defectRate" label="大约对应不良率" width="118"></el-table-column>
+                  <el-table-column prop="description" label="说明"></el-table-column>
                 </el-table>
               </div>
             </el-col>
             <el-col :span="14" style="height: 100%; display: flex; flex-direction: column;">
-              <div style="font-size: 14px; font-weight: bold; margin-bottom: 10px;">标准差水平评价标准</div>
+              <div style="font-size: 14px; font-weight: bold; margin-bottom: 10px;">重量稳定性评价(标准差分析)</div>
               <div style="flex: 1; overflow: auto;">
                 <el-table :data="calculatedStdDeviationEvaluation" border :row-class-name="stdDeviationTableRowClassName" size="mini" style="font-size: 12px;">
-                  <el-table-column prop="level" label="标准差水平"></el-table-column>
-                  <el-table-column prop="stdValue" label="标准差値"></el-table-column>
+                  <el-table-column prop="level" label="标准差水平" width="100"></el-table-column>
+                  <el-table-column prop="stdValue" label="标准差値" width="110"></el-table-column>
                   <el-table-column prop="cpk" label="Cpk值" width="80"></el-table-column>
-                  <el-table-column prop="evaluation" label="过程能力评价"></el-table-column>
-                  <el-table-column prop="stability" label="稳定性状态"></el-table-column>
-                  <el-table-column prop="defectRate" label="大约不良率"></el-table-column>
-                  <el-table-column prop="description" label="含义与行动建议" width="420"></el-table-column>
+                  <el-table-column prop="evaluation" label="过程能力评价" width="120"></el-table-column>
+                  <el-table-column prop="stability" label="稳定性状态" width="100"></el-table-column>
+                  <el-table-column prop="defectRate" label="大约不良率" width="100"></el-table-column>
+                  <el-table-column prop="description" label="含义与行动建议"></el-table-column>
                 </el-table>
               </div>
             </el-col>
@@ -592,12 +592,12 @@ function drawCpkTrendChart() {
   const dates = [];
   const cpkValues = [];
 
-  // 按时间排序データ
+  // 按时间排序数据
   const sortedData = [...capList.value].sort((a, b) => {
     return new Date(a.dataTime) - new Date(b.dataTime);
   });
 
-  // 提取CPK值と対応日付
+  // 提取CPK值与对应日期
   sortedData.forEach(item => {
     if (item.cpkValue !== null && item.cpkValue !== undefined) {
       dates.push(parseTime(item.dataTime, '{y}-{m}-{d}'));
@@ -673,7 +673,7 @@ function drawStdDevTrendChart() {
     return new Date(a.dataTime) - new Date(b.dataTime);
   });
 
-  // 提取标准差值与对应日期
+  // 提取标准差值与对应日期
   sortedData.forEach(item => {
     if (item.stdDeviation !== null && item.stdDeviation !== undefined) {
       dates.push(parseTime(item.dataTime, '{y}-{m}-{d}'));
@@ -879,15 +879,15 @@ function handleUpdate(row) {
   const _bwId = row.bwId || ids.value;
   getCap(_bwId).then(response => {
     form.value = response.data;
-    // 解析测定值JSON配列
+    // 解析测量值JSON数组
     try {
       if (form.value.measuredValue) {
-        // 2つの形式をサポート:単純な配列形式 [1,2,3,4,5] とオブジェクト配列形式 [{value: 1}, {value: 2}]
+        // 支持两种格式:简单数组形式 [1,2,3,4,5] 和对象数组形式 [{value: 1}, {value: 2}]
         const parsed = JSON.parse(form.value.measuredValue);
         if (Array.isArray(parsed)) {
           if (parsed.length > 0 && typeof parsed[0] === 'object') {
-            // オブジェクト配列形式 [{value: 1}, {value: 2}]
-            // 1行10個の形式に変換
+            // 对象数组形式 [{value: 1}, {value: 2}]
+            // 转换为1行10个的形式
             measuredValueList.value = [];
             for (let i = 0; i < parsed.length; i += 10) {
               let obj = {};
@@ -901,13 +901,13 @@ function handleUpdate(row) {
               measuredValueList.value.push(obj);
             }
 
-            // 表示用に测定值を解析して保存
+            // 为显示目的解析并保存测量值
             measuredValues.value = parsed.map(item =>
               typeof item === 'object' ? item.value : item
             );
           } else if (parsed.length > 0 && typeof parsed[0] === 'number') {
-            // 単純な配列形式 [1,2,3,4,5]
-            // 1行10個の形式に変換
+            // 简单数组形式 [1,2,3,4,5]
+            // 转换为1行10个的形式
             measuredValueList.value = [];
             for (let i = 0; i < parsed.length; i += 10) {
               let obj = {};
@@ -917,24 +917,24 @@ function handleUpdate(row) {
               measuredValueList.value.push(obj);
             }
 
-            // 表示用に测定值を解析して保存
+            // 为显示目的解析并保存测量值
             measuredValues.value = [...parsed];
           } else {
-            // 空配列またはその他の場合
+            // 空数组或其他情况
             measuredValueList.value = [];
             measuredValues.value = [];
           }
         }
       }
     } catch (e) {
-      console.error("测定值JSONの解析に失敗しました", e);
+      console.error("测量值JSON解析失败", e);
       measuredValueList.value = [];
       measuredValues.value = [];
     }
     open.value = true;
     title.value = "编辑白坯布重量分析";
 
-    // データをロードした後、統計値を計算
+    // 数据加载后,计算统计值
     nextTick(() => {
       calculateStatistics();
     });
@@ -945,18 +945,18 @@ function handleUpdate(row) {
 function handleView(row) {
   viewForm.value = {...row};
 
-  // 解析测定值JSON配列
+  // 解析测量值JSON数组
   try {
     if (viewForm.value.measuredValue) {
       const parsed = JSON.parse(viewForm.value.measuredValue);
       if (Array.isArray(parsed)) {
         if (parsed.length > 0 && typeof parsed[0] === 'object') {
-          // オブジェクト配列形式 [{value: 1}, {value: 2}]
+          // 对象数组形式 [{value: 1}, {value: 2}]
           measuredValues.value = parsed.map(item =>
             typeof item === 'object' ? item.value : item
           );
         } else if (parsed.length > 0 && typeof parsed[0] === 'number') {
-          // 単純な配列形式 [1,2,3,4,5]
+          // 简单数组形式 [1,2,3,4,5]
           measuredValues.value = [...parsed];
         } else {
           measuredValues.value = [];
@@ -964,14 +964,14 @@ function handleView(row) {
       }
     }
   } catch (e) {
-    console.error("测定值JSONの解析に失敗しました", e);
+    console.error("测量值JSON解析失败", e);
     measuredValues.value = [];
   }
 
   viewOpen.value = true;
   title.value = "白坯布重量分析详情";
 
-  // ダイアログを開いた後、グラフを描画
+  // 对话框打开后、图表绘制
   nextTick(() => {
     setTimeout(() => {
       drawChart();
@@ -983,17 +983,16 @@ function handleView(row) {
 function submitForm() {
   proxy.$refs["capRef"].validate(valid => {
     if (valid) {
-      // 誤差値を計算:目標値*(1+誤差範囲%) - 目標値*(1-誤差範囲%)
+      // 计算误差值:目标值*(1+误差范围%) - 目标值*(1-误差范围%)
       if (form.value.targetValue !== null && form.value.toleranceRange !== null) {
         const upperLimit = form.value.targetValue * (1 + form.value.toleranceRange / 100);
         const lowerLimit = form.value.targetValue * (1 - form.value.toleranceRange / 100);
         form.value.toleranceValue = (upperLimit - lowerLimit).toFixed(4);
       }
 
-      // 测定值サブテーブルデータを単純な配列形式 [1,2,3,4,5] に変換
       let simpleArray = [];
 
-      // 遍历すべての行、収集すべての非空の测量值
+      // 遍历所有行,收集所有非空的测量值
       measuredValueList.value.forEach(row => {
         for (let i = 1; i <= 10; i++) {
           const value = row[`value${i}`];
@@ -1025,7 +1024,7 @@ function submitForm() {
 /** 删除按钮操作 */
 function handleDelete(row) {
   const _bwIds = row.bwId || ids.value;
-  proxy.$modal.confirm('白坯布重量分析番号 "' + _bwIds + '" のデータ項目を削除しますか?').then(function () {
+  proxy.$modal.confirm('白坯布重量分析编号 "' + _bwIds + '" 的数据项是否删除?').then(function () {
     return delCap(_bwIds);
   }).then(() => {
     getList();
@@ -1055,10 +1054,10 @@ function handleAddMeasuredValue() {
   measuredValueList.value.push(obj);
 }
 
-/** 测定值添加按钮操作(1行10) */
+/** 测定值添加按钮操作(1行10) */
 function handleAddMeasuredValueGroup() {
   let obj = {};
-  // 使用目標値をデフォルト値、もし目標値が空ならnullを使用
+  // 使用目标值作为默认值,如果目标值为空则使用null
   const defaultValue = form.value.targetValue !== null ? form.value.targetValue : null;
   obj.value1 = defaultValue;
   obj.value2 = defaultValue;
@@ -1076,7 +1075,7 @@ function handleAddMeasuredValueGroup() {
 /** 测定值删除按钮操作 */
 function handleDeleteMeasuredValue() {
   if (checkedMeasuredValues.value.length == 0) {
-    proxy.$modal.msgError("请选择要删除的测值数据");
+    proxy.$modal.msgError("请选择要删除的测值数据");
   } else {
     const measuredValues = measuredValueList.value;
     const checkedValues = checkedMeasuredValues.value;
@@ -1084,7 +1083,7 @@ function handleDeleteMeasuredValue() {
       return checkedValues.indexOf(item.index) == -1
     });
 
-    // 削除後、再計算統計値
+    // 删除后,重新计算统计值
     calculateStatistics();
   }
 }
@@ -1092,37 +1091,37 @@ function handleDeleteMeasuredValue() {
 /** 单一测定值删除 */
 function deleteSingleMeasuredValue(index) {
   measuredValueList.value.splice(index, 1);
-  // 削除後、再計算統計値
+  // 删除后,重新计算统计值
   calculateStatistics();
 }
 
-// 根据CPK值確定行のクラス
+// 根据CPK值确定行的类
 function tableRowClassName({row, rowIndex}) {
   return '';
 }
 
-// CPK評価テーブル行クラス
+// CPK评价表格行类
 function cpkTableRowClassName({row, rowIndex}) {
-  // 現在のviewForm中のcpkValue値に基づいてどの行をハイライトするかを決定
+  // 根据当前viewForm中的cpkValue值确定要高亮哪一行
   if (viewForm.value.cpkValue !== null && viewForm.value.cpkValue !== undefined) {
     const cpkValue = parseFloat(viewForm.value.cpkValue);
 
     if (cpkValue < 1.0 && rowIndex === 0) {
-      return 'cpk-current-row'; // Cpk < 1.0 対応第一行
+      return 'cpk-current-row'; // Cpk < 1.0 对应第一行
     } else if (cpkValue >= 1.0 && cpkValue < 1.33 && rowIndex === 1) {
-      return 'cpk-current-row'; // 1.0 ≤ Cpk < 1.33 対応第二行
+      return 'cpk-current-row'; // 1.0 ≤ Cpk < 1.33 对应第二行
     } else if (cpkValue >= 1.33 && cpkValue < 1.67 && rowIndex === 2) {
-      return 'cpk-current-row'; // 1.33 ≤ Cpk < 1.67 対応第三行
+      return 'cpk-current-row'; // 1.33 ≤ Cpk < 1.67 对应第三行
     } else if (cpkValue >= 1.67 && rowIndex === 3) {
-      return 'cpk-current-row'; // Cpk ≥ 1.67 対応第四行
+      return 'cpk-current-row'; // Cpk ≥ 1.67 对应第四行
     }
   }
   return '';
 }
 
-// 标准偏差評価テーブル行クラス
+// 标准偏差评价表格行类
 function stdDeviationTableRowClassName({row, rowIndex}) {
-  // 根据当前viewForm中のstdDeviation値来确定应该高亮哪一行
+  // 根据当前viewForm中的stdDeviation值来确定应该高亮哪一行
   if (viewForm.value.stdDeviation !== null && viewForm.value.stdDeviation !== undefined) {
     const stdDeviation = parseFloat(viewForm.value.stdDeviation);
 
@@ -1160,10 +1159,10 @@ function handleMeasuredValueChanged() {
 
 /** 统计值计算 */
 function calculateStatistics() {
-  // すべての有効な测定值を取得
+  // 获取所有有效的测量值
   let validValues = [];
 
-  // 遍历すべての行、収集すべての非空の测量值
+  // 遍历所有行,收集所有非空的测量值
   measuredValueList.value.forEach(row => {
     for (let i = 1; i <= 10; i++) {
       const value = row[`value${i}`];
@@ -1174,7 +1173,7 @@ function calculateStatistics() {
   });
 
   if (validValues.length === 0) {
-    // 有効な値がない場合、統計フィールドをクリア
+    // 如果没有有效值,则清空统计字段
     form.value.meanValue = null;
     form.value.maxValue = null;
     form.value.minValue = null;
@@ -1182,29 +1181,29 @@ function calculateStatistics() {
     return;
   }
 
-  // 平均值を計算
+  // 计算平均值
   const mean = validValues.reduce((sum, value) => sum + value, 0) / validValues.length;
   form.value.meanValue = mean.toFixed(4);
 
-  // 最大值と最小值を計算
+  // 计算最大值和最小值
   form.value.maxValue = Math.max(...validValues);
   form.value.minValue = Math.min(...validValues);
 
-  // 标准偏差を計算
+  // 计算标准偏差
   const squaredDiffs = validValues.map(value => Math.pow(value - mean, 2));
   const avgSquaredDiff = squaredDiffs.reduce((sum, value) => sum + value, 0) / validValues.length;
   form.value.stdDeviation = Math.sqrt(avgSquaredDiff).toFixed(4);
 
-  // 目標値と誤差範囲が設定されている場合、过程能力指数を計算
+  // 当目标值和误差范围已设置时,计算过程能力指数
   if (form.value.targetValue !== null && form.value.toleranceRange !== null) {
-    // 修正:誤差範囲はパーセントであり、適切に規格上下限を計算する必要がある
-    const usl = form.value.targetValue * (1 + form.value.toleranceRange / 100); // 格上限
-    const lsl = form.value.targetValue * (1 - form.value.toleranceRange / 100); // 格下限
+    // 修正:误差范围是百分比,需要适当地计算规格上下限
+    const usl = form.value.targetValue * (1 + form.value.toleranceRange / 100); // 格上限
+    const lsl = form.value.targetValue * (1 - form.value.toleranceRange / 100); // 格下限
 
     form.value.usl = usl.toFixed(4);
     form.value.lsl = lsl.toFixed(4);
 
-    // 过程能力指数を計算
+    // 计算过程能力指数
     const stdDev = parseFloat(form.value.stdDeviation);
     if (stdDev !== 0) {
       // CPU = (USL - mean) / (3 * σ)
@@ -1243,7 +1242,7 @@ function drawChart() {
   // 数据准备
   const values = measuredValues.value.filter(val => val !== null && val !== undefined);
   if (values.length === 0) {
-    console.warn('有効な测定值データがありません');
+    console.warn('没有有效的测量值数据');
     return;
   }
 
@@ -1252,7 +1251,7 @@ function drawChart() {
   const maxValue = Math.max(...values);
   const range = maxValue - minValue;
 
-  // 平均值と标准偏差を計算
+  // 计算平均值和标准差
   const mean = values.reduce((sum, val) => sum + val, 0) / values.length;
   const squaredDiffs = values.map(val => Math.pow(val - mean, 2));
   const avgSquaredDiff = squaredDiffs.reduce((sum, val) => sum + val, 0) / values.length;
@@ -1378,7 +1377,7 @@ function drawChart() {
     ],
     series: [
       {
-        name: "测值分布",
+        name: "测值分布",
         data: counts,
         type: "bar",
         smooth: true,