Bläddra i källkod

新增描述提交接口

liujiejie 5 månader sedan
förälder
incheckning
e31b831dde

+ 94 - 22
src/views/overview/components/fault_all/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-13 13:56:55
- * @LastEditTime: 2025-01-15 15:53:32
+ * @LastEditTime: 2025-01-16 10:01:41
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/fault_all/index.vue
@@ -11,12 +11,19 @@
   <div class="type-variable">
     <!-- 全场故障统计 -->
     <div class="left">
-      <FilterChart :windList="windEngineGroupList" @getEnfineList="getEnfineList" @handlePrevious="handlePrevious"
-        @handleNext="handleNext"></FilterChart>
+      <FilterChart
+        :windList="windEngineGroupList"
+        @getEnfineList="getEnfineList"
+        @handlePrevious="handlePrevious"
+        @handleNext="handleNext"
+      ></FilterChart>
       <el-alert type="info" :closable="false">
         <template v-slot:title>
           <div style="display: flex; align-items: center">
-            <i class="el-icon-info" style="font-size: 20px; margin-right: 5px"></i>
+            <i
+              class="el-icon-info"
+              style="font-size: 20px; margin-right: 5px"
+            ></i>
             <h3>分析说明:</h3>
           </div>
         </template>
@@ -25,27 +32,49 @@
         </div>
       </el-alert>
       <div v-if="zongFaultCsvData.length > 0">
-        <FaultAll :faultTypes="zongFaultCsvData &&
-          zongFaultCsvData[0] &&
-          zongFaultCsvData[0].data.map((item) => item.fault_detail)
-          " :faultCounts="zongFaultCsvData &&
+        <FaultAll
+          :faultTypes="
+            zongFaultCsvData &&
+            zongFaultCsvData[0] &&
+            zongFaultCsvData[0].data.map((item) => item.fault_detail)
+          "
+          :faultCounts="
+            zongFaultCsvData &&
             zongFaultCsvData[0] &&
             zongFaultCsvData[0].data.map((item) => item.count)
-            " :faultDurations="zongFaultCsvData &&
-              zongFaultCsvData[0] &&
-              zongFaultCsvData[0].data.map((item) => item.fault_time_sum)
-              " :zongFaultCsvData="zongFaultCsvData"></FaultAll>
+          "
+          :faultDurations="
+            zongFaultCsvData &&
+            zongFaultCsvData[0] &&
+            zongFaultCsvData[0].data.map((item) => item.fault_time_sum)
+          "
+          :zongFaultCsvData="zongFaultCsvData"
+        ></FaultAll>
         <template v-for="(itemCsv, indCsv) in zongFaultCsvData">
-          <el-table :key="indCsv + 'indCsv'" :data="filteredData(itemCsv)" border style="width: 100%" align="center">
+          <el-table
+            :key="indCsv + 'indCsv'"
+            :data="filteredData(itemCsv)"
+            border
+            style="width: 100%"
+            align="center"
+          >
             <el-table-column prop="fault_detail" label="故障类型">
             </el-table-column>
             <el-table-column prop="count" sortable label="故障次数(次)">
             </el-table-column>
-            <el-table-column prop="fault_time_sum" sortable label="故障时长(秒)">
+            <el-table-column
+              prop="fault_time_sum"
+              sortable
+              label="故障时长(秒)"
+            >
             </el-table-column>
             <el-table-column align="right">
               <template slot="header" slot-scope="scope">
-                <el-input v-model="search" size="mini" placeholder="输入故障类型关键字搜索" />
+                <el-input
+                  v-model="search"
+                  size="mini"
+                  placeholder="输入故障类型关键字搜索"
+                />
               </template>
             </el-table-column>
           </el-table>
@@ -54,7 +83,12 @@
       <el-empty description="暂无分析记录" v-else></el-empty>
       <el-tabs value="first">
         <el-tab-pane label="意见描述" name="first">
-          <TinymceEditor ref="editor" v-model="comment" @input="handleEditorInput($event)" @onClick="onClick">
+          <TinymceEditor
+            ref="editor"
+            v-model="comment"
+            @input="handleEditorInput($event)"
+            @onClick="onClick"
+          >
           </TinymceEditor>
         </el-tab-pane>
       </el-tabs>
