瀏覽代碼

Merge branch 'master' of http://192.168.50.233:3000/rui.jiang/performance-test

rui.jiang 10 月之前
父節點
當前提交
a2c5b9a7d9

+ 17 - 1
src/api/dataManage.js

@@ -1,12 +1,28 @@
 /*
  * @Author: your name
  * @Date: 2024-06-04 09:48:21
- * @LastEditTime: 2024-07-05 15:34:58
+ * @LastEditTime: 2024-07-18 09:31:19
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /dashengmag/performance-test/src/api/dataManage.js
  */
 import request from "@/utils/request";
+//查询转换数组
+export function queryDataTransferGroup(data) {
+  return request({
+    url: "/energy-manage-service/dataTransfer/queryDataTransferGroup",
+    method: "get",
+    params: data,
+  });
+}
+//查询批次下数据转换信息
+export function queryDataTransferByBatchCode(data) {
+  return request({
+    url: "/energy-manage-service/dataTransfer/queryDataTransferByBatchCode",
+    method: "get",
+    params: data,
+  });
+}
 
 export function queryDataTransferList(data) {
   return request({

+ 9 - 1
src/api/performance.js

@@ -1,12 +1,20 @@
 /*
  * @Author: your name
  * @Date: 2024-06-03 09:29:50
- * @LastEditTime: 2024-07-16 10:10:05
+ * @LastEditTime: 2024-07-17 09:55:52
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/api/performance。.js
  */
 import request from "@/utils/request";
+//转换数据时间
+export function queryDataTime(data) {
+  return request({
+    url: "/energy-manage-service/dataTransfer/queryDataTime",
+    method: "get",
+    params: data,
+  });
+}
 //分析类型查询
 export function queryAnalysisedType(data) {
   return request({

+ 8 - 0
src/styles/global.scss

@@ -109,3 +109,11 @@
 .el-tag--plain .el-tag__close:hover {
   background-color: #ccc !important;
 }
+.el-progress {
+  display: flex;
+  justify-content: space-between;
+  .el-progress__text {
+    font-size: 16px !important;
+    width: 55px;
+  }
+}

+ 74 - 0
src/views/dataAdministration/components/WindCodeAndTypeForPlt.vue

@@ -0,0 +1,74 @@
+<template>
+  <div>
+    <el-form
+      :inline="true"
+      ref="fromPlt"
+      class="demo-form-inline"
+      label-width="170px"
+      :model="formData"
+    >
+      <el-row>
+        <el-col :span="12" v-for="item in pltList" :key="item.key">
+          <el-form-item :label="item.name" :prop="item.key">
+            <el-input
+              size="small"
+              v-model="formData[item.key]"
+              :placeholder="item.name"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+  </div>
+</template>
+
+<script>
+import list from "./windCodeForPlt";
+import axios from "axios";
+export default {
+  data() {
+    return {
+      pltList: [],
+      formData: {}, // 表单数据对象
+    };
+  },
+  created() {
+    this.pltList = [...list];
+    this.initializeFormData();
+  },
+  methods: {
+    initializeFormData() {
+      // 初始化 formData 对象
+      this.pltList.forEach((item) => {
+        this.$set(this.formData, item.key, item.value);
+      });
+    },
+    reset(from) {
+      this.$refs[from].resetFields();
+    },
+    //编辑回显
+    reSetByWindCodeAndTypeForPlt(obj) {
+      const token = JSON.parse(sessionStorage.getItem("vuex"))?.auth?.userInfo
+        ?.token;
+      axios
+        .post(
+          "/transDataWeb/transConf/getByWindCodeAndTypeForPlt",
+          {
+            ...obj,
+          },
+          {
+            headers: {
+              token,
+            },
+          }
+        )
+        .then((res) => {
+          if (res.data.code === 200) {
+            this.formData = { ...res.data.datas };
+          }
+        })
+        .catch((error) => {});
+    },
+  },
+};
+</script>

+ 208 - 0
src/views/dataAdministration/components/windCodeForPlt.js

@@ -0,0 +1,208 @@
+/*
+ * @Author: your name
+ * @Date: 2024-07-18 11:08:13
+ * @LastEditTime: 2024-07-18 14:19:44
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/dataAdministration/components/windCodeForPlt.js
+ */
+const list = [
+  {
+    key: "windTurbineNumber",
+    name: "风机编号",
+    value: "",
+  },
+  {
+    key: "timeStamp",
+    name: "时间",
+    value: "",
+  },
+  {
+    key: "activePower",
+    name: "有功功率",
+    value: "",
+  },
+  {
+    key: "rotorSpeed",
+    name: "风轮转速",
+    value: "",
+  },
+  {
+    key: "generatorSpeed",
+    name: "发电机转速",
+    value: "",
+  },
+  {
+    key: "windVelocity",
+    name: "风速",
+    value: "",
+  },
+  {
+    key: "pitchAngleBlade1",
+    name: "桨距角1",
+    value: "",
+  },
+  {
+    key: "pitchAngleBlade2",
+    name: "桨距角2",
+    value: "",
+  },
+  {
+    key: "pitchAngleBlade3",
+    name: "桨距角3",
+    value: "",
+  },
+  {
+    key: "cabinPosition",
+    name: "机舱位置",
+    value: "",
+  },
+  {
+    key: "trueWindDirection",
+    name: "绝对风向",
+    value: "",
+  },
+  {
+    key: "yawError1",
+    name: "对风角度",
+    value: "",
+  },
+  {
+    key: "twistedCableAngle",
+    name: "扭缆角度",
+    value: "",
+  },
+
+  {
+    key: "mainBearingTemperature",
+    name: "主轴承轴承温度",
+    value: "",
+  },
+  {
+    key: "gearboxOilTemperature",
+    name: "齿轮箱油温",
+    value: "",
+  },
+  {
+    key: "gearboxLowSpeedShaftBearingTemperature",
+    name: "齿轮箱低速轴轴承温度",
+    value: "",
+  },
+  {
+    key: "gearboxmediumSpeedShaftbearingTemperature",
+    name: "齿轮箱中速轴轴承温度",
+    value: "",
+  },
+  {
+    key: "gearboxHighSpeedShaftBearingTemperature",
+    name: "齿轮箱高速轴轴承温度",
+    value: "",
+  },
+  {
+    key: "generatordriveEndBearingTemperature",
+    name: "发电机驱动端轴承温度",
+    value: "",
+  },
+  {
+    key: "generatornonDriveEndBearingTemperature",
+    name: "发电机非驱动端轴承温度",
+    value: "",
+  },
+  {
+    key: "cabinTemperature",
+    name: "机舱内温度",
+    value: "",
+  },
+  {
+    key: "outsideCabinTemperature",
+    name: "环境温度",
+    value: "",
+  },
+  {
+    key: "generatorWinding1Temperature",
+    name: "发电机绕组1温度",
+    value: "",
+  },
+  {
+    key: "generatorWinding2Temperature",
+    name: "发电机绕组2温度",
+    value: "",
+  },
+  {
+    key: "generatorWinding3Temperature",
+    name: "发电机绕组3温度",
+    value: "",
+  },
+  {
+    key: "frontBackVibrationOfTheCabin",
+    name: "机舱前后振动",
+    value: "",
+  },
+  {
+    key: "sideToSideVibrationOfTheCabin",
+    name: "机舱左右振动",
+    value: "",
+  },
+  {
+    key: "requiredGearboxSpeed",
+    name: "齿轮箱转速",
+    value: "",
+  },
+  {
+    key: "inverterSpeedMasterControl",
+    name: "变频器转速(主控)",
+    value: "",
+  },
+  {
+    key: "actualTorque",
+    name: "实际力矩",
+    value: "",
+  },
+  {
+    key: "givenTorque",
+    name: "给定力矩",
+    value: "",
+  },
+
+  {
+    key: "clockwiseYawCount",
+    name: "顺时针偏航次数",
+    value: "",
+  },
+  {
+    key: "counterclockwiseYawCount",
+    name: "逆时针偏航次数",
+    value: "",
+  },
+  {
+    key: "unusable",
+    name: "不可利用",
+    value: "",
+  },
+  {
+    key: "powerCurveAvailable",
+    name: "功率曲线可用",
+    value: "",
+  },
+  {
+    key: "setValueOfActivePower",
+    name: "有功功率设定值",
+    value: "",
+  },
+  {
+    key: "windTurbineStatus",
+    name: "风机状态1",
+    value: "",
+  },
+  {
+    key: "windTurbineStatus2",
+    name: "风机状态2",
+    value: "",
+  },
+  {
+    key: "turbulenceIntensity",
+    name: "湍流强度",
+    value: "",
+  },
+];
+export default list;

+ 173 - 113
src/views/dataAdministration/index.vue

@@ -14,7 +14,14 @@
             size="small"
           ></el-input>
         </el-form-item>
-        <el-form-item label="状态:" prop="transferState">
+        <el-form-item label="风场名称:" prop="fieldName">
+          <el-input
+            v-model="formInline.fieldName"
+            placeholder="请输入风场名称"
+            size="small"
+          ></el-input>
+        </el-form-item>
+        <!-- <el-form-item label="状态:" prop="transferState">
           <el-select
             v-model="formInline.transferState"
             placeholder="请选择状态"
@@ -27,7 +34,7 @@
               :value="item.value"
             ></el-option>
           </el-select>
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item>
           <el-button type="primary" @click="onSubmit" size="small"
             >查询</el-button
@@ -50,20 +57,17 @@
         class="center-align-table"
         :data="tableData"
         border
-        :cell-style="rowStyle"
         stripe
         style="width: 100%"
+        :row-key="(row) => row.uniqueCode"
+        lazy
+        :load="load"
+        :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
       >
         <!-- Table Columns -->
-        <el-table-column
-          prop="fieldName"
-          align="center"
-          label="风场名称"
-          min-width="200"
-        >
+        <el-table-column prop="fieldName" label="风场名称" min-width="200">
         </el-table-column>
         <el-table-column
-          fixed
           prop="batchName"
           align="center"
           label="批次名称"
@@ -161,45 +165,48 @@
           min-width="150"
         >
           <template slot-scope="scope">
-            <el-button
-              v-if="
-                scope.row.transferState !== -1 &&
-                (scope.row.transferAddr !== null ||
-                  scope.row.transferAddr !== '')
-              "
-              v-hasPermi="['dataManage:dataAdministration:edit']"
-              @click="handleEdit(scope.row)"
-              type="text"
-              size="small"
-              >编辑</el-button
-            >
-            <el-button
-              @click="handleClick(scope.row.downloadUrl)"
-              type="text"
-              size="small"
-              >下载</el-button
-            >
-            <el-button
-              v-if="
-                scope.row.transferState == -1 &&
-                (scope.row.transferAddr === null ||
-                  scope.row.transferAddr === '')
-              "
-              v-hasPermi="['dataManage:dataAdministration:editState']"
-              @click="editTransferState(scope.row, '转换')"
-              type="text"
-              size="small"
-              >转换</el-button
-            >
-            <el-button
-              v-else
-              @click="editTransferState(scope.row, '重新转换')"
-              type="text"
-              size="small"
-              v-hasPermi="['dataManage:dataAdministration:editState']"
-              :disabled="scope.row.transferState == 0"
-              >重新转换</el-button
-            >
+            <div v-if="scope.row.transferType">
+              <el-button
+                v-if="
+                  scope.row.transferState !== -1 &&
+                  (scope.row.transferAddr !== null ||
+                    scope.row.transferAddr !== '')
+                "
+                v-hasPermi="['dataManage:dataAdministration:edit']"
+                @click="handleEdit(scope.row)"
+                type="text"
+                size="small"
+                >编辑</el-button
+              >
+              <el-button
+                @click="handleClick(scope.row.downloadUrl)"
+                type="text"
+                size="small"
+                >下载</el-button
+              >
+              <el-button
+                v-if="
+                  scope.row.transferState == -1 &&
+                  (scope.row.transferAddr === null ||
+                    scope.row.transferAddr === '')
+                "
+                v-hasPermi="['dataManage:dataAdministration:editState']"
+                @click="editTransferState(scope.row, '转换')"
+                type="text"
+                size="small"
+                >转换</el-button
+              >
+              <el-button
+                v-else
+                @click="editTransferState(scope.row, '重新转换')"
+                type="text"
+                size="small"
+                v-hasPermi="['dataManage:dataAdministration:editState']"
+                :disabled="scope.row.transferState == 0"
+                >重新转换</el-button
+              >
+            </div>
+            <div v-else>/</div>
           </template>
         </el-table-column>
       </el-table>
@@ -262,7 +269,7 @@
                   >
                     <i class="el-icon-question"></i>
                   </el-tooltip>
-                  {{ item.transferTypeName + ":" }}
+                  {{ item.transferTypeName + "路径" + ":" }}
                 </span>
                 <el-input
                   :min="1"
@@ -275,7 +282,7 @@
             </el-col>
             <el-col :span="13">
               <el-form-item
-                :label="item.timeGranularityName + ':'"
+                :label="item.transferTypeName + '时间粒度' + ':'"
                 :prop="'timeGranularity_' + index"
                 :rules="getTimeGranularityRules(index)"
               >
@@ -283,7 +290,7 @@
                   type="number"
                   :min="1"
                   v-model="item.timeGranularity"
-                  :placeholder="'请输入' + item.timeGranularityName"
+                  :placeholder="'请输入' + item.transferTypeName"
                   size="small"
                   @input="ensureMinValue(item, 'timeGranularity')"
                 >
@@ -345,7 +352,9 @@
                   </el-tooltip>
                   {{
                     newEditForm.dataTransferTypePathDtoList[0]
-                      .transferTypeName + ":"
+                      .transferTypeName +
+                    "路径" +
+                    ":"
                   }}
                 </span>
                 <!-- :rules="{
@@ -372,16 +381,16 @@
             <el-col :span="13">
               <el-form-item
                 :label="
-                  newEditForm.dataTransferTypePathDtoList[0]
-                    .timeGranularityName + ':'
+                  newEditForm.dataTransferTypePathDtoList[0].transferTypeName +
+                  '时间粒度' +
+                  ':'
                 "
                 prop="dataTransferTypePathDtoList.0.timeGranularity"
                 :rules="{
                   required: true,
                   message:
                     '请输入' +
-                    newEditForm.dataTransferTypePathDtoList[0]
-                      .timeGranularityName,
+                    newEditForm.dataTransferTypePathDtoList[0].transferTypeName,
                   trigger: 'blur',
                 }"
               >
@@ -393,8 +402,7 @@
                   "
                   :placeholder="
                     '请输入' +
-                    newEditForm.dataTransferTypePathDtoList[0]
-                      .timeGranularityName
+                    newEditForm.dataTransferTypePathDtoList[0].transferTypeName
                   "
                   size="small"
                 >
@@ -430,12 +438,13 @@
       :visible.sync="editTransferStateLoading"
       width="900px"
       :before-close="handleCloses"
+      class="TransferState"
     >
       <div v-loading="loadingViewEdit" class="views">
         <el-form
           ref="editStateForm"
           :model="editTransferStateForm"
-          label-width="160px"
+          label-width="170px"
         >
           <el-row>
             <el-form-item label="批次名称:" prop="batchCode">
@@ -471,7 +480,7 @@
                   >
                     <i class="el-icon-question"></i>
                   </el-tooltip>
-                  {{ editTransferStateForm.transferTypeName + ":" }}
+                  {{ editTransferStateForm.transferTypeName + "路径" + ":" }}
                 </span>
                 <el-input
                   v-model="editTransferStateForm.dataTransferTypePath"
@@ -505,6 +514,8 @@
             </el-col>
           </el-row>
         </el-form>
+        <el-divider>映射点表配置</el-divider>
+        <WindCodeAndTypeForPlt ref="forPltRef"></WindCodeAndTypeForPlt>
         <span slot="footer" class="dialog-footer">
           <el-button @click="editstateCancel('editStateForm')" size="small"
             >取 消</el-button
@@ -523,19 +534,26 @@
 <script>
 import {
   queryDataTransferList,
+  queryDataTransferGroup,
+  queryDataTransferByBatchCode,
   fieldBatchListForDataTransfer,
   addDataTransferList,
   editTimeGranularityQuery,
   dataTransfer,
 } from "@/api/dataManage";
 import axios from "axios";
+import WindCodeAndTypeForPlt from "./components/WindCodeAndTypeForPlt.vue";
 export default {
+  components: {
+    WindCodeAndTypeForPlt,
+  },
   data() {
     return {
       intervalId: null,
       startTime: null,
       maxPollingTime: 5 * 60 * 1000, //轮询最大时间
       loading: false,
+      forPltFrom: {},
       editTransferStateForm: {
         transferAddr: "",
         dataTransferTypePath: "",
@@ -547,8 +565,9 @@ export default {
       editTransferStateLoading: false,
       loadingView: false,
       formInline: {
+        fieldName: "",
         batchName: "",
-        transferState: "",
+        // transferState: "",
         pageNum: 1,
         pageSize: 10,
         totalSize: 0,
@@ -615,6 +634,20 @@ export default {
     this.getBatchCodeList();
   },
   methods: {
+    load(tree, treeNode, resolve) {
+      console.log(tree, "tree");
+      const { batchCode } = tree; // 假设每行都有唯一的 id
+      // 调用接口获取子级数据
+      queryDataTransferByBatchCode({ batchCode })
+        .then((data) => {
+          console.log(data, "data");
+          resolve(data.data);
+        })
+        .catch((error) => {
+          console.error("Failed to load child nodes", error);
+          resolve([]); // 确保 resolve 被调用
+        });
+    },
     handleCloses(done) {
       this.$confirm("确认关闭?")
         .then((_) => {
@@ -650,20 +683,51 @@ export default {
           this.loadingViewEdit = true;
           this.$confirm("请检查平台内的风机名称和转换数据的风机名称是否一致!")
             .then((_) => {
-              dataTransfer({
-                dataTransferAddr:
-                  this.editTransferStateForm.dataTransferTypePath,
-                dataTransferType: this.editTransferStateForm.transferType,
-                batchCode: this.editTransferStateForm.batchCode,
-                timeGranularity: this.editTransferStateForm.timeGranularity,
-              })
-                .then((res) => {
-                  this.$message({
-                    message: "操作成功",
-                    type: "success",
-                  });
-                  this.getTableList();
-                  this.editstateCancel();
+              const token = JSON.parse(sessionStorage.getItem("vuex"))?.auth
+                ?.userInfo?.token;
+              axios
+                .post(
+                  "/transDataWeb/transConf/insertOrUpdate",
+                  {
+                    type: this.forPltFrom.transferType,
+                    windCode: this.forPltFrom.fieldCode,
+                    windName: this.forPltFrom.fieldName,
+                    ...this.$refs.forPltRef.formData,
+                  },
+                  {
+                    headers: {
+                      token,
+                    },
+                  }
+                )
+                .then((pltRes) => {
+                  if (pltRes.data.code === 200) {
+                    dataTransfer({
+                      dataTransferAddr:
+                        this.editTransferStateForm.dataTransferTypePath,
+                      dataTransferType: this.editTransferStateForm.transferType,
+                      batchCode: this.editTransferStateForm.batchCode,
+                      timeGranularity:
+                        this.editTransferStateForm.timeGranularity,
+                    })
+                      .then((res) => {
+                        this.$message({
+                          message: "操作成功",
+                          type: "success",
+                        });
+                        this.$refs.forPltRef.reset("fromPlt");
+                        this.getTableList();
+                        this.editstateCancel();
+                      })
+                      .catch((error) => {
+                        this.loadingViewEdit = false;
+                      });
+                  } else {
+                    this.$message({
+                      message: pltRes.message,
+                      type: "error",
+                    });
+                  }
                 })
                 .catch((error) => {
                   this.loadingViewEdit = false;
@@ -679,6 +743,7 @@ export default {
     },
     //转换\重新转换
     editTransferState(row, title) {
+      this.forPltFrom = { ...row };
       this.editTransferStateForm.timeGranularity = row.timeGranularity;
       this.editTransferStateForm.dataTransferTypePath = row.transferAddr
         ? row.transferAddr
@@ -690,6 +755,18 @@ export default {
       this.editTransferStateForm.timeGranularityName = row.timeGranularityName;
       this.editTransferStateTitle = title;
       this.editTransferStateLoading = true;
+      if (title === "重新转换") {
+        this.$nextTick(() => {
+          this.$refs.forPltRef.reSetByWindCodeAndTypeForPlt({
+            type: this.forPltFrom.transferType,
+            windCode: this.forPltFrom.fieldCode,
+          });
+        });
+      } else {
+        this.$nextTick(() => {
+          this.$refs.forPltRef.reset("fromPlt");
+        });
+      }
     },
     handleEdit(row) {
       this.editNuedialog = true;
@@ -829,46 +906,20 @@ export default {
         alert("弹出窗口已被阻止!请允许弹出式窗口访问本网站。");
       }
     },
-    // async handleClick() {
-    //   try {
-    //     // 获取 HTML 内容
-    //     const response = await axios.get("/downLoadApi", {
-    //       responseType: "blob",
-    //     }); // 确保响应类型为 Blob
-    //     const reader = new FileReader();
-    //     reader.onload = function (event) {
-    //       const htmlContent = event.target.result; // 读取的 HTML 内容
-    //       const newWindow = window.open("", "_blank");
-    //       newWindow.document.open();
-    //       newWindow.document.write(htmlContent);
-    //       newWindow.document.close();
-    //       // 获取当前页面的 URL
-    //       const currentUrl = window.location.href;
-    //       const proxyUrl = currentUrl.substring(0, currentUrl.indexOf("/", 8)); // 从第8个字符开始搜索,找到第一个 "/" 为止
-    //       // 拼接代理地址和接口路径
-    //       const apiEndpoint = proxyUrl + "/downLoadApi";
-
-    //       // 拼接新的路径
-    //       const newUrl = apiEndpoint + "/downLoadApi";
-    //       // 设置 base 元素
-    //       const baseElement = newWindow.document.createElement("base");
-    //       baseElement.href = newUrl; // 使用代理地址和接口路径
-    //       newWindow.document.head.appendChild(baseElement);
-    //     };
-    //     reader.readAsText(response.data, "utf-8"); // 以 UTF-8 编码读取 Blob
-    //   } catch (error) {
-    //     console.error("Failed to fetch data:", error);
-    //     this.$message.error("无法打开新链接");
-    //   }
-    // },
     async getTableList() {
       try {
         this.loading = true;
-        const result = await queryDataTransferList({
+        const result = await queryDataTransferGroup({
           ...this.formInline,
           totalSize: undefined,
         });
-        this.tableData = result.data.list;
+        this.tableData = result.data.list.map((item) => {
+          return {
+            ...item,
+            hasChildren: true,
+            children: [],
+          };
+        });
         this.formInline.totalSize = result.data.totalSize;
         this.loading = false;
       } catch (error) {
@@ -928,11 +979,17 @@ export default {
 
     async fetchData() {
       try {
-        const result = await queryDataTransferList({
+        const result = await queryDataTransferGroup({
           ...this.formInline,
           totalSize: undefined,
         });
-        this.tableData = result.data.list;
+        this.tableData = result.data.list.map((item) => {
+          return {
+            ...item,
+            hasChildren: true,
+            children: [],
+          };
+        });
         this.formInline.totalSize = result.data.totalSize;
       } catch (error) {
         this.$message({
@@ -992,7 +1049,7 @@ export default {
   }
 }
 ::v-deep .animated-progress .el-progress-bar__outer {
-  height: 20px; /* Adjust height as needed */
+  height: 15px; /* Adjust height as needed */
   background-color: rgb(235, 238, 245);
   background-image: linear-gradient(
     45deg,
@@ -1007,4 +1064,7 @@ export default {
   background-size: 1.25em 1.25em;
   animation: striped-flow 3s linear infinite;
 }
+.TransferState .el-form-item {
+  width: 343px;
+}
 </style>

+ 11 - 6
src/views/performance/assetssMag.vue

@@ -54,7 +54,7 @@
         >
           <template slot-scope="scope">
             <el-progress
-              v-if="scope.row.analysisState == 0"
+              v-if="scope.row.analysisState == 20"
               :text-inside="true"
               :stroke-width="20"
               :percentage="scope.row.analysisProgress"
@@ -76,7 +76,7 @@
             <span v-if="scope.row.analysisState == -1">未分析</span>
             <span
               v-else-if="
-                scope.row.analysisState == 0 && scope.row.errState == 0
+                scope.row.analysisState == 20 && scope.row.errState == 0
               "
               style="color: #f90"
               >分析中</span
@@ -85,10 +85,15 @@
               >分析异常</span
             >
             <span
-              v-else-if="scope.row.analysisState == 1"
+              v-else-if="scope.row.analysisState == 30"
               style="color: #4caf50"
               >分析完成</span
             >
+            <span
+              v-else-if="scope.row.analysisState == 10"
+              style="color: #4caf50"
+              >排队中</span
+            >
             <span v-else>/</span>
           </template>
         </el-table-column>
@@ -136,7 +141,7 @@
           <template slot-scope="scope">
             <!-- 分析完成 -->
             <el-button
-              v-if="scope.row.analysisState == 1 && scope.row.errState !== 1"
+              v-if="scope.row.analysisState == 30 && scope.row.errState !== 1"
               @click="handleAssetssDetail(scope.row, '1')"
               type="text"
               size="small"
@@ -145,7 +150,7 @@
             <!-- 分析中 -->
             <el-button
               v-else-if="
-                scope.row.analysisState == 0 && scope.row.errState == 0
+                scope.row.analysisState == 20 && scope.row.errState == 0
               "
               @click="handleAssetssDetail(scope.row, '0')"
               type="text"
@@ -463,7 +468,7 @@ export default {
   }
 }
 ::v-deep .animated-progress .el-progress-bar__outer {
-  height: 20px; /* Adjust height as needed */
+  height: 15px; /* Adjust height as needed */
   background-color: rgb(235, 238, 245);
   background-image: linear-gradient(
     45deg,

+ 39 - 2
src/views/performance/components/analysisEvent.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2024-05-29 09:13:51
- * @LastEditTime: 2024-07-15 13:41:20
+ * @LastEditTime: 2024-07-17 14:15:50
  * @LastEditors: bogon
  * @Description: In User Settings Edit
  * @FilePath: /performance-test/src/views/performance/components/analysisEvent.vue
@@ -91,6 +91,7 @@
                   placeholder="请选择SCADA数据"
                   size="small"
                   clearable
+                  @change="handleScada"
                 >
                   <el-option
                     :key="'minute'"
@@ -134,6 +135,7 @@
                   range-separator="至"
                   start-placeholder="开始日期"
                   end-placeholder="结束日期"
+                  :picker-options="pickerOptions"
                 >
                 </el-date-picker> </el-form-item
             ></el-col>
@@ -685,7 +687,7 @@
   </div>
 </template>
 <script>
-import { analysisEditQuery, analysis } from "@/api/performance";
+import { analysisEditQuery, analysis, queryDataTime } from "@/api/performance";
 import { getWindEngineGroup } from "@/api/ledger";
 export default {
   data() {
@@ -695,6 +697,11 @@ export default {
       htmlLoading: true,
       engineCode: null, //台账机组编号
       picker: [],
+      dataMinTime: null,
+      dataMaxTime: null,
+      pickerOptions: {
+        disabledDate: this.disabledDate,
+      },
       loading: false,
       form: {
         configAnalysis: null, //分析类型
@@ -743,8 +750,38 @@ export default {
   created() {
     //获取分析 分析类型、机组编号 列表
     this.getWindCodeList();
+    this.getQueryDataTime();
   },
   methods: {
+    disabledDate(time) {
+      if (!this.dataMinTime || !this.dataMaxTime) {
+        return false;
+      }
+      const minTime = new Date(this.dataMinTime).getTime();
+      const maxTime = new Date(this.dataMaxTime).getTime();
+      return time.getTime() < minTime || time.getTime() > maxTime;
+    },
+    handleScada() {
+      this.getQueryDataTime();
+    },
+    handleScada() {
+      this.getQueryDataTime();
+    },
+    async getQueryDataTime() {
+      const res = await queryDataTime({
+        batchCode: this.$route.query.batchCode,
+        dataTransferType: this.form.scada,
+      });
+      if (res.data && res.data.dataMinTime && res.data.dataMaxTime) {
+        this.dataMinTime = res.data.dataMinTime; // 可选最小时间
+        this.dataMaxTime = res.data.dataMaxTime; // 可选最大时间
+        // 更新日期选择器的默认范围
+      } else {
+        this.dataMinTime = null; // 可选最小时间
+        this.dataMaxTime = null; // 可选最大时间
+      }
+    },
+
     selectAllTurbines() {
       this.form.turbines = [];
       if (this.checkedTurbines) {