瀏覽代碼

激光测距仪表格联调

liujiejie 5 月之前
父節點
當前提交
a8811d9568

+ 69 - 86
src/views/laserRangeFinder/components/MultilevelTable.vue

@@ -1,108 +1,91 @@
 <!--
  * @Author: your name
  * @Date: 2024-12-09 16:41:31
- * @LastEditTime: 2024-12-09 16:51:10
+ * @LastEditTime: 2024-12-13 15:39:45
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/laserRangeFinder/components/MultilevelTable.vue
 -->
 <template>
   <el-table :data="tableData">
-    <el-table-column prop="date" label="序号"> </el-table-column>
-    <el-table-column prop="date" label="时间" min-width="120">
+    <el-table-column type="index" label="序号" width="60"> </el-table-column>
+    <el-table-column prop="acquisitionTime" label="时间" min-width="160">
     </el-table-column>
-    <el-table-column prop="date" label="场站"> </el-table-column>
-    <el-table-column prop="date" label="风机"> </el-table-column>
-    <el-table-column label="叶片角度偏差(°)">
-      <el-table-column prop="name" label="叶片1"> </el-table-column>
-      <el-table-column label="叶片2"> </el-table-column>
-      <el-table-column prop="zip" label="叶片3"> </el-table-column>
-      <el-table-column prop="zip" label="相对偏差"> </el-table-column>
+    <el-table-column prop="date" label="场站" min-width="120">
+      <template slot-scope="scope">
+        {{ windName }}
+      </template>
     </el-table-column>
-    <el-table-column label="叶片净空值(m)">
-      <el-table-column prop="name" label="叶片1"> </el-table-column>
-      <el-table-column label="叶片2"> </el-table-column>
-      <el-table-column prop="zip" label="叶片3"> </el-table-column>
-      <el-table-column prop="zip" label="平均"> </el-table-column>
+    <el-table-column prop="date" label="风机">
+      <template slot-scope="scope">
+        {{ windTurbineName }}
+      </template>
     </el-table-column>
-    <el-table-column label="叶片扭转变形(°)">
-      <el-table-column prop="name" label="叶片1"> </el-table-column>
-      <el-table-column label="叶片2"> </el-table-column>
-      <el-table-column prop="zip" label="叶片3"> </el-table-column>
-      <el-table-column prop="zip" label="平均"> </el-table-column>
+    <el-table-column label="叶片角度偏差(°)" align="center">
+      <el-table-column prop="blade1AngleDeviation" label="叶片1">
+      </el-table-column>
+      <el-table-column prop="blade2AngleDeviation" label="叶片2">
+      </el-table-column>
+      <el-table-column prop="blade3AngleDeviation" label="叶片3">
+      </el-table-column>
+      <el-table-column prop="bladeRelativeAngleDeviation" label="相对偏差">
+      </el-table-column>
     </el-table-column>
-    <el-table-column label="塔筒晃动">
-      <el-table-column prop="name" label="晃动幅值(mm)"> </el-table-column>
-      <el-table-column label="晃动主频(Hz)"> </el-table-column>
+    <el-table-column label="叶片净空值(m)" align="center">
+      <el-table-column prop="blade1ClearanceValue" label="叶片1">
+      </el-table-column>
+      <el-table-column prop="blade2ClearanceValue" label="叶片2">
+      </el-table-column>
+      <el-table-column prop="blade3ClearanceValue" label="叶片3">
+      </el-table-column>
+      <el-table-column prop="bladeRelativeClearanceValue" label="平均">
+      </el-table-column>
+    </el-table-column>
+    <el-table-column label="叶片扭转变形(°)" align="center">
+      <el-table-column prop="blade1TorsionalDeformation" label="叶片1">
+      </el-table-column>
+      <el-table-column prop="blade2TorsionalDeformation" label="叶片2">
+      </el-table-column>
+      <el-table-column prop="blade3TorsionalDeformation" label="叶片3">
+      </el-table-column>
+      <el-table-column prop="bladeRelativeTorsionalDeformation" label="平均">
+      </el-table-column>
+    </el-table-column>
+    <el-table-column label="塔筒晃动" align="center">
+      <el-table-column
+        min-width="140"
+        prop="towerSwayAmplitude"
+        label="晃动幅值(mm)"
+      >
+      </el-table-column>
+      <el-table-column
+        min-width="140"
+        prop="towerSwayMainFrequency"
+        label="晃动主频(Hz)"
+      >
+      </el-table-column>
+    </el-table-column>
+    <el-table-column
+      min-width="160"
+      prop="bladeCollectionFrequency"
+      label="叶片采集频率(Hz)"
+    >
+    </el-table-column>
+    <el-table-column
+      min-width="160"
+      prop="towerCollectionFrequency"
+      label="塔筒采集频率(Hz)"
+    >
     </el-table-column>
