From 1360f46832c70b30d50d7afa20a501ac59cb397d Mon Sep 17 00:00:00 2001
From: dengzedong <dengzedong@email>
Date: 星期五, 16 五月 2025 10:33:11 +0800
Subject: [PATCH] 是否累计负数 getIntDictOptions(DICT_TYPE.COM_IS_INT)

---
 src/views/data/point/DaPointForm.vue |  179 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 173 insertions(+), 6 deletions(-)

diff --git a/src/views/data/point/DaPointForm.vue b/src/views/data/point/DaPointForm.vue
index ac36580..43cb4f2 100644
--- a/src/views/data/point/DaPointForm.vue
+++ b/src/views/data/point/DaPointForm.vue
@@ -25,6 +25,7 @@
             <el-select
               v-model="formData.pointType"
               clearable
+              :disabled = "formType !== 'create'"
               placeholder="请选择测点类型"
             >
               <el-option
@@ -123,7 +124,7 @@
           </el-form-item>
         </el-col>
       </el-row>
-      <!--计量点-->
+      <!--测量点-->
       <el-row v-if="formData.pointType === 'MEASURE'">
         <el-col :span="24">
           <el-form-item prop="sourceOption" label="数据源">
@@ -135,6 +136,7 @@
           </el-form-item>
         </el-col>
       </el-row>
+      <!--测量点-->
       <el-row v-if="formData.pointType === 'MEASURE'">
         <el-col :span="12">
           <el-form-item label="测量值类型" prop="measurePoint.valueType">
@@ -283,6 +285,122 @@
           </el-form-item>
         </el-col>
       </el-row>
+      <!--累计点-->
+      <el-row :gutter="20" v-if="formData.pointType === 'CUMULATE'">
+        <el-col :span="24">
+          <el-form-item label="瞬时测点" prop="cumulatePoint.momentPoint">
+            <el-select
+              v-model="formData.cumulatePoint.momentPoint"
+              filterable
+              placeholder="请选择">
+              <el-option
+                v-for="(item, index) in pointList2"
+                :key="index"
+                :label="item.pointName"
+                :value="item.pointNo"/>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="累计长度" prop="cumulatePoint.length">
+            <el-input-number v-model="formData.cumulatePoint.length" style="width: 100%"
+                             :min="1" :max="3000"
+                             :controls="false"/>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="累计单位" prop="cumulatePoint.cumulateUnit">
+            <el-select
+              v-model="formData.cumulatePoint.cumulateUnit"
+              placeholder="请选择累计单位"
+            >
+              <el-option
+                v-for="dict in getDictOptions(DICT_TYPE.CUMULATEUNIT)"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="除数" prop="cumulatePoint.divisor">
+            <el-input-number v-model="formData.cumulatePoint.divisor" style="width: 100%"
+                             :min="1" :max="3000"
+                             :controls="false"/>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="是否累计负数" prop="cumulatePoint.isCumuNeg">
+            <el-select
+              v-model="formData.cumulatePoint.isCumuNeg"
+              placeholder="请选择是否累计负数"
+            >
+              <el-option
+                v-for="dict in getIntDictOptions(DICT_TYPE.COM_IS_INT)"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
+
+      </el-row>
+      <!--极值点-->
+      <el-row :gutter="20" v-if="formData.pointType === 'EXTREMAL'">
+        <el-col :span="24">
+          <el-form-item label="瞬时测点" prop="extremalPoint.momentPoint">
+            <el-select
+              v-model="formData.extremalPoint.momentPoint"
+              filterable
+              placeholder="请选择">
+              <el-option
+                v-for="(item, index) in pointList2"
+                :key="index"
+                :label="item.pointName"
+                :value="item.pointNo"/>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="统计长度" prop="extremalPoint.length">
+            <el-input-number v-model="formData.extremalPoint.length" style="width: 100%"
+                             :min="1" :max="1440 * 30"
+                             :controls="false"/>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="统计单位" prop="extremalPoint.extremalUnit">
+            <el-select
+              v-model="formData.extremalPoint.extremalUnit"
+              placeholder="请选择统计单位"
+            >
+              <el-option
+                v-for="dict in getDictOptions(DICT_TYPE.EXTREMALUNIT)"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="统计类型" prop="extremalPoint.extremalType">
+            <el-select
+              v-model="formData.extremalPoint.extremalType"
+              placeholder="请选择统计类型"
+            >
+              <el-option
+                v-for="dict in getDictOptions(DICT_TYPE.EXTREMALTYPE)"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
     </el-form>
     <template #footer>
       <el-button :disabled="formLoading" type="primary" @click="submitForm">确 定</el-button>
