Переглянути джерело

APP自评修复验证问题

ouyj 2 місяців тому
батько
коміт
39f040ad96
1 змінених файлів з 30 додано та 8 видалено
  1. 30 8
      pages/score/detail/selfEvaluate.uvue

+ 30 - 8
pages/score/detail/selfEvaluate.uvue

@@ -924,8 +924,8 @@ function validateForm(): any {
 
   // 验证工单类型为2(维保工单)时的分项完成系数
   if (selfEvaluationForm.value.orderType == '2') {
-    // 检查分项完成系数是否为空字符串(即用户清空了输入框)
-    if (itemCompletionFactorStr.value == '') {
+    // 检查分项完成系数是否为空(即用户清空了输入框)
+    if (selfEvaluationForm.value.itemCompletionFactor == null || selfEvaluationForm.value.itemCompletionFactor.toString() == '') {
       const result = new UTSJSONObject();
       result.set('valid', false);
       result.set('message', '分项完成系数不能为空');
@@ -946,8 +946,8 @@ function validateForm(): any {
     }
 
     // 验证分项完成系数和
-    // 检查分项完成系数和是否为空字符串(即用户清空了输入框)
-    if (itemCompletionFactorSumStr.value == '') {
+    // 直接检查实际表单值是否为空
+    if (selfEvaluationForm.value.itemCompletionFactorSum == null || selfEvaluationForm.value.itemCompletionFactorSum.toString() == '') {
       const result = new UTSJSONObject();
       result.set('valid', false);
       result.set('message', '分项完成系数和不能为空');
@@ -1147,8 +1147,8 @@ async function loadOrderDetail() {
   } */
 
 		  // 初始化字符串中转值,处理可能为null的情况
-		  itemCompletionFactorStr.value = formData.itemCompletionFactor != null ? formData.itemCompletionFactor.toFixed(2) : ''
-		  itemCompletionFactorSumStr.value = formData.itemCompletionFactorSum != null ? formData.itemCompletionFactorSum.toFixed(2) : ''
+		  itemCompletionFactorStr.value = formData.itemCompletionFactor != null ? formData.itemCompletionFactor.toString() : ''
+		  itemCompletionFactorSumStr.value = formData.itemCompletionFactorSum != null ? formData.itemCompletionFactorSum.toString() : ''
       
         // 加载检修类型选项
         if (orderType.value == '1') {
@@ -1304,6 +1304,13 @@ function formatItemCompletionFactor() {
   // 更新数值
   selfEvaluationForm.value.itemCompletionFactor = finalValue;
   
+  // 同步更新字符串中转值,用于验证
+  if (finalValue != null) {
+    itemCompletionFactorStr.value = finalValue.toString();
+  } else {
+    itemCompletionFactorStr.value = '';
+  }
+  
   // 同步更新临时输入值为格式化后的字符串显示
   if (finalValue != null) {
     tempItemCompletionFactorInput.value = finalValue.toString();
@@ -1321,6 +1328,7 @@ function onItemCompletionFactorInput(e: UniInputEvent) {
   // 检查输入值是否为空
   if (value == '') {
     selfEvaluationForm.value.itemCompletionFactor = null;
+    itemCompletionFactorStr.value = '';
   } else {
     // 检查是否为中间输入状态(如 '0.' 等以点结尾的数字)
     if (value.endsWith('.')) {
@@ -1334,9 +1342,12 @@ function onItemCompletionFactorInput(e: UniInputEvent) {
       if( numValue >= 0 && numValue <= 1){
         // 在input事件中直接使用解析后的数值
         selfEvaluationForm.value.itemCompletionFactor = numValue;
+        itemCompletionFactorStr.value = numValue.toString();
       } else {
         // 当超出范围时,设置实际值为边界值
-        selfEvaluationForm.value.itemCompletionFactor = numValue > 1 ? 1 : 0;
+        const clampedValue = numValue > 1 ? 1 : 0;
+        selfEvaluationForm.value.itemCompletionFactor = clampedValue;
+        itemCompletionFactorStr.value = clampedValue.toString();
       }
       
       // 更新可自评总分显示
@@ -1411,6 +1422,13 @@ function formatItemCompletionFactorSum() {
   // 更新数值
   selfEvaluationForm.value.itemCompletionFactorSum = finalValue;
   
+  // 同步更新字符串中转值,用于验证
+  if (finalValue != null) {
+    itemCompletionFactorSumStr.value = finalValue.toString();
+  } else {
+    itemCompletionFactorSumStr.value = '';
+  }
+  
   // 同步更新临时输入值为格式化后的字符串显示
   if (finalValue != null) {
     tempItemCompletionFactorSumInput.value = finalValue.toString();
@@ -1428,6 +1446,7 @@ function onItemCompletionFactorSumInput(e: UniInputEvent) {
   // 检查输入值是否为空
   if (value == '') {
     selfEvaluationForm.value.itemCompletionFactorSum = null;
+    itemCompletionFactorSumStr.value = '';
   } else {
     // 检查是否为中间输入状态(如 '0.' 等以点结尾的数字)
     if (value.endsWith('.')) {
@@ -1441,9 +1460,12 @@ function onItemCompletionFactorSumInput(e: UniInputEvent) {
       if( numValue >= 0 && numValue <= 1){
         // 在input事件中直接使用解析后的数值
         selfEvaluationForm.value.itemCompletionFactorSum = numValue;
+        itemCompletionFactorSumStr.value = numValue.toString();
       } else {
         // 当超出范围时,设置实际值为边界值
-        selfEvaluationForm.value.itemCompletionFactorSum = numValue > 1 ? 1 : 0;
+        const clampedValue = numValue > 1 ? 1 : 0;
+        selfEvaluationForm.value.itemCompletionFactorSum = clampedValue;
+        itemCompletionFactorSumStr.value = clampedValue.toString();
       } 
     }  
   }