Bladeren bron

修改bug 2769 添加规则处理详情

haojianlong 4 jaren geleden
bovenliggende
commit
81aff9fa62
2 gewijzigde bestanden met toevoegingen van 81 en 10 verwijderingen
  1. 12 2
      src/components/config_point/step3_edit/index.vue
  2. 69 8
      src/components/point/report/dataSource.vue

+ 12 - 2
src/components/config_point/step3_edit/index.vue

@@ -50,7 +50,7 @@
             </p>
             <!-- components -->
             <no-handle :ref='"noHandle"+index' v-if='it.DataRuleType == "无需处理,直接使用"' :noHandleShow='noHandleShow'></no-handle>
-            <auto-handle :ref='"autoHandle"+index' v-else-if='it.DataRuleType == "需自动单位转换"' :unitObj='it' :autoHandleShow='autoHandleShow'>
+            <auto-handle :ref='"autoHandle"+index' v-else-if='it.DataRuleType == "需自动单位转换"' :unitObj='it.unitObj' :autoHandleShow='autoHandleShow'>
             </auto-handle>
             <enum-handle :ref='"enumHandle"+index' v-else-if='it.DataRuleType == "需按设置枚举转换"' :enumHandleShow='enumHandleShow'></enum-handle>
             <formula-handle :ref='"formulaHandle"+index' v-else-if='it.DataRuleType == "需按公式转换"' :formulaHandleShow='formulaHandleShow'>
@@ -213,7 +213,7 @@ export default {
                 let componsplitHandle = `splitHandle${i}`
                 this.$refs[componsplitHandle][0].getForm(splitHandle => {
                   if (splitHandle) {
-                    this.typeList[i].other = formulaHandle
+                    this.typeList[i].other = splitHandle
                     // this.saveForm(this.form, splitHandle)
                   } else {
                     this.errMsg()
@@ -369,6 +369,8 @@ export default {
             // updateParams.data.Content[0].EquipmentMark = other.EquipmentMark
             break
           case '需拆分处理':
+            console.log('---------------')
+            console.log(t.other)
             let SplitPoints = t.other.devArr.length ? t.other.devArr : undefined
             let DataRuleContent4 = undefined
             var enum5 = null
@@ -390,6 +392,7 @@ export default {
               }
               ele.DataRuleContent = JSON.stringify([cutStr, enum5])
             })
+            console.log(SplitPoints)
             eachData.SplitPoints = SplitPoints;
             // otherParams = {
             // SplitPoints: SplitPoints
@@ -690,6 +693,13 @@ export default {
         })
       }
       this.typeList = this.typeList.map((t, i) => {
+        t.unitObj = {
+          infoPointCode: data[val[i][val[i].length - 1]].InfoPointCode,
+          infoPointName: data[val[i][val[i].length - 1]].InfoPointName,
+          dataSource: data[val[i][val[i].length - 1]].DataSource || '',
+          type: data[val[i][val[i].length - 1]].Type,
+          unit: data[val[i][val[i].length - 1]].Unit
+        }
         t.ValueDescription = this.delDataSource(data[val[i][val[i].length - 1]].DataSource)
         return t;
       })

+ 69 - 8
src/components/point/report/dataSource.vue

@@ -3,7 +3,7 @@
   <div id="dataSource" v-loading="loading">
     <div class="data-item" v-for="form in forms" :key="form.id">
       <el-form :model="form" label-width="150px">
-        <el-form-item label="数据源名称">
+        <el-form-item label="数据源名称:">
           {{form.Name || '--'}}
         </el-form-item>
         <el-form-item label="值单位说明:">
@@ -12,14 +12,17 @@
         <el-form-item label="原始点位值:">
           {{form.Data || '--'}}
         </el-form-item>
-        <el-form-item label="原始点位描述">
+        <el-form-item label="原始点位描述:">
           {{form.Description || '--'}}
         </el-form-item>
-        <el-form-item label="位置标签">
+        <el-form-item label="位置标签:">
           {{form.LocationFlag.toString() || '--'}}
         </el-form-item>
-        <el-form-item label="原始值处理规则详情:">
-          {{form.DataRuleContent  || '--'}}
+        <el-form-item label="原始值处理方式:">
+          {{form.DataRuleType  || '--'}}
+        </el-form-item>
+        <el-form-item label="原始值处理规则详情:">
+          {{form.des  || '--'}}
         </el-form-item>
       </el-form>
     </div>
@@ -35,7 +38,13 @@ export default {
     return {
       forms: [
       ],
-      loading: true
+      loading: true,
+      toMap: {
+        plus: '+',
+        minus: '-',
+        time: '*',
+        divide: '/',
+      }
     }
   },
   methods: {
@@ -46,9 +55,61 @@ export default {
         Filters: "Infos='" + this.tabFunNum + "'"
       };
       getTabFunNumSourceData(pa, res => {
-        this.forms = res.Content;
+        this.forms = res.Content.map(t => {
+          if (t.DataRuleContent) {
+            t.des = this.formatContent(t.DataRuleType, t.DataRuleContent, t.EquipmentMark);
+          }
+          return t;
+        });
         this.loading = false;
       });
+    },
+    formatContent(type, data, EquipmentMark) {
+      let str = '', json = JSON.parse(data);
+      if (type == '需按设置枚举转换') {
+        try {
+          json[0].content.forEach(t => {
+            str += `如果原始值为${t.from}时,则转换为标准值${t.to};`
+          })
+        } catch (err) {
+          console.log(err)
+        }
+      } else if (type == '需自动单位转换') {
+        try {
+          json[0].content.forEach(t => {
+            str = `原始值单位转换为${t.from};`
+          })
+        } catch (err) {
+          console.log(err)
+        }
+      } else if (type == '需按公式转换') {
+        try {
+          json.forEach(t => {
+            if (t.ruletype == "type4") {
+              str += `截取原始值第${t.content[0].from}位-第${t.content[0].to}位;`
+            } else if (t.ruletype == "type5") {
+              str += `仅提取其中的数值;`
+            } else if (t.ruletype == "type6") {
+              str += `数值用公式计算:(公式为:数值${this.toMap[t.content[0].calculationtype]}${t.content[0].value}公式计算);`
+            }
+          })
+        } catch (err) {
+          console.log(err)
+        }
+      } else if (type == '需拆分处理') {
+        try {
+          json.forEach(t => {
+            if (t.ruletype == "type4") {
+              str += `截取原始值第${t.content[0].from}位-第${t.content[0].to}位,为对象标识${EquipmentMark};`
+            } else if (t.ruletype == "type2") {
+              str += `如果截取部分的原始值为${t.content[0].from}时,则转换为标准值${t.content[0].to};`
+            }
+          })
+        } catch (err) {
+          console.log(err)
+        }
+      }
+      return str;
     }
   },
   props: {
@@ -72,7 +133,7 @@ export default {
 }
 .data-item {
   margin: 15px 10px;
-  box-shadow: 0px 4px 10px 0px rgba(0,0,0,0.2);
+  box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.2);
   background-color: white;
   padding: 10px 10px;
 }