-    <el-table-column prop="date" label="叶片采集频率(Hz)"> </el-table-column>
-    <el-table-column prop="date" label="塔筒采集频率(Hz)"> </el-table-column>
   </el-table>
 </template>
 
 <script>
 export default {
-  data() {
-    return {
-      tableData: [
-        {
-          date: "2016-05-03",
-          name: "王小虎",
-          province: "上海",
-          city: "普陀区",
-          address: "上海市普陀区金沙江路 1518 弄",
-          zip: 200333,
-        },
-        {
-          date: "2016-05-02",
-          name: "王小虎",
-          province: "上海",
-          city: "普陀区",
-          address: "上海市普陀区金沙江路 1518 弄",
-          zip: 200333,
-        },
-        {
-          date: "2016-05-04",
-          name: "王小虎",
-          province: "上海",
-          city: "普陀区",
-          address: "上海市普陀区金沙江路 1518 弄",
-          zip: 200333,
-        },
-        {
-          date: "2016-05-01",
-          name: "王小虎",
-          province: "上海",
-          city: "普陀区",
-          address: "上海市普陀区金沙江路 1518 弄",
-          zip: 200333,
-        },
-        {
-          date: "2016-05-08",
-          name: "王小虎",
-          province: "上海",
-          city: "普陀区",
-          address: "上海市普陀区金沙江路 1518 弄",
-          zip: 200333,
-        },
-        {
-          date: "2016-05-06",
-          name: "王小虎",
-          province: "上海",
-          city: "普陀区",
-          address: "上海市普陀区金沙江路 1518 弄",
-          zip: 200333,
-        },
-        {
-          date: "2016-05-07",
-          name: "王小虎",
-          province: "上海",
-          city: "普陀区",
-          address: "上海市普陀区金沙江路 1518 弄",
-          zip: 200333,
-        },
-      ],
-    };
+  props: {
+    windName: "",
+    windTurbineName: "",
+    tableData: [],
   },
 };
 </script>

+ 83 - 87
src/views/laserRangeFinder/components/descrBox.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2024-12-09 16:24:28
- * @LastEditTime: 2024-12-10 16:19:15
+ * @LastEditTime: 2024-12-13 15:41:23
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/laserRangeFinder/components/descrBox.vue
@@ -21,28 +21,28 @@
             <div>叶片1</div>
             <div>角度偏差°</div>
           </template>
-          0
+          {{ currentRow && currentRow.blade1AngleDeviation }}
         </el-descriptions-item>
         <el-descriptions-item label="叶片2">
           <template slot="label">
             <div>叶片2</div>
             <div>角度偏差°</div>
           </template>
-          0
+          {{ currentRow && currentRow.blade2AngleDeviation }}
         </el-descriptions-item>
         <el-descriptions-item label="叶片3">
           <template slot="label">
             <div>叶片3</div>
             <div>角度偏差°</div>
           </template>
-          0
+          {{ currentRow && currentRow.blade3AngleDeviation }}
         </el-descriptions-item>
         <el-descriptions-item label="相对">
           <template slot="label">
             <div>相对</div>
             <div>角度偏差°</div>
           </template>
-          0
+          {{ currentRow && currentRow.bladeRelativeAngleDeviation }}
         </el-descriptions-item>
       </el-descriptions>
       <el-descriptions
@@ -57,28 +57,28 @@
             <div>叶片1</div>
             <div>净空值m</div>
           </template>
-          0
+          {{ currentRow && currentRow.blade1ClearanceValue }}
         </el-descriptions-item>
         <el-descriptions-item label="叶片2">
           <template slot="label">
             <div>叶片2</div>
             <div>净空值m</div>
           </template>
-          0
+          {{ currentRow && currentRow.blade2ClearanceValue }}
         </el-descriptions-item>
         <el-descriptions-item label="叶片3">
           <template slot="label">
             <div>叶片3</div>
             <div>净空值m</div>
           </template>
-          0
+          {{ currentRow && currentRow.blade3ClearanceValue }}
         </el-descriptions-item>
         <el-descriptions-item label="平均">
           <template slot="label">
             <div>平均</div>
             <div>净空值m</div>
           </template>
-          0
+          {{ currentRow && currentRow.bladeRelativeClearanceValue }}
         </el-descriptions-item>
       </el-descriptions>
       <el-descriptions
@@ -93,28 +93,28 @@
             <div>叶片1</div>
             <div>扭转角°</div>
           </template>
-          0
+          {{ currentRow && currentRow.blade1TorsionalDeformation }}
         </el-descriptions-item>
         <el-descriptions-item label="叶片2">
           <template slot="label">
             <div>叶片2</div>
             <div>扭转角°</div>
           </template>
-          0
+          {{ currentRow && currentRow.blade2TorsionalDeformation }}
         </el-descriptions-item>
         <el-descriptions-item label="叶片3">
           <template slot="label">
             <div>叶片3</div>
             <div>扭转角°</div>
           </template>
-          0
+          {{ currentRow && currentRow.blade3TorsionalDeformation }}
         </el-descriptions-item>
         <el-descriptions-item label="平均">
           <template slot="label">
             <div>平均</div>
             <div>扭转角°</div>
           </template>
-          0
+          {{ currentRow && currentRow.bladeRelativeTorsionalDeformation }}
         </el-descriptions-item>
       </el-descriptions>
       <el-descriptions
@@ -129,14 +129,14 @@
             <div>塔筒</div>
             <div>晃动幅值mm</div>
           </template>
-          0
+          {{ currentRow && currentRow.towerSwayAmplitude }}
         </el-descriptions-item>
         <el-descriptions-item label="叶片2">
           <template slot="label">
             <div>塔筒</div>
             <div>晃动主频Hz</div>
           </template>
-          0
+          {{ currentRow && currentRow.towerSwayMainFrequency }}
         </el-descriptions-item>
       </el-descriptions>
     </div>
@@ -149,12 +149,31 @@
       style="width: 100%"
       :max-height="type === 'init' ? '570' : '900'"
     >
-      <el-table-column type="index" label="排序"> </el-table-column>
-      <el-table-column prop="address" label="场站"> </el-table-column>
-      <el-table-column prop="address" label="风机"> </el-table-column>
-      <el-table-column prop="name" label="时间"> </el-table-column>
-      <el-table-column prop="address" label="叶片采集频率Hz"> </el-table-column>
-      <el-table-column prop="address" label="塔筒采集频率Hz"> </el-table-column>
+      <el-table-column type="index" label="序号"> </el-table-column>
+      <el-table-column prop="address" label="场站" min-width="120">
+        <template slot-scope="scope">
+          {{ windName }}
+        </template>
+      </el-table-column>
+      <el-table-column prop="address" label="风机">
+        <template slot-scope="scope">
+          {{ windTurbineName }}
+        </template>
+      </el-table-column>
+      <el-table-column min-width="160" prop="acquisitionTime" label="时间">
+      </el-table-column>
+      <el-table-column
+        min-width="160"
+        prop="bladeCollectionFrequency"
+        label="叶片采集频率Hz"
+      >
+      </el-table-column>
+      <el-table-column
+        min-width="160"
+        prop="towerCollectionFrequency"
+        label="塔筒采集频率Hz"
+      >
+      </el-table-column>
     </el-table>
   </div>
 </template>
@@ -162,72 +181,47 @@
 export default {
   props: {
     type: "",
+    tableData: [],
+    currentRow: {
+      type: Object,
+      default: () => ({
+        acquisitionTime: "", //采样时间
+        blade1AngleDeviation: "", //叶片1角度偏差
+        blade1ClearanceValue: "", //叶片1净空值
+        blade1TorsionalDeformation: "", //叶片1扭转变形
+        blade2AngleDeviation: "", //叶片2角度偏差
+        blade2ClearanceValue: "", //叶片2净空值
+        blade2TorsionalDeformation: "", //叶片2扭转变形
+        blade3AngleDeviation: "", //叶片3角度偏差
+        blade3ClearanceValue: "", //叶片3净空值
+        blade3TorsionalDeformation: "", //叶片3扭转变形
+        bladeCollectionFrequency: "", //叶片采集频率(HZ)
+        bladeRelativeAngleDeviation: "", //叶片角度偏差-相对偏差
+        bladeRelativeClearanceValue: "", //叶片净空值-平均
+        bladeRelativeTorsionalDeformation: "", //叶片扭转变形-平均
+        id: "", //唯一值
+        samplingFrequency: "", //采样率
+        towerCollectionFrequency: "", //塔筒采集频率(HZ)
+        towerSwayAmplitude: "", //塔筒晃动-晃动幅值
+        towerSwayMainFrequency: "", //塔筒晃动-晃动主频
+        windTurbineNumber: "", //风机编号
+      }), // 用于存储当前选中的行
+    },
+    currentIndex: 0,
+    windName: "",
+    windTurbineName: "",
   },
   data() {
-    return {
-      currentIndex: 0,
-      tableData: [
-        {
-          date: "2016-05-02",
-          name: "王小虎",
-          address: "上海市普陀区金沙江路 1518 弄",
-        },
-        {
-          date: "2016-05-04",
-          name: "王小虎",
-          address: "上海市普陀区金沙江路 1517 弄",
-        },
-        {
-          date: "2016-05-01",
-          name: "王小虎",
-          address: "上海市普陀区金沙江路 1519 弄",
-        },
-        {
-          date: "2016-05-03",
-          name: "王小虎",
-          address: "上海市普陀区金沙江路 1516 弄",
-        },
-        {
-          date: "2016-05-02",
-          name: "王小虎",
-          address: "上海市普陀区金沙江路 1518 弄",
-        },
-        {
-          date: "2016-05-04",
-          name: "王小虎",
-          address: "上海市普陀区金沙江路 1517 弄",
-        },
-        {
-          date: "2016-05-01",
-          name: "王小虎",
-          address: "上海市普陀区金沙江路 1519 弄",
-        },
-        {
-          date: "2016-05-03",
-          name: "王小虎",
-          address: "上海市普陀区金沙江路 1516 弄",
-        },
-        {
-          date: "2016-05-04",
-          name: "王小虎",
-          address: "上海市普陀区金沙江路 1517 弄",
-        },
-        {
-          date: "2016-05-01",
-          name: "王小虎",
-          address: "上海市普陀区金沙江路 1519 弄",
-        },
-        {
-          date: "2016-05-03",
-          name: "王小虎",
-          address: "上海市普陀区金沙江路 1516 弄",
-        },
-      ],
-      currentRow: null, // 用于存储当前选中的行
-      currentIndex: 0,
-    };
+    return {};
+  },
+  watch: {
+    windName(newVal, oldVal) {
+      console.log(newVal, oldVal, "newVal,oldVal");
+    },
+    windTurbineName(newVal, oldVal) {
+      console.log(newVal, oldVal, "newVal,oldVal");
+    },
   },
-
   methods: {
     setCurrent(row) {
       this.$nextTick(() => {
@@ -239,10 +233,12 @@ export default {
       });
     },
     handleCurrentChange(val) {
-      this.currentRow = val; // 处理当前选中行
       const index = this.tableData.indexOf(val); // 获取当前选中行的索引
-      this.currentIndex = index; // 更新当前索引
-      this.$emit("handleCurrentChange", val);
+      if (this.type === "init") {
+        this.$emit("handleInitCurrentChange", val, index);
+      } else if (this.type === "copy") {
+        this.$emit("handleCopyCurrentChange", val, index);
+      }
     },
   },
 };

+ 61 - 87
src/views/laserRangeFinder/index.vue

@@ -43,9 +43,9 @@
                 <el-form-item label="风机">
                   <el-select
                     v-model="formInline.unitvalue"
-                    @change="getchedian"
                     size="small"
                     placeholder="请选择"
+                    @change="handleWindTuebineData"
                   >
                     <el-option
                       v-for="item in unitoptions"
@@ -90,8 +90,9 @@
             <div class="boxContent">
               <div class="left" v-if="tabActiveName === 'init'">
                 <el-empty
+                  description="暂无数据,请先进行数据筛选"
                   :image-size="200"
-                  v-if="currentRow === null"
+                  v-if="currentInitRow === null"
                 ></el-empty>
                 <div v-else>
                   <InitCharts></InitCharts>
@@ -102,8 +103,13 @@
               <div class="right">
                 <DescrBox
                   type="init"
+                  :tableData="tableData"
                   ref="initTable"
-                  @handleCurrentChange="handleCurrentChange"
+                  :windName="windName"
+                  :windTurbineName="windTurbineName"
+                  :currentIndex="currentInitIndex"
+                  :currentRow="currentInitRow"
+                  @handleInitCurrentChange="handleInitCurrentChange"
                 ></DescrBox>
               </div>
             </div>
@@ -120,8 +126,9 @@
             <div class="boxContent" v-if="tabActiveName === 'copy'">
               <div class="left">
                 <el-empty
+                  description="暂无数据,请先进行数据筛选"
                   :image-size="200"
-                  v-if="currentRow === null"
+                  v-if="currentCopyRow === null"
                 ></el-empty>
                 <div v-else>
                   <PlotOfFit type="LeafRootOutline"></PlotOfFit>
@@ -134,7 +141,12 @@
                 <DescrBox
                   type="copy"
                   ref="copyTable"
-                  @handleCurrentChange="handleCurrentChange"
+                  :windName="windName"
+                  :windTurbineName="windTurbineName"
+                  :tableData="tableData"
+                  :currentRow="currentCopyRow"
+                  :currentIndex="currentCopyIndex"
+                  @handleCopyCurrentChange="handleCopyCurrentChange"
                 ></DescrBox>
               </div>
             </div>
@@ -149,7 +161,11 @@
               数据列表
             </span>
             <div>
-              <MultilevelTable></MultilevelTable>
+              <MultilevelTable
+                :windName="windName"
+                :windTurbineName="windTurbineName"
+                :tableData="tableData"
+              ></MultilevelTable>
             </div>
           </el-tab-pane>
         </el-tabs>
@@ -159,11 +175,9 @@
 </template>
 
 <script>
-import * as echarts from "echarts";
 import {
   getSysOrganizationAuthTreeByRoleId,
   windEngineGrouPage,
-  queryDetectionDic,
 } from "@/api/ledger.js";
 import DescrBox from "./components/descrBox.vue";
 import selecttree from "../../components/selecttree.vue";
@@ -184,26 +198,17 @@ export default {
         timevalue: "", //时间
       },
       companyCode: "", //单位表格中展示
-      parentOpt: [],
-      chartData: [],
-      chartLabels: [],
-      tableData: [],
-      data: [10, 20, 30, 40], // 假设是图表的数据
-      labels: ["2024/1/1", "2024/1/2", "2024/1/3", "2024/1/4"], // 假设是时间轴数据
-      currentIndex: 0,
+      parentOpt: [], //风场
       tableData: [], // 假设是来自父组件的数据
       company: "",
-      companyoptions: [],
-      unitvalue: "",
-      unitoptions: [],
-      monitoringvalue: "",
-      monitoringoptions: [],
-      timevalue: "",
-      tableData: [],
+      unitoptions: [], //风机list
       fourList: [],
-      currentRow: null, // 用于存储当前选中的行
-      currentIndex: 0,
-      isChartVisible: false,
+      currentInitRow: null, // 原始图用于存储当前选中的行
+      currentInitIndex: 0,
+      currentCopyRow: null, //拟合图用于存储当前选中的行
+      currentCopyIndex: 0,
+      windName: "",
+      windTurbineName: "",
     };
   },
   components: {
@@ -221,8 +226,21 @@ export default {
     //获取表格数据接口
     async getTableData() {
       try {
+        // companyCode: "", //单位
+        // unitvalue: "", //风机
+        const params = {
+          startTime: this.$formatDateTWO(this.formInline.timevalue[0]),
+          endTime: this.$formatDateTWO(this.formInline.timevalue[1]),
+          windCode: this.formInline.companyCode,
+          windTurbineNumber: this.formInline.unitvalue,
+        };
         console.log(this.formInline, "formInline");
-        const res = await axios.post("/WZLapi/laserData/getLaserData");
+        const res = await axios.post("/WZLapi/laserData/getLaserData", params);
+        if (res.data.code === 200) {
+          this.tableData = res.data.datas;
+        } else {
+          this.$message.warning(res.data.message);
+        }
       } catch (err) {
         this.$message.error(err);
       }
@@ -257,7 +275,12 @@ export default {
       });
       return processedData;
     },
+    handleWindTuebineData(data) {
+      this.windTurbineName = this.getWindTurbineLabel(data);
+    },
     parentChange(data) {
+      console.log(data, "data");
+      this.windName = data && data.companyName;
       this.maplist = data;
       this.maplistArr = data;
       let paramsData = {
@@ -265,7 +288,7 @@ export default {
         pageNum: 1,
         pageSize: 99,
       };
-      this.unitvalue = "";
+      // this.unitvalue = "";
       // 获取风机
       windEngineGrouPage(paramsData).then((res) => {
         this.unitoptions = res.data.list;
@@ -295,69 +318,20 @@ export default {
       // debugger;
       return [];
     },
-    // 获取测点
-    getchedian(value) {
-      queryDetectionDic({ engineCodes: value }).then((res) => {
-        this.monitoringoptions = res.data;
-      });
+    handleInitCurrentChange(val, ind) {
+      this.currentInitRow = val; // 处理当前选中行
+      this.currentInitIndex = ind; // 更新当前索引
     },
-    handleCurrentIndexUpdate(newIndex) {
-      this.currentIndex = newIndex;
-    },
-    setCurrent(row) {
-      this.$nextTick(() => {
-        if (this.$refs.singleTable) {
-          this.$refs.singleTable.setCurrentRow(row); // 设置当前行
-        } else {
-          console.warn("Cannot access $refs.singleTable: it's undefined.");
-        }
-      });
-    },
-    handleCurrentChange(val) {
-      this.currentRow = val; // 处理当前选中行
-      const index = this.tableData.indexOf(val); // 获取当前选中行的索引
-      this.currentIndex = index; // 更新当前索引
+    handleCopyCurrentChange(val, ind) {
+      this.currentCopyRow = val; // 处理当前选中行
+      this.currentCopyIndex = ind; // 更新当前索引
     },
 
-    generate(type) {
-      if (!this.currentRow) {
-        this.$message.warning("请先选择数据");
-        return;
-      }
-    },
-
-    // 缩小
-    lessen(index) {
-      if (!this.fourList[index].isMinimized) {
-        this.fourList[index].isMinimized = true;
-      }
-      console.log("1");
-    },
-    // 放大
-    amplifier(index) {
-      const item = this.fourList[index];
-      if (item.isMinimized) {
-        item.isMinimized = false;
-      }
-      console.log("2");
-    },
-    // 关闭
-    close(index) {
-      this.fourList.splice(index, 1);
-      console.log("3");
-    },
-    zhankai() {
-      this.fourList.forEach((item) => {
-        item.isMinimized = false;
-      });
-    },
-    suoxiao() {
-      this.fourList.forEach((item) => {
-        item.isMinimized = true;
-      });
-    },
-    guanbi() {
-      this.fourList = [];
+    getWindTurbineLabel(companyCode) {
+      const selectedOption = this.unitoptions?.find(
+        (option) => option.engineCode === companyCode
+      );
+      return selectedOption ? selectedOption.engineName : "";
     },
     onSubmit() {
       console.log("事件触发了");