From 82c481a33cc6cb47da48226b1064f0a9094ebc10 Mon Sep 17 00:00:00 2001
From: dengzedong <dengzedong@email>
Date: 星期四, 20 二月 2025 11:32:24 +0800
Subject: [PATCH] 校验模型输入  一个ind_ascii类型输入独占一个端口

---
 src/views/model/pre/item/MmPredictItemForm.vue   |   23 +++++++++++++++++------
 src/api/model/sche/model/index.ts                |    1 +
 src/views/model/sche/model/ScheduleModelForm.vue |   15 +++++++++++++++
 3 files changed, 33 insertions(+), 6 deletions(-)

diff --git a/src/api/model/sche/model/index.ts b/src/api/model/sche/model/index.ts
index 51a9ce7..39a1184 100644
--- a/src/api/model/sche/model/index.ts
+++ b/src/api/model/sche/model/index.ts
@@ -165,5 +165,6 @@
     'MergeItem': mergeItemList,
     'PLAN': planList,
     'IND': indList,
+    'IND_ASCII': indList,
   }
 }
diff --git a/src/views/model/pre/item/MmPredictItemForm.vue b/src/views/model/pre/item/MmPredictItemForm.vue
index 52eae1e..a583075 100644
--- a/src/views/model/pre/item/MmPredictItemForm.vue
+++ b/src/views/model/pre/item/MmPredictItemForm.vue
@@ -732,18 +732,30 @@
       return
     }
 
-    let flag = false
     dataForm.value.mmItemOutputList.forEach(e => {
       if (e.resultstr == undefined || e.resultstr === '' || e.resultType == undefined || e.resultType === ''
         || (e.resultType === 2 && (e.resultIndex == undefined || e.resultIndex === ''))
         || (e.iscumulant === 1 && e.cumuldivisor == undefined)
       ) {
-        message.error("模型输出数据异常")
-        flag = true
-        return
+        message.error("输出数据异常")
+        throw new Error('输出数据异常');
       }
     })
-    if (flag) return
+
+    //校验模型输入
+    dataForm.value.mmModelParamList.forEach(e => {
+      if (e.modelparamid == undefined || e.modelparamid == '') {
+        message.error("输入数据异常")
+        throw new Error('输入数据异常');
+      }
+      // ind_ascii类型输出的序号必须是1,且所在端口序号最大为1(一个ind_ascii类型输入独占一个端口)
+      if (e.modelparamtype === 'IND_ASCII') {
+        if (e.modelparamorder != 1 || dataForm.value.mmModelParamList.filter(p => p.modelparamportorder === e.modelparamportorder).length != 1) {
+          message.error("输入数据异常:IND_ASCII类型输入独占一个端口")
+          throw new Error('输入数据异常:IND_ASCII类型输入独占一个端口');
+        }
+      }
+    })
   }
   if (dataForm.value.itemtypename === 'MergeItem') {
     if (expressionList.value == undefined || expressionList.value.length <= 1) {
@@ -761,7 +773,6 @@
     })
     if (flag) return
   }
-
 
   // 提交请求
   formLoading.value = true
diff --git a/src/views/model/sche/model/ScheduleModelForm.vue b/src/views/model/sche/model/ScheduleModelForm.vue
index 90a536d..5cdf9e9 100644
--- a/src/views/model/sche/model/ScheduleModelForm.vue
+++ b/src/views/model/sche/model/ScheduleModelForm.vue
@@ -456,6 +456,21 @@
     if (!formRef) return
     const valid = await formRef.value.validate()
     if (!valid) return
+    //校验模型输入
+    formData.value.paramList.forEach(e => {
+      if (e.modelparamid == undefined || e.modelparamid == '') {
+        message.error("输入数据异常")
+        throw new Error('输入数据异常');
+      }
+      // ind_ascii类型输出的序号必须是1,且所在端口序号最大为1(一个ind_ascii类型输入独占一个端口)
+      if (e.modelparamtype === 'IND_ASCII') {
+        if (e.modelparamorder != 1 || formData.value.paramList.filter(p => p.modelparamportorder === e.modelparamportorder).length != 1) {
+          message.error("输入数据异常:IND_ASCII类型输入独占一个端口")
+          throw new Error('输入数据异常:IND_ASCII类型输入独占一个端口');
+        }
+      }
+    })
+
     // 提交请求
     formLoading.value = true
     try {

--
Gitblit v1.9.3