From 2476a19dc152a7a048441be5402796a47504de1b Mon Sep 17 00:00:00 2001
From: dengzedong <dengzedong@email>
Date: 星期五, 06 六月 2025 14:06:19 +0800
Subject: [PATCH] 建议快照 上下限 越界时间

---
 src/views/model/sche/snapshotConf/det/index.vue         |    2 +
 src/views/model/sche/suggest/suggestSnapshot.vue        |   67 +++++++++++++++++++++++++++++----
 src/views/model/sche/snapshotConf/det/configDetForm.vue |   18 +++++++++
 3 files changed, 79 insertions(+), 8 deletions(-)

diff --git a/src/views/model/sche/snapshotConf/det/configDetForm.vue b/src/views/model/sche/snapshotConf/det/configDetForm.vue
index b5223aa..3f9cd5a 100644
--- a/src/views/model/sche/snapshotConf/det/configDetForm.vue
+++ b/src/views/model/sche/snapshotConf/det/configDetForm.vue
@@ -71,6 +71,18 @@
       </el-row>
       <el-row :gutter="20">
         <el-col :span="12">
+          <el-form-item label="上限" prop="limitH">
+            <el-input-number v-model="formData.limitH" placeholder=""/>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="下限" prop="limitL">
+            <el-input-number v-model="formData.limitL" placeholder=""/>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="20">
+        <el-col :span="12">
           <el-form-item label="拓展字段1" prop="ext1">
             <el-input v-model="formData.ext1" placeholder=""/>
           </el-form-item>
@@ -129,6 +141,8 @@
     dataNo: undefined,
     leftLength: undefined,
     rightLength: undefined,
+    limitH: undefined,
+    limitL: undefined,
     sort: undefined,
     ext1: undefined,
     ext2: undefined,
@@ -142,6 +156,8 @@
     dataNo: [{required: true, message: '不能为空', trigger: 'blur'}],
     leftLength: [{required: true, message: '不能为空', trigger: 'blur'}],
     rightLength: [{required: true, message: '不能为空', trigger: 'blur'}],
+    limitH: [{required: true, message: '不能为空', trigger: 'blur'}],
+    limitL: [{required: true, message: '不能为空', trigger: 'blur'}],
   })
   const formRef = ref() // 表单 Ref
 
@@ -203,6 +219,8 @@
       dataNo: undefined,
       leftLength: undefined,
       rightLength: undefined,
+      limitH: undefined,
+      limitL: undefined,
       sort: undefined,
       ext1: undefined,
       ext2: undefined,
diff --git a/src/views/model/sche/snapshotConf/det/index.vue b/src/views/model/sche/snapshotConf/det/index.vue
index 5ec4f28..b86551c 100644
--- a/src/views/model/sche/snapshotConf/det/index.vue
+++ b/src/views/model/sche/snapshotConf/det/index.vue
@@ -69,6 +69,8 @@
         <el-table-column prop="dataNo" label="数据编号"/>
         <el-table-column prop="leftLength" label="左侧长度(min)" width="80"/>
         <el-table-column prop="rightLength" label="右侧长度(min)" width="80"/>
+        <el-table-column prop="limitH" label="上限" width="80"/>
+        <el-table-column prop="limitL" label="下限" width="80"/>
         <el-table-column prop="sort" label="排序" width="80"/>
 <!--        <el-table-column prop="ext1" label="拓展字段1"/>-->
 <!--        <el-table-column prop="ext2" label="拓展字段2"/>-->
diff --git a/src/views/model/sche/suggest/suggestSnapshot.vue b/src/views/model/sche/suggest/suggestSnapshot.vue
index f23ae2e..ca89233 100644
--- a/src/views/model/sche/suggest/suggestSnapshot.vue
+++ b/src/views/model/sche/suggest/suggestSnapshot.vue
@@ -113,6 +113,64 @@
 
       if (!chartInfo) return chart
 
+      const markLineData = [
+          {
+            yAxis: chartInfo.data?.limitH, // 上限
+            label: {
+              show: true,
+              formatter: '上限',
+              position: 'insideStartTop',
+              color: '#FF9A3D'
+            },
+            lineStyle: {
+              color: '#FF9A3D',
+              type: 'dashed'
+            },
+          },
+          {
+            yAxis: chartInfo.data?.limitL, // 下限
+            label: {
+              show: true,
+              formatter: '下限',
+              position: 'insideStartBottom',
+              color: '#00C2FF'
+            },
+            lineStyle: {
+              color: '#00C2FF',
+              type: 'dashed'
+            },
+          },
+          {
+            xAxis: chartInfo.data?.scheduleTime || 0, // 真实数据分割线
+            label: {
+              show: true,
+              formatter: '预测时间',
+              position: 'end',
+              color: '#5DFF9E'
+            },
+            lineStyle: {
+              color: '#5DFF9E',
+            },
+          }
+        ]
+      // 冲顶触底时间
+      if (chartInfo.data?.overLimitTimes?.length > 0) {
+        chartInfo.data?.overLimitTimes.forEach(overLimitTime => {
+          markLineData.push({
+            xAxis: overLimitTime, // 真实数据分割线
+            label: {
+              show: false,
+              formatter: '预测时间',
+              position: 'end',
+              color: '#5DFF9E'
+            },
+            lineStyle: {
+              color: '#ff0000',
+            },
+          })
+        })
+      }
+
       const option = {
         title: {
           text: chartInfo.name,
@@ -138,14 +196,7 @@
             label: {
               show: false,
             },
-            data: [
-              {
-                xAxis: chartInfo.data?.scheduleTime || 0, // 真实数据分割线
-                lineStyle: {
-                  color: '#5DFF9E',
-                },
-              }
-            ],
+            data: markLineData,
           },
         }]
       }

--
Gitblit v1.9.3