@@ -65,7 +99,11 @@
       </el-row>
     </div>
     <div class="right">
-      <DicCard :batchCode="initBatchCode" :analysisTypeCode="'fault'" :commentDescriptionVos="commentDescriptionVos">
+      <DicCard
+        :batchCode="initBatchCode"
+        :analysisTypeCode="'fault'"
+        :commentDescriptionVos="commentDescriptionVos"
+      >
       </DicCard>
     </div>
   </div>
@@ -106,7 +144,6 @@ export default {
       form: {
         value2: "",
       },
-
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
       comment: "",
@@ -115,7 +152,8 @@ export default {
       zongFaultCsvData: [],
       fenFaultCsvHeader: [],
       fenFaultCsvData: [],
-      commentDescriptionVos: [],//评论列表
+      commentDescriptionVos: [], //评论列表
+      editableTabs: [],
     };
   },
   computed: {
@@ -167,6 +205,29 @@ export default {
     }
   },
   methods: {
+    async handleComment() {
+      try {
+        await analysisCommentEdit({
+          batchCode: this.initBatchCode,
+          analysisTypeCode: this.analysisTypeCode,
+          commentList: this.editableTabs.map((item) => {
+            return {
+              commentTypeCode: item.commentTypeCode,
+              comment: item.commentTypeName === "分析评论" ? this.comment : "",
+            };
+          }),
+        });
+        this.$message({
+          type: "success",
+          message: "保存成功",
+        });
+        this.comment = "";
+        this.getAnalysisDetail();
+      } catch (e) {
+        console.error(e);
+        this.loading = false;
+      }
+    },
     onSubmit() {
       console.log("submit!");
     },
@@ -236,10 +297,21 @@ export default {
               ? undefined
               : this.fieldEngineCodes,
         });
+        if (
+          result.data &&
+          result.data[0] &&
+          result.data[0].commentTypeRelations
+        ) {
+          this.editableTabs = result.data[0].commentTypeRelations;
+        }
 
         //当前评论展示获取
-        if (result.data && result.data[0] && result.data[0].commentDescriptionVos) {
-          this.commentDescriptionVos = result.data[0].commentDescriptionVos
+        if (
+          result.data &&
+          result.data[0] &&
+          result.data[0].commentDescriptionVos
+        ) {
+          this.commentDescriptionVos = result.data[0].commentDescriptionVos;
         }
 
         if (result.data && result.data[0] && result.data[0].generalFiles) {
@@ -298,7 +370,7 @@ export default {
       }
       this.$emit("setInitBathCode", this.batchCodeList[index - 1]);
     },
-    onClick() { },
+    onClick() {},
   },
 };
 </script>

+ 86 - 18
src/views/overview/components/fault_unit/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-13 13:56:12
- * @LastEditTime: 2025-01-15 16:16:41
+ * @LastEditTime: 2025-01-16 10:02:43
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/fault_unit/index.vue
@@ -10,12 +10,19 @@
   <div class="type-variable">
     <!-- 机组故障统计 -->
     <div class="left">
-      <FilterChart :windList="windEngineGroupList" @getEnfineList="getEnfineList" @handlePrevious="handlePrevious"
-        @handleNext="handleNext"></FilterChart>
+      <FilterChart
+        :windList="windEngineGroupList"
+        @getEnfineList="getEnfineList"
+        @handlePrevious="handlePrevious"
+        @handleNext="handleNext"
+      ></FilterChart>
       <el-alert type="info" :closable="false">
         <template v-slot:title>
           <div style="display: flex; align-items: center">
-            <i class="el-icon-info" style="font-size: 20px; margin-right: 5px"></i>
+            <i
+              class="el-icon-info"
+              style="font-size: 20px; margin-right: 5px"
+            ></i>
             <h3>分析说明:</h3>
           </div>
         </template>
@@ -24,18 +31,31 @@
         </div>
       </el-alert>
       <div v-if="fenFaultCsvData.length > 0">