@@ -294,6 +412,7 @@
 import * as DaPoint from '@/api/data/da/point'
 import * as TagApi from '@/api/data/channel/tag'
 import {DICT_TYPE, getDictOptions, getIntDictOptions} from "@/utils/dict";
+import {getPointSimpleList} from "@/api/data/da/point";
 
 defineOptions({name: 'DataDaPointForm'})
 
@@ -310,7 +429,14 @@
   pointNo: ''
 }])
 const queryParams = reactive({
-  pointType: "MEASURE"
+  pointTypes: "MEASURE,CONSTANT",
+})
+const pointList2 = ref([{
+  pointName: '',
+  pointNo: ''
+}])
+const queryParams2 = reactive({
+  pointTypes: "MEASURE,CONSTANT,CALCULATE",
 })
 const operatorList = ref(['+', '-', '*', '/', '&', '|', '!', '>', '<'])
 const formData = ref({
@@ -343,6 +469,21 @@
     tagNo: '',
     dimension: '',
     valueType: '',
+  },
+  cumulatePoint: {
+    id: '',
+    pointId: '',
+    momentPoint: '',
+    length: '',
+    divisor: ''
+  },
+  extremalPoint: {
+    id: '',
+    pointId: '',
+    momentPoint: '',
+    length: '',
+    extremalUnit: '',
+    extremalType: ''
   }
 })
 const formRules = reactive({
@@ -350,8 +491,12 @@
   pointType: [{required: true, message: '测点类型不能为空', trigger: 'blur'}],
   dataType: [{required: true, message: '数据类型不能为空', trigger: 'blur'}],
   minfreqid: [{required: true, message: '采集频率不能为空', trigger: 'blur'}],
-  "measurePoint.valueType": [{required: true, message: '采集频率不能为空', trigger: 'blur'}],
-  "measurePoint.dimension": [{required: true, message: '采集频率不能为空', trigger: 'blur'}],
+  "measurePoint.valueType": [{required: true, message: '值类型不能为空', trigger: 'blur'}],
+  "measurePoint.dimension": [{required: true, message: '平滑尺度不能为空', trigger: 'blur'}],
+  "cumulatePoint.momentPoint": [{required: true, message: '累计测点不能为空', trigger: 'blur'}],
+  "cumulatePoint.length": [{required: true, message: '累计长度不能为空', trigger: 'blur'}],
+  "cumulatePoint.divisor": [{required: true, message: '除数不能为空', trigger: 'blur'}],
+  "extremalPoint.momentPoint": [{required: true, message: '测点不能为空', trigger: 'blur'}],
 })
 const formRef = ref() // 表单 Ref
 
@@ -363,6 +508,7 @@
   resetForm()
   getSourceOption()
   getPointList()
+  getPointList2()
   // 修改时,设置数据
   if (id) {
     formLoading.value = true
@@ -447,7 +593,7 @@
     unittransfactor: 1,
     defaultValue: 0,
     maxValue: 100000000,
-    minValue: 0,
+    minValue: -100000000,
     minfreqid: undefined,
     remark: undefined,
     isEnable: 1,
@@ -465,6 +611,23 @@
       tagNo: '',
       dimension: '1',
       valueType: 'SIMULATE',
+    },
+    cumulatePoint: {
+      id: '',
+      pointId: '',
+      momentPoint: '',
+      length: 60,
+      cumulateUnit: 'min',
+      isCumuNeg: 1,
+      divisor: 60
+    },
+    extremalPoint: {
+      id: '',
+      pointId: '',
+      momentPoint: '',
+      length: '',
+      extremalUnit: 'min',
+      extremalType: 'max'
     }
   }
   formRef.value?.resetFields()
@@ -525,7 +688,11 @@
 }
 
 const getPointList = async () => {
-  pointList.value = await DaPoint.getPointList(queryParams)
+  pointList.value = await DaPoint.getPointSimpleList(queryParams)
+}
+
+const getPointList2 = async () => {
+  pointList2.value = await DaPoint.getPointSimpleList(queryParams2)
 }
 
 const getInfo = async (id) => {

--
Gitblit v1.9.3