-        <FaultUnit :faultTypes="fenFaultCsvData &&
-          fenFaultCsvData[0] &&
-          fenFaultCsvData[0].data.map((item) => item.wind_turbine_name)
-          " :faultCounts="fenFaultCsvData &&
+        <FaultUnit
+          :faultTypes="
+            fenFaultCsvData &&
+            fenFaultCsvData[0] &&
+            fenFaultCsvData[0].data.map((item) => item.wind_turbine_name)
+          "
+          :faultCounts="
+            fenFaultCsvData &&
             fenFaultCsvData[0] &&
             fenFaultCsvData[0].data.map((item) => item.count)
-            " :faultDurations="fenFaultCsvData &&
+          "
+          :faultDurations="
+            fenFaultCsvData &&
             fenFaultCsvData[0] &&
             fenFaultCsvData[0].data.map((item) => item.fault_time)
-            " :fenFaultCsvData="fenFaultCsvData"></FaultUnit>
+          "
+          :fenFaultCsvData="fenFaultCsvData"
+        ></FaultUnit>
         <template v-for="itemCsv in fenFaultCsvData">
-          <el-table :data="filteredFenData(itemCsv)" border style="width: 100%" align="center">
+          <el-table
+            :data="filteredFenData(itemCsv)"
+            border
+            style="width: 100%"
+            align="center"
+          >
             <el-table-column prop="wind_turbine_name" label="风机名称">
             </el-table-column>
             <el-table-column prop="count" sortable label="故障次数(次)">
@@ -44,7 +64,11 @@
             </el-table-column>
             <el-table-column align="right">
               <template slot="header" slot-scope="scope">
-                <el-input v-model="searchFen" size="mini" placeholder="输入风机名称关键字搜索" />
+                <el-input
+                  v-model="searchFen"
+                  size="mini"
+                  placeholder="输入风机名称关键字搜索"
+                />
               </template>
             </el-table-column>
           </el-table>
@@ -53,7 +77,12 @@
       <el-empty description="暂无分析记录" v-else></el-empty>
       <el-tabs value="first">
         <el-tab-pane label="意见描述" name="first">
-          <TinymceEditor ref="editor" v-model="comment" @input="handleEditorInput($event)" @onClick="onClick">
+          <TinymceEditor
+            ref="editor"
+            v-model="comment"
+            @input="handleEditorInput($event)"
+            @onClick="onClick"
+          >
           </TinymceEditor>
         </el-tab-pane>
       </el-tabs>
@@ -64,7 +93,11 @@
       </el-row>
     </div>
     <div class="right">
-      <DicCard :batchCode="initBatchCode" :analysisTypeCode="'fault'" :commentDescriptionVos="commentDescriptionVos">
+      <DicCard
+        :batchCode="initBatchCode"
+        :analysisTypeCode="'fault'"
+        :commentDescriptionVos="commentDescriptionVos"
+      >
       </DicCard>
     </div>
   </div>
@@ -105,7 +138,7 @@ export default {
       form: {
         value2: "",
       },
-      commentDescriptionVos: [],//评论列表
+      commentDescriptionVos: [], //评论列表
       windEngineGroupList: [], //批次风机列表
       fieldEngineCodes: [], //选中风机
       comment: "",
@@ -114,6 +147,7 @@ export default {
       zongFaultCsvData: [],
       fenFaultCsvData: [],
       fenFaultCsvHeader: [],
+      editableTabs: [],
     };
   },
   computed: {
@@ -168,6 +202,29 @@ export default {
     onSubmit() {
       console.log("submit!");
     },
+    async handleComment() {
+      try {
+        await analysisCommentEdit({
+          batchCode: this.initBatchCode,
+          analysisTypeCode: this.analysisTypeCode,
+          commentList: this.editableTabs.map((item) => {
+            return {
+              commentTypeCode: item.commentTypeCode,
+              comment: item.commentTypeName === "分析评论" ? this.comment : "",
+            };
+          }),
+        });
+        this.$message({
+          type: "success",
+          message: "保存成功",
+        });
+        this.comment = "";
+        this.getAnalysisDetail();
+      } catch (e) {
+        console.error(e);
+        this.loading = false;
+      }
+    },
     // 封装的获取 CSV 数据方法
     fetchCsvData(analysisType, url) {
       axios
@@ -228,9 +285,20 @@ export default {
               ? undefined
               : this.fieldEngineCodes,
         });
+        if (
+          result.data &&
+          result.data[0] &&
+          result.data[0].commentTypeRelations
+        ) {
+          this.editableTabs = result.data[0].commentTypeRelations;
+        }
         //当前评论展示获取
-        if (result.data && result.data[0] && result.data[0].commentDescriptionVos) {
-          this.commentDescriptionVos = result.data[0].commentDescriptionVos
+        if (
+          result.data &&
+          result.data[0] &&
+          result.data[0].commentDescriptionVos
+        ) {
+          this.commentDescriptionVos = result.data[0].commentDescriptionVos;
         }
         if (result.data && result.data[0] && result.data[0].generalFiles) {
           result.data[0].generalFiles.map((item) => {
@@ -288,7 +356,7 @@ export default {
       }
       this.$emit("setInitBathCode", this.batchCodeList[index - 1]);
     },
-    onClick() { },
+    onClick() {},
   },
 };
 </script>

+ 70 - 13
src/views/overview/components/pitch_tsr_cp/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-09 18:09:55
- * @LastEditTime: 2025-01-15 16:31:29
+ * @LastEditTime: 2025-01-16 10:03:48
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/pitch_tsr_cp/index.vue
@@ -11,12 +11,19 @@
   <div class="type-variable">
     <!-- 动态偏航误差分析--只有分图不存在总图 -->
     <div class="left">
-      <FilterChart :windList="windEngineGroupList" @getEnfineList="getEnfineList" @handlePrevious="handlePrevious"
-        @handleNext="handleNext"></FilterChart>
+      <FilterChart
+        :windList="windEngineGroupList"
+        @getEnfineList="getEnfineList"
+        @handlePrevious="handlePrevious"
+        @handleNext="handleNext"
+      ></FilterChart>
       <el-alert type="info" :closable="false">
         <template v-slot:title>
           <div style="display: flex; align-items: center">
-            <i class="el-icon-info" style="font-size: 20px; margin-right: 5px"></i>
+            <i
+              class="el-icon-info"
+              style="font-size: 20px; margin-right: 5px"
+            ></i>
             <h3>分析说明:</h3>
           </div>
         </template>
@@ -26,15 +33,27 @@
       </el-alert>
       <div class="charts" v-if="diagramRelationsDatas">
         <template v-for="(itemChart, indChart) in diagramRelationsDatas">
-          <TwoDMarkersChart :key="itemChart.fieldEngineCode" @getResult="getResult" @changeRequestNum="changeRequestNum"
-            :result="requestResult" :index="indChart" :ref="itemChart.fieldEngineCode" :fileAddr="itemChart.fileAddr">
+          <TwoDMarkersChart
+            :key="itemChart.fieldEngineCode"
+            @getResult="getResult"
+            @changeRequestNum="changeRequestNum"
+            :result="requestResult"
+            :index="indChart"
+            :ref="itemChart.fieldEngineCode"
+            :fileAddr="itemChart.fileAddr"
+          >
           </TwoDMarkersChart>
         </template>
       </div>
       <el-empty description="暂无分析记录" v-else></el-empty>
       <el-tabs value="first">
         <el-tab-pane label="意见描述" name="first">
-          <TinymceEditor ref="editor" v-model="comment" @input="handleEditorInput($event)" @onClick="onClick">
+          <TinymceEditor
+            ref="editor"
+            v-model="comment"
+            @input="handleEditorInput($event)"
+            @onClick="onClick"
+          >
           </TinymceEditor>
         </el-tab-pane>
       </el-tabs>
@@ -45,8 +64,11 @@
       </el-row>
     </div>
     <div class="right">
-      <DicCard :batchCode="initBatchCode" :analysisTypeCode="analysisTypeCode"
-        :commentDescriptionVos="commentDescriptionVos">
+      <DicCard
+        :batchCode="initBatchCode"
+        :analysisTypeCode="analysisTypeCode"
+        :commentDescriptionVos="commentDescriptionVos"
+      >
       </DicCard>
     </div>
   </div>
@@ -93,7 +115,8 @@ export default {
       diagramRelationsDatas: [], //分图,
       requestResult: [], // 请求结果
       requestRecord: [],
-      commentDescriptionVos: [],//评论列表
+      commentDescriptionVos: [], //评论列表
+      editableTabs: [],
     };
   },
   watch: {
@@ -114,6 +137,29 @@ export default {
     }
   },
   methods: {
+    async handleComment() {
+      try {
+        await analysisCommentEdit({
+          batchCode: this.initBatchCode,
+          analysisTypeCode: this.analysisTypeCode,
+          commentList: this.editableTabs.map((item) => {
+            return {
+              commentTypeCode: item.commentTypeCode,
+              comment: item.commentTypeName === "分析评论" ? this.comment : "",
+            };
+          }),
+        });
+        this.$message({
+          type: "success",
+          message: "保存成功",
+        });
+        this.comment = "";
+        this.getAnalysisDetail();
+      } catch (e) {
+        console.error(e);
+        this.loading = false;
+      }
+    },
     getResult({ index, result }) {
       console.log(index, result);
       this.$set(this.requestResult, index, result);
@@ -169,9 +215,20 @@ export default {
               ? undefined
               : this.fieldEngineCodes,
         });
+        if (
+          result.data &&
+          result.data[0] &&
+          result.data[0].commentTypeRelations
+        ) {
+          this.editableTabs = result.data[0].commentTypeRelations;
+        }
         //当前评论展示获取
-        if (result.data && result.data[0] && result.data[0].commentDescriptionVos) {
-          this.commentDescriptionVos = result.data[0].commentDescriptionVos
+        if (
+          result.data &&
+          result.data[0] &&
+          result.data[0].commentDescriptionVos
+        ) {
+          this.commentDescriptionVos = result.data[0].commentDescriptionVos;
         }
         this.generalFilesDatas =
           result.data && result.data[0] && result.data[0].generalFiles; //总图数据
@@ -222,7 +279,7 @@ export default {
       }
       this.$emit("setInitBathCode", this.batchCodeList[index - 1]);
     },
-    onClick() { },
+    onClick() {},
   },
 };
 </script>

+ 32 - 1
src/views/overview/components/yaw_error_density/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2025-01-10 09:26:12
- * @LastEditTime: 2025-01-16 09:06:36
+ * @LastEditTime: 2025-01-16 10:04:45
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/overview/components/yaw_error_density/index.vue
@@ -115,6 +115,7 @@ export default {
       requestResult: [], // 请求结果
       requestRecord: [],
       commentDescriptionVos: [], //评论列表
+      editableTabs: [],
     };
   },
   watch: {
@@ -135,6 +136,29 @@ export default {
     }
   },
   methods: {
+    async handleComment() {
+      try {
+        await analysisCommentEdit({
+          batchCode: this.initBatchCode,
+          analysisTypeCode: this.analysisTypeCode,
+          commentList: this.editableTabs.map((item) => {
+            return {
+              commentTypeCode: item.commentTypeCode,
+              comment: item.commentTypeName === "分析评论" ? this.comment : "",
+            };
+          }),
+        });
+        this.$message({
+          type: "success",
+          message: "保存成功",
+        });
+        this.comment = "";
+        this.getAnalysisDetail();
+      } catch (e) {
+        console.error(e);
+        this.loading = false;
+      }
+    },
     getResult({ index, result }) {
       console.log(index, result);
       this.$set(this.requestResult, index, result);
@@ -190,6 +214,13 @@ export default {
               ? undefined
               : this.fieldEngineCodes,
         });
+        if (
+          result.data &&
+          result.data[0] &&
+          result.data[0].commentTypeRelations
+        ) {
+          this.editableTabs = result.data[0].commentTypeRelations;
+        }
         //当前评论展示获取
         if (
           result.data &&