ソースを参照

样本库增加新页面

chenminghua 2 年 前
コミット
80afc66948

+ 2 - 1
public/static/config/modeConfig.js

@@ -19,9 +19,10 @@ const adapterUrl = "http://10.155.32.4:8011/";
 const showModuleName = 0;
 
 if (localTest) {
-    baseURL = "http://192.168.10.5:9002/" // 联机调试 
+    baseURL = "http://192.168.10.6:9002/" // 联机调试 
 } else {
     baseURL = "http://10.155.32.14:9002/" // 正式环境
+    
 }
 
 websocketUrl = (baseURL.replace(/http:\/\/|https:\/\//g, "")) + "gyee-websocket";

+ 4 - 5
src/App.vue

@@ -251,8 +251,8 @@ l16.229-16.229l16.229,16.229l42.867-42.867C115.034,45.228,109.133,42.189,102.956
             :show-arrow="false"
             v-else
           >
-            <template #reference>
-              <el-button type="text" style="color: #fff; font-size: 16px">{{
+            <template #reference> 
+              <el-button type="text" style="color: #fff; font-size: 16px"><i class="el-icon-user"></i>{{
                 username
               }}</el-button>
             </template>
@@ -436,8 +436,8 @@ body {
   margin: 0;
   background: #fff;
   color: #fff;
-  // background-image: url("./assets/background.png");
-  background: rgb(4, 12, 11);
+  background-image: url("./assets/image/background.png");
+  // background: rgb(4, 12, 11);
   background-size: cover;
   font-size: @fontsize;
   font-family: @defalut-font-family;
@@ -480,7 +480,6 @@ body {
 
   .el-menu {
     border-color: rgb(4, 12, 11);
-
     .el-menu-item,
     .el-sub-menu__title {
       color: #fff;

BIN
src/assets/image/background.png


+ 2 - 2
src/assets/styles/el-override/el-table.less

@@ -22,8 +22,8 @@
     td {
       border: 0px;
       padding: 0;
-      height: 27px;
-      line-height: 27px;
+      height: 35px;
+      line-height: 35px;
       font-size: 12px;
       color: @gray-l;
 

+ 24 - 0
src/assets/styles/el-override/el-tabs.less

@@ -0,0 +1,24 @@
+.custom-tabs {
+  .el-tabs {
+    background: transparent;
+    border: none;
+  }
+
+  .el-tabs--border-card > .el-tabs__header {
+    background: transparent;
+    border: none;
+    box-shadow: null;
+  }
+
+  .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
+    color: rgb(5, 187, 76);
+    background: rgba(5, 187, 76, 0.5);
+    border: 0.093vh solid #05bb4c;
+  }
+
+  .el-tabs--border-card
+    > .el-tabs__header
+    .el-tabs__item:not(.is-disabled):hover {
+    color: rgb(5, 187, 76);
+  }
+}

+ 1 - 0
src/assets/styles/el-override/index.less

@@ -3,3 +3,4 @@
 @import "./el-pagination.less";
 @import "./el-input.less";
 @import "./el-table.less";
+@import "./el-tabs.less";

+ 27 - 2
src/router/index.js

@@ -22,12 +22,17 @@ const routes = [
 		children: [{
 			path: "fault",
 			name: "故障样本",
-			component: () => import("../views/fault/realfault.vue"),
+			component: () => import("../views/fault/faultreal.vue"),
 		},
 		{
 			path: "diagnose",
 			name: "诊断样本",
-			component: () => import("../views/fault/diagnosefault.vue"),
+			component: () => import("../views/fault/faultdiagnose.vue"),
+		},
+		{
+			path: "warning",
+			name: "预警样本",
+			component: () => import("../views/fault/warncustom.vue"),
 		}]
 	},
 	{
@@ -44,6 +49,21 @@ const routes = [
 			path: "warning/category",
 			name: "报警类型",
 			component: () => import("../views/know/warncategory.vue"),
+		},
+		{
+			path: "maintenance/rule",
+			name: "检修规则",
+			component: () => import("../views/know/maintenancerule.vue"),
+		},
+		{
+			path: "fault/manual",
+			name: "故障手册",
+			component: () => import("../views/know/faultmanual.vue"),
+		},
+		{
+			path: "weather/forecast",
+			name: "天气数据",
+			component: () => import("../views/weather/weatherforecast.vue"),
 		}]
 	},
 	{
@@ -55,6 +75,11 @@ const routes = [
 			path: "station",
 			name: "场站数据",
 			component: () => import("../views/basicinfo/station.vue"),
+		},
+		{
+			path: "windturbine",
+			name: "风机详情",
+			component: () => import("../views/basicinfo/windturbine.vue"),
 		}]
 	},
 	{

+ 59 - 34
src/views/basicinfo/station.vue

@@ -15,14 +15,15 @@
         </div>
       </div>
       <div class="query-actions" style="margin-left: 50px">
-        <button class="btn" @click="insertItem()">新增</button>
+        <button class="btn green" @click="insertItem()">新增</button>
       </div>
     </div>
     <div class="df-table">
-      <el-table :data="tableData" class="custom-table" height="80vh">
+      <el-table :data="tableData" class="custom-table" height="85vh">
         <el-table-column type="index" label="序号" align="center" width="50" />
         <el-table-column prop="name" align="center" label="场站名称" />
         <el-table-column prop="id" align="center" label="场站编码" />
+        <el-table-column prop="quantity" align="center" label="风机数量(台)" />
         <el-table-column prop="capacity" align="center" label="装机容量(MW)" />
         <el-table-column prop="model" align="center" label="风机型号" />
         <el-table-column prop="longitude" align="center" label="经度" />
@@ -31,6 +32,7 @@
         <el-table-column align="center" label="操作">
           <template v-slot="scope">
             <el-button type="text" @click="editItem(scope)">编辑</el-button>
+            <el-button type="text" @click="delItem(scope)" disabled>删除</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -68,22 +70,22 @@
           </div>
           <div class="inlineItem">
             <el-form-item
-              :label="`${ruleForm['capacity--name--']}:`"
-              prop="capacity"
+              :label="`${ruleForm['quantity--name--']}:`"
+              prop="quantity"
             >
               <el-input
-                v-model="ruleForm.capacity"
-                :placeholder="`请输入${ruleForm['capacity--name--']}`"
+                v-model="ruleForm.quantity"
+                :placeholder="`请输入${ruleForm['quantity--name--']}`"
                 type="input"
               />
             </el-form-item>
             <el-form-item
-              :label="`${ruleForm['model--name--']}:`"
-              prop="model"
+              :label="`${ruleForm['capacity--name--']}:`"
+              prop="capacity"
             >
               <el-input
-                v-model="ruleForm.model"
-                :placeholder="`请输入${ruleForm['model--name--']}`"
+                v-model="ruleForm.capacity"
+                :placeholder="`请输入${ruleForm['capacity--name--']}`"
                 type="input"
               />
             </el-form-item>
@@ -96,7 +98,7 @@
             >
               <el-input
                 v-model="ruleForm.longitude"
-                :placeholder="'请输入风机型号用/隔开'"
+                :placeholder="`请输入${ruleForm['longitude--name--']}`"
                 type="input"
               />
             </el-form-item>
@@ -113,22 +115,36 @@
           </div>
           <div class="inlineItem">
             <el-form-item
+              :label="`${ruleForm['model--name--']}:`"
+              prop="model"
+            >
+              <el-input
+                v-model="ruleForm.model"
+                :placeholder="`请输入风机型号用/隔开`"
+                type="input"
+              />
+            </el-form-item>
+            <el-form-item
               :label="`${ruleForm['manufacturer--name--']}:`"
               prop="manufacturer"
             >
-              <el-select
+              <el-input
                 v-model="ruleForm.manufacturer"
                 :placeholder="`请输入${ruleForm['manufacturer--name--']}`"
-                popper-class="select"
-              >
-                <el-option
-                  v-for="item in manufacturerArray"
-                  :key="item.value"
-                  :value="item.value"
-                  :label="item.label"
-                >
-                </el-option>
-              </el-select>
+                type="input"
+              />
+            </el-form-item>
+          </div>
+          <div class="inlineItem">
+             <el-form-item
+              :label="`${ruleForm['telephone--name--']}:`"
+              prop="telephone"
+            >
+              <el-input
+                v-model="ruleForm.telephone"
+                :placeholder="`请输入${ruleForm['telephone--name--']}`"
+                type="input"
+              />
             </el-form-item>
           </div>
         </el-form>
@@ -159,6 +175,7 @@ export default {
       dialogTitle: "",
       dialogShow: false,
       codedisabled: false,
+      option: null, //新增true 编辑false
       ruleForm: {
         name: "",
         "name--name--": "场站名称",
@@ -168,12 +185,16 @@ export default {
         "capacity--name--": "装机容量",
         model: "",
         "model--name--": "风机型号",
+        quantity: "",
+        "quantity--name--": "风机台数",
         longitude: "",
         "longitude--name--": "经度",
         latitude: "",
-        "latitude--name--": "度",
+        "latitude--name--": "度",
         manufacturer: "",
         "manufacturer--name--": "风机厂商",
+        telephone: "",
+        "telephone--name--": "场站电话",
       },
       rules: {
         name: [
@@ -190,6 +211,13 @@ export default {
             trigger: "blur",
           },
         ],
+        quantity: [
+          {
+            required: true,
+            message: "不可为空",
+            trigger: "blur",
+          },
+        ],
         capacity: [
           {
             required: true,
@@ -226,10 +254,6 @@ export default {
           },
         ],
       },
-      manufacturerArray: [
-        { label: "联合动力", value: "联合动力" },
-        { label: "华创", value: "华创" },
-      ],
     };
   },
 
@@ -267,11 +291,13 @@ export default {
     // 取消新增或编辑
     cancel() {
       this.dialogShow = false;
+      this.resetForm();
     },
 
     //新增
     insertItem() {
       this.resetForm();
+      this.option = true;
       this.dialogShow = true;
       this.dialogTitle = "新增";
       this.codedisabled = false;
@@ -284,6 +310,7 @@ export default {
           this.ruleForm[key] = row[key];
         }
       }
+      this.option = false;
       this.dialogShow = true;
       this.dialogTitle = "编辑";
       this.codedisabled = true;
@@ -300,16 +327,14 @@ export default {
               data[key] = that.ruleForm[key];
             }
           }
-          data.time = new Date().formatDate("yyyy-MM-dd hh:mm:ss");
-          data.category = "GZ";
           that.API.request({
             method: "POST",
-            subUrl: "know/fault/type/insert",
+            subUrl: "basic/station/" + (that.option ? "insert" : "edit"),
             data,
             success() {
               that.BASE.showMsg({
                 type: "success",
-                msg: `${data.id ? "编辑" : "新增"}成功`,
+                msg: `${that.option ? "新增" : "编辑"}成功`,
               });
               that.dialogShow = false;
               that.getStationType();
@@ -347,7 +372,7 @@ export default {
 
 <style lang="less" scpoed>
 .el-form {
-  margin-left: 50px;
+  margin-left: 20px;
 }
 .el-form .el-form-item {
   margin-top: 40px;
@@ -375,10 +400,10 @@ export default {
         color: #b3bdc0;
       }
       .el-input{
-           width: 250px;
+           width: 220px;
       }
       .el-select{
-           width: 250px;
+           width: 220px;
       }
     }
   }

+ 587 - 4
src/views/basicinfo/windturbine.vue

@@ -1,5 +1,588 @@
 <template>
-     <div>
-          单台风机
-     </div>
-</template>
+  <div>
+    <div class="query mg-b-8">
+      <div class="query-items">
+        <div class="query-item" style="width: 230px">
+          <div class="lable">场站:</div>
+          <div class="search-input">
+            <el-select
+              v-model="station"
+              placeholder="请选择"
+              popper-class="select"
+              @change="getTableData()"
+            >
+              <el-option
+                v-for="item in stationArray"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+      </div>
+      <div class="query-actions" style="margin-left: 50px">
+        <button class="btn green" @click="insertItem()">新增</button>
+      </div>
+    </div>
+    <div class="df-table">
+      <el-table :data="tableData" class="custom-table" height="85vh">
+        <el-table-column type="index" label="序号" align="center" width="50" />
+        <el-table-column prop="id" align="center" label="风机编号" />
+        <el-table-column prop="projectid" align="center" label="期次" />
+        <el-table-column prop="lineid" align="center" label="线路" />
+        <el-table-column prop="model" align="center" label="风机型号" />
+        <el-table-column prop="name" align="center" label="风机名称" />
+        <el-table-column prop="longitude" align="center" label="经度" />
+        <el-table-column prop="latitude" align="center" label="纬度" />
+        <el-table-column prop="manufacturer" align="center" label="风机厂商" />
+        <el-table-column align="center" label="操作">
+          <template v-slot="scope">
+            <el-button type="text" @click="getPoint(scope)">测点</el-button>
+            <el-button type="text" @click="editItem(scope)">编辑</el-button>
+            <el-button type="text" @click="deleteItem(scope)" disabled
+              >删除</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+    <!-- 新增编辑 -->
+    <div>
+      <el-dialog
+        :title="dialogTitle"
+        v-model="dialogShow"
+        width="50%"
+        top="15vh"
+        custom-class="modal"
+        :close-on-click-modal="true"
+      >
+        <el-form
+          ref="ruleFormRef"
+          :model="ruleForm"
+          :rules="rules"
+          label-width="120px"
+          size="default"
+        >
+          <div class="inlineItem">
+            <el-form-item
+              :label="`${ruleForm['station--name--']}:`"
+              prop="station"
+            >
+              <el-select
+                v-model="station"
+                placeholder="请选择"
+                popper-class="select"
+                disabled="stationdisabled"
+              >
+                <el-option
+                  v-for="item in stationArray"
+                  :key="item.id"
+                  :value="item.id"
+                  :label="item.name"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item :label="`${ruleForm['id--name--']}:`" prop="id">
+              <el-input
+                v-model="ruleForm.id"
+                :placeholder="`请输入${ruleForm['id--name--']} eg:MHS_FDC`"
+                type="input"
+                :disabled="codedisabled"
+              />
+            </el-form-item>
+          </div>
+          <div class="inlineItem">
+            <el-form-item :label="`${ruleForm['name--name--']}:`" prop="name">
+              <el-input
+                v-model="ruleForm.name"
+                :placeholder="`请输入${ruleForm['name--name--']} eg:麻黄山01号风机`"
+                type="input"
+              />
+            </el-form-item>
+            <el-form-item
+              :label="`${ruleForm['model--name--']}:`"
+              prop="model"
+            >
+              <el-input
+                v-model="ruleForm.model"
+                :placeholder="`请输入${ruleForm['model--name--']} eg:UP82`"
+                type="input"
+              />
+            </el-form-item>
+          </div>
+          <div class="inlineItem">
+            <el-form-item
+              :label="`${ruleForm['longitude--name--']}:`"
+              prop="longitude"
+              type="input"
+            >
+              <el-input
+                v-model="ruleForm.longitude"
+                :placeholder="`请输入${ruleForm['longitude--name--']}`"
+                type="input"
+              />
+            </el-form-item>
+            <el-form-item
+              :label="`${ruleForm['latitude--name--']}:`"
+              prop="latitude"
+            >
+              <el-input
+                v-model="ruleForm.latitude"
+                :placeholder="`请输入${ruleForm['latitude--name--']}`"
+                type="input"
+              />
+            </el-form-item>
+          </div>
+          <div class="inlineItem">
+            <el-form-item
+              :label="`${ruleForm['projectid--name--']}:`"
+              prop="projectid"
+              type="input"
+            >
+              <el-input
+                v-model="ruleForm.projectid"
+                :placeholder="`请输入${ruleForm['projectid--name--']} eg:MHS01_GC`"
+                type="input"
+              />
+            </el-form-item>
+            <el-form-item
+              :label="`${ruleForm['lineid--name--']}:`"
+              prop="lineid"
+            >
+              <el-input
+                v-model="ruleForm.lineid"
+                :placeholder="`请输入${ruleForm['lineid--name--']} eg:MHS01_XL`"
+                type="input"
+              />
+            </el-form-item>
+          </div>
+          <div class="inlineItem">
+            <el-form-item
+              :label="`${ruleForm['manufacturer--name--']}:`"
+              prop="manufacturer"
+            >
+              <el-input
+                v-model="ruleForm.manufacturer"
+                :placeholder="`请输入${ruleForm['manufacturer--name--']}`"
+                type="input"
+              />
+            </el-form-item>
+          </div>
+        </el-form>
+        <template #footer>
+          <span class="dialog-footer">
+            <el-button type="info" size="medium" @click="cancel"
+              >取消</el-button
+            >
+            <el-button
+              type="success"
+              size="medium"
+              @click="submit('ruleFormRef')"
+              >提交</el-button
+            >
+          </span>
+        </template>
+      </el-dialog>
+    </div>
+    <!-- 查看测点 -->
+    <div>
+      <el-dialog
+        title="测点数据"
+        v-model="dialogPoint"
+        width="70%"
+        top="15vh"
+        @close="close"
+        custom-class="modal"
+      >
+        <div class="query mg-b-8">
+          <div class="query-items">
+            <div class="query-item" style="width: 150px">
+              <el-input
+                v-model="searchwidget"
+                size="small"
+                clearable
+                placeholder="部件"
+                @change="filterDataWidget"
+              />
+            </div>
+            <div class="query-item" style="width: 150px">
+              <el-input
+                v-model="searchpointdes"
+                size="small"
+                clearable
+                placeholder="测点描述"
+                @change="filterDataPointDes"
+              />
+            </div>
+            <div class="query-item" style="width: 150px">
+              <div class="lable">测点类型:</div>
+              <div class="search-input">
+                <el-select v-model="pointtype" @change="getPointByType">
+                  <el-option key="AI" value="AI" label="AI" />
+                  <el-option key="DI" value="DI" label="DI" />
+                </el-select>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="df-table">
+          <el-table :data="filterPointData" class="custom-table" height="55vh">
+            <el-table-column
+              type="index"
+              label="序号"
+              align="center"
+              width="50"
+            />
+            <el-table-column
+              prop="widget"
+              align="center"
+              label="部件"
+              width="150"
+            />
+            <el-table-column prop="point" align="center" label="测点名" />
+            <el-table-column prop="pointdes" align="center" label="测点描述" />
+            <el-table-column
+              prop="uniformcode"
+              align="center"
+              label="统一编码"
+              width="120"
+            />
+            <el-table-column
+              prop="model"
+              align="center"
+              label="风机型号"
+              width="120"
+            />
+          </el-table>
+        </div>
+      </el-dialog>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      station: "",
+      stationdisabled: false, //场站是否可编辑
+      option: null, //新增true 编辑false
+      stationArray: [],
+      tableData: [],
+      dialogTitle: "", //编辑或新增标题
+      dialogShow: false, //编辑弹窗
+      dialogPoint: false, //测点弹窗
+      codedisabled: false,
+      pointtype: "AI", //测点类型
+      pointData: [], //测点数据
+      filterPointData: [],
+      searchwidget: "",
+      searchpointdes: "",
+      ruleForm: {
+        station: "",
+        "station--name--": "场站",
+        id: "",
+        "id--name--": "风机编号",
+        name: "",
+        "name--name--": "风机名称",
+        model: "",
+        "model--name--": "风机型号",
+        projectid: "",
+        "projectid--name--": "期次",
+        lineid: "",
+        "lineid--name--": "线路",
+        longitude: "",
+        "longitude--name--": "经度",
+        latitude: "",
+        "latitude--name--": "经度",
+        manufacturer: "",
+        "manufacturer--name--": "风机厂商",
+      },
+      rules: {
+        name: [
+          {
+            required: true,
+            message: "不可为空",
+            trigger: "blur",
+          },
+        ],
+        id: [
+          {
+            required: true,
+            message: "不可为空",
+            trigger: "blur",
+          },
+        ],
+        station: [
+          {
+            required: true,
+            message: "不可为空",
+            trigger: "blur",
+          },
+        ],
+        model: [
+          {
+            required: true,
+            message: "不可为空",
+            trigger: "blur",
+          },
+        ],
+        longitude: [
+          {
+            required: true,
+            message: "不可为空",
+            trigger: "blur",
+          },
+        ],
+        latitude: [
+          {
+            required: true,
+            message: "不可为空",
+            trigger: "blur",
+          },
+        ],
+        manufacturer: [
+          {
+            required: true,
+            message: "不可为空",
+            trigger: "blur",
+          },
+        ],
+        projectid: [
+          {
+            required: true,
+            message: "不可为空",
+            trigger: "blur",
+          },
+        ],
+        lineid: [
+          {
+            required: true,
+            message: "不可为空",
+            trigger: "blur",
+          },
+        ],
+      },
+    };
+  },
+
+  created() {
+    this.getChangeZhan();
+  },
+
+  methods: {
+    // 获取场站列表
+    getChangeZhan() {
+      const that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "basic/station/all",
+        success(res) {
+          that.stationArray = res.data;
+          that.station = that.stationArray[0].id;
+          that.getTableData();
+        },
+      });
+    },
+
+    // 获取场站列表
+    getTableData() {
+      const that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "basic/windturbine/all",
+        data: {
+          station: that.station,
+        },
+        success(res) {
+          that.tableData = res.data;
+        },
+      });
+    },
+
+    // 取消新增或编辑
+    cancel() {
+      this.dialogShow = false;
+    },
+
+    // 关闭测点弹窗
+    close(){
+       this.dialogPoint = false;
+    },
+
+    //新增
+    insertItem() {
+      this.resetForm();
+      this.dialogShow = true;
+      this.dialogTitle = "新增";
+      this.codedisabled = false;
+      this.stationdisabled = false;
+    },
+
+    // 编辑某一条
+    editItem({ row }) {
+      for (let key in row) {
+        if (key !== "time") {
+          this.ruleForm[key] = row[key];
+        }
+      }
+      this.dialogShow = true;
+      this.dialogTitle = "编辑";
+      this.codedisabled = true;
+      this.stationdisabled = true;
+    },
+
+    // 提交编辑或者新增数据
+    submit(formName = "") {
+      const that = this;
+      that.$refs[formName].validate((valid) => {
+        if (valid) {
+          let data = {};
+          for (let key in that.ruleForm) {
+            if (key.indexOf("--name--") === -1) {
+              data[key] = that.ruleForm[key];
+            }
+          }
+          that.API.request({
+            method: "POST",
+            subUrl: "basic/windturbine/" + (that.option ? "insert" : "edit"),
+            data,
+            success() {
+              that.BASE.showMsg({
+                type: "success",
+                msg: `${that.option ? "新增" : "编辑"}成功`,
+              });
+              that.dialogShow = false;
+              that.getChangeZhan();
+            },
+          });
+        } else {
+          return false;
+        }
+      });
+    },
+
+    //查看测点
+    getPoint(row) {
+      const that = this;
+      that.API.requestData({
+        subUrl: "point/list",
+        data: {
+          wtId: row.row.id,
+        },
+        success(res) {
+          that.pointData = res.data;
+          that.filterPoint();
+          that.dialogPoint = true;
+        },
+      });
+    },
+
+    //根据测点类型查看
+    getPointByType() {
+      this.filterPoint();
+    },
+
+    //过滤AI/DI
+    filterPoint() {
+      this.filterPointData = [];
+      this.pointData.forEach((el) => {
+        if (el.pointtype == this.pointtype) this.filterPointData.push(el);
+      });
+    },
+
+    //输入过滤
+    filterDataWidget() {
+      this.searchpointdes = '';
+      this.filterPointData = [];
+      if (this.searchwidget) {
+        this.pointData.forEach(el => {
+          if (
+            el.widget.indexOf(this.searchwidget) !== -1 &&
+            this.pointtype == el.pointtype
+          )
+            this.filterPointData.push(el);
+        });
+      } else {
+        this.filterPoint();
+      }
+    },
+     //输入过滤
+    filterDataPointDes() {
+      this.searchwidget= '';
+      this.filterPointData = [];
+      if (this.searchpointdes) {
+        this.pointData.forEach(el => {
+          if (
+            el.pointdes.indexOf(this.searchpointdes) !== -1 &&
+            this.pointtype == el.pointtype
+          )
+            this.filterPointData.push(el);
+        });
+      } else {
+        this.filterPoint();
+      }
+    },
+
+
+    // 渲染 rules 中文描述
+    renderRules() {
+      for (let key in this.rules) {
+        this.rules[key].forEach((ele) => {
+          ele.message = `${this.ruleForm[key + "--name--"]}` + ele.message;
+        });
+      }
+    },
+
+    // 重置表单并且重置表单效验
+    resetForm() {
+      this.dialogTitle = "";
+      this.ruleForm.id && delete this.ruleForm.id;
+      for (let key in this.ruleForm) {
+        if (key.indexOf("--name--") === -1) {
+          this.ruleForm[key] = "";
+        }
+      }
+    },
+  },
+};
+</script>
+
+
+<style lang="less" scpoed>
+.el-form {
+  display: flex;
+  justify-content: start;
+  align-items: center;
+  flex-wrap: wrap;
+  margin-left: 20px;
+  .inlineItem {
+    width: 100%;
+    display: flex;
+    justify-content: start;
+    align-items: center;
+    height: 80px;
+    .el-form-item {
+      width: 100%;
+      margin-bottom: 40px;
+      margin-top: 40px;
+      display: flex;
+      justify-items: center;
+
+      .el-input__count {
+        background: rgba(83, 98, 104, 0.2);
+        color: #b3bdc0;
+      }
+      .el-input {
+        width: 220px;
+      }
+      .el-select {
+        width: 220px;
+      }
+    }
+  }
+}
+</style>

+ 1 - 1
src/views/fault/point.vue

@@ -66,7 +66,7 @@
 
 <script>
 import ComTable from "@/components/coms/table/table.vue";
-import MultipleYLineChartNormal from "../../components/chart/line/multiple-y-line-chart-normal.vue";
+import MultipleYLineChartNormal from "../../../components/chart/line/multiple-y-line-chart-normal.vue";
 export default {
   components: {
     ComTable,

+ 4 - 4
src/views/fault/diagnosefault.vue

@@ -120,7 +120,7 @@
           </div>
         </div>
         <div class="query-actions">
-          <button class="btn" @click="search">查询</button>
+          <button class="btn green" @click="search">查询</button>
         </div>
         <div
           class="query-actions"
@@ -135,7 +135,7 @@
       <el-table
         :data="tableData"
         class="custom-table"
-        height="80vh"
+        height="85vh"
         ref="gzTableRef"
         @selection-change="getSelectArray"
       >
@@ -299,8 +299,8 @@ export default {
           station: that.changzhan,
           windturbineid: that.fengji,
           faultType: that.fault,
-          starttime: that.dateArray[0],
-          endtime: that.dateArray[1],
+          st: that.dateArray[0],
+          et: that.dateArray[1],
         },
         success(res) {
           res.data.forEach((ele) => {

+ 6 - 6
src/views/fault/realfault.vue

@@ -99,12 +99,12 @@
           </div>
         </div>
         <div class="query-actions">
-          <button class="btn" @click="list">查询</button>
-          <button class="btn" @click="add" style="margin-left: 20px">
+          <button class="btn green" @click="list">查询</button>
+          <button class="btn green" @click="add" style="margin-left: 20px">
             新增
           </button>
           <el-dropdown @command="handleCommand" style="margin-left: 20px">
-            <button class="btn">更多<i class="el-icon-arrow-down"></i></button>
+            <button class="btn green">更多<i class="el-icon-arrow-down"></i></button>
             <template #dropdown>
               <el-dropdown-menu class="dropdown-menu">
                 <el-dropdown-item command="import" class="el-dropdown-item font-color">
@@ -116,7 +116,7 @@
                     :on-success="onSuccess"
                     :on-error="onError"
                     :before-upload="beforeUpload"
-                    action="http://192.168.1.18:9002/case/upload/file"
+                    action="http://10.155.32.14:9002/case/upload/file"
                     accept=".xls,.xlsx">
                   </el-upload>
                 </el-dropdown-item>
@@ -328,7 +328,7 @@
 
 <script>
 import ComTable from "@/components/coms/table/table.vue";
-import Point from "./point.vue";
+import Point from "./component/faultdialog.vue";
 import { ElMessageBox } from "element-plus";
 import { ArrowDown } from "@element-plus/icons-vue";
 export default {
@@ -1006,7 +1006,7 @@ export default {
     },
     downloadTemplate() {
       window.open(
-        "http://192.168.1.18:9002/case/download/template?template=fault"
+        "http://10.155.32.14:9002/case/download/template?template=fault"
       );
     },
   },

+ 202 - 0
src/views/fault/warncustom.vue

@@ -0,0 +1,202 @@
+<template>
+  <div>
+    <div class="query mg-b-8">
+      <div class="query-items">
+        <div class="query-item" style="width: 230px">
+          <div class="lable">场站:</div>
+          <div class="search-input">
+            <el-select
+              v-model="changzhan"
+              placeholder="请选择"
+              popper-class="select"
+              @change="getFengji()"
+            >
+              <el-option
+                v-for="item in changzhanArray"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item" style="width: 230px">
+          <div class="lable">风机:</div>
+          <div class="search-input">
+            <el-select
+              v-model="fengji"
+              clearable
+              placeholder="请选择"
+              popper-class="select"
+              @change="getTableData()"
+            >
+              <el-option
+                v-for="item in fengjiArray"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">日期:</div>
+          <div class="search-input">
+            <el-date-picker
+              v-model="dateArray"
+              type="daterange"
+              value-format="YYYY-MM-DD"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              popper-class="date-select"
+              @change="getTableData()"
+               >
+            </el-date-picker>
+          </div>
+        </div>
+        <div class="query-actions">
+          <button class="btn green" @click="search">查询</button>
+        </div>
+      </div>
+    </div>
+    <div class="df-table">
+      <el-table
+        :data="tableData"
+        class="custom-table"
+        height="85vh"
+        ref="gzTableRef"
+      >
+        <el-table-column type="index" label="序号" align="center" width="50" />
+        <el-table-column prop="windturbineid" align="center" label="风机" />
+        <el-table-column prop="warntype" align="center" label="预警分类" />
+        <el-table-column prop="warndes" align="center" label="预警描述" />
+        <el-table-column prop="count" align="center" label="预警次数(次)" />
+        <el-table-column prop="duration" align="center" label="预警时长(分钟)" :formatter="rounding"/>
+      </el-table>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  components: {},
+  data() {
+    return {
+      changzhan: "",
+      changzhanArray: [],
+      fengji: "",
+      fengjiArray: [],
+      fault: "",
+      faultArray: [],
+      method: "",
+      methodArray: [],
+      dateArray: [
+        new Date(new Date().getTime() - 86400000).formatDate(
+          "yyyy-MM-dd"
+        ),
+        new Date().formatDate("yyyy-MM-dd"),
+      ],
+      tableData: [],
+      selectArray: [],
+    };
+  },
+  created() {
+    this.getChangeZhan();
+    this.getFaultType()
+  },
+
+  methods: {
+    // 获取场站列表
+    getChangeZhan() {
+      const that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "basic/station/all",
+        success(res) {
+          that.changzhanArray = res.data;
+          that.changzhan = that.changzhanArray[0].id;
+          that.getFengji();
+        },
+      });
+    },
+
+    // 获取风机列表
+    getFengji(fjId) {
+      const that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "basic/windturbine/all",
+        data: {
+          station: that.changzhan,
+        },
+        success(res) {
+          that.fengjiArray = res.data;
+          that.fengji = fjId || "";
+          that.getTableData();
+        },
+      });
+    },
+
+    // 获取故障类型
+    getFaultType() {
+      const that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "know/fault/type/all",
+        success(res) {
+          that.faultArray = res.data;
+        },
+      });
+    },
+
+    //条件查询
+    search() {
+      this.getTableData();
+    },
+
+    // 获取表格数据
+    getTableData(showLoading = true) {
+      const that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "case/warning/custom/list",
+        showLoading,
+        data: {
+          station: that.changzhan,
+          wtId: that.fengji,
+          st: that.dateArray[0],
+          et: that.dateArray[1],
+        },
+        success(res) {
+          that.tableData = res.data;
+        },
+      });
+    },
+    rounding(row,column) {
+      return parseFloat(row[column.property]).toFixed(2)
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.query-actions button {
+  white-space: nowrap;
+}
+.query-actions.show {
+  position: relative;
+  left: 0;
+  width: 90px;
+  transition: 0.2s;
+  overflow: hidden;
+}
+.query-actions.hidden {
+  position: relative;
+  left: 45px;
+  width: 0;
+  transition: 0.2s;
+  overflow: hidden;
+}
+</style>

+ 3 - 3
src/views/know/faultcategory.vue

@@ -15,11 +15,11 @@
         </div>
       </div>
       <div class="query-actions" style="margin-left: 50px">
-        <button class="btn" @click="insertItem()">新增</button>
+        <button class="btn green" @click="insertItem()">新增</button>
       </div>
     </div>
     <div class="df-table">
-      <el-table :data="tableData" class="custom-table" height="80vh">
+      <el-table :data="tableData" class="custom-table" height="85vh">
         <el-table-column type="index" label="序号" align="center" width="50" />
         <el-table-column prop="name" align="center" label="故障名称" />
         <el-table-column prop="code" align="center" label="故障编码" />
@@ -150,7 +150,7 @@ export default {
     // 获取所有故障类型
     getFaultType() {
       const that = this;
-      this.API.requestData({
+      that.API.requestData({
         subUrl: "know/fault/type/all",
         success(res) {
           that.tableData = res.data;

+ 226 - 0
src/views/know/faultmanual.vue

@@ -0,0 +1,226 @@
+<template>
+  <div>
+    <div class="query mg-b-8">
+      <div class="query-items">
+        <div class="query-item">
+          <div class="lable">机组型号:</div>
+          <div class="search-input">
+            <el-select
+              v-model="processType"
+              clearable
+              placeholder="请选择"
+              popper-class="select"
+              @change="getWidgetArray"
+            >
+              <el-option
+                v-for="item in processTypeArray"
+                :key="item.category"
+                :label="item.name"
+                :value="item.category"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">故障类型:</div>
+          <div class="search-input">
+            <el-select
+              v-model="WidgetType"
+              clearable
+              placeholder="请选择"
+              popper-class="select"
+              @change="getTableData"
+            >
+              <el-option
+                v-for="item in WidgetArray"
+                :key="item.code"
+                :label="item.widget"
+                :value="item.code"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+      </div>
+      <div class="query-actions">
+        <button class="btn green" @click="getTableData">搜索</button>
+      </div>
+    </div>
+    <div class="df-table">
+      <el-table :data="tableData" class="custom-table" height="85vh">
+        <el-table-column type="index" label="序号" align="center" width="50" />
+        <el-table-column
+          prop="name"
+          align="center"
+          label="故障名称"
+          width="250"
+        />
+        <el-table-column
+          prop="cause"
+          align="center"
+          label="故障原因"
+          show-overflow-tooltip
+          width="400"
+        />
+        <el-table-column
+          prop="process"
+          align="center"
+          label="处理方法"
+          show-overflow-tooltip
+        />
+        <el-table-column align="center" label="操作" width="150">
+          <template v-slot="scope">
+            <el-button type="text" @click="getDetails(scope)"
+              >查看详情</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+    <div class="know-info">
+      <el-dialog
+        title="详细信息"
+        v-model="showDetails"
+        custom-class="modal"
+        :close-on-click-modal="false"
+      >
+        <table class="table-card" :key="index">
+          <tr>
+            <th>故障分类</th>
+            <td>{{ infoData.widget || "" }}</td>
+            <th>故障类型</th>
+            <td>{{ infoData.type || "" }}</td>
+          </tr>
+          <tr>
+            <th>故障名称</th>
+            <td>{{ infoData.name || "" }}</td>
+            <th>故障标识</th>
+            <td>{{ infoData.identification || "" }}</td>
+          </tr>
+          <tr>
+            <th>故障原因</th>
+            <td colspan="3">{{ infoData.cause || "" }}</td>
+          </tr>
+          <tr>
+            <th>处理方法</th>
+            <td colspan="3">{{ infoData.process || "" }}</td>
+          </tr>
+          <tr>
+            <th>风机厂家</th>
+            <td>{{ infoData.manufacturer || "" }}</td>
+            <th>风机型号</th>
+            <td>{{ infoData.model || "" }}</td>
+          </tr>
+          <tr>
+            <th>创建时间</th>
+            <td colspan="3">{{ infoData.createtime || "" }}</td>
+          </tr>
+        </table>
+      </el-dialog>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      processTypeArray: [],
+      processType: "",
+      WidgetArray: [],
+      WidgetType: "",
+      nameArray: [],
+      nameType: "",
+      showDetails: false,
+      infoData: {},
+      tableData: [],
+    };
+  },
+  created() {
+    this.getProcessType();
+  },
+  methods: {
+    getProcessType() {
+      const that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "know/process/type",
+        data: {},
+        success(res) {
+          that.processTypeArray = res.data;
+          that.processType = res?.data[0]?.category;
+          that.getWidgetArray();
+        },
+      });
+    },
+    getWidgetArray() {
+      const that = this;
+      that.WidgetType = [];
+      if (that.processType) {
+        that.API.requestData({
+          method: "GET",
+          subUrl: "know/process/widget/list",
+          data: {
+            category: that.processType,
+          },
+          success(res) {
+            that.WidgetArray = res.data;
+            that.WidgetType = res?.data[0]?.code;
+            that.getTableData();
+          },
+        });
+      }
+    },
+    getTableData() {
+      const that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "know/process/name/list",
+        data: {
+          category: that.processType,
+          code: that.WidgetType,
+        },
+        success(res) {
+          that.tableData = res.data;
+        },
+      });
+    },
+    getDetails(row) {
+      console.log(row.row);
+      this.showDetails = true;
+       this.infoData = row.row;   
+    }
+  },
+};
+</script>
+
+<style lang="less" scope>
+.know-info {
+  max-height: 600px;
+    overflow-y: scroll;
+  .table-card {
+    border-collapse: collapse;
+    width: 100%;
+    color: @white;
+    margin-bottom: 32px;
+
+    tr {
+      font-size: 12px;
+      th {
+        width: 120px;
+        height: 60px;
+        border: 0.093vh solid @darkgray;
+        line-height: 27px;
+        padding: 0 4px;
+      }
+      td {
+        height: 60px;
+        border: 0.093vh solid @darkgray;
+        line-height: 27px;
+        padding: 0 8px;
+      }
+    }
+  }
+}
+</style>

+ 113 - 0
src/views/know/maintenancerule.vue

@@ -0,0 +1,113 @@
+<template>
+  <div>
+    <div class="query mg-b-8">
+      <div class="query-items">
+        <div class="query-item">
+          <div class="lable">检修部件:</div>
+          <div class="search-input">
+            <el-select
+              v-model="widget"
+              placeholder="请选择"
+              popper-class="select"
+              @change="
+                () => {
+                  getTableData();
+                }
+              "
+            >
+              <el-option
+                v-for="item in widgetArray"
+                :key="item.code"
+                :value="item.code"
+                :label="item.widget"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="df-table">
+      <el-table
+        :data="tableData"
+        class="custom-table"
+        height="85vh"
+      >
+        <el-table-column type="index" label="检修步骤" align="center" width="100" />
+        <el-table-column prop="widget" align="center" label="检修类型" width="300"/>
+        <el-table-column prop="process" align="left" label="检修过程" />
+      </el-table>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      widget: null,
+      widgetArray: null,
+      tableData: [],
+    };
+  },
+  components: {},
+  created() {
+    this.getMaintenance();
+  },
+  methods: {
+    getMaintenance() {
+      let that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "know/maintenance/type",
+        success(res) {
+          that.widgetArray = res.data;
+          that.widget = that.widgetArray[0]?.code;
+          that.getTableData();
+        },
+      });
+    },
+    getTableData() {
+      let that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "know/maintenance/list",
+        data: {
+          code: that.widget,
+        },
+        success(res) {
+          that.tableData = res.data;
+        },
+      });
+    },
+  },
+};
+</script>
+<style lang="less" scoped>
+.ruleBox {
+  display: flex;
+  width: 100%;
+  height: 100%;
+  align-items: center;
+
+  .radioBox {
+    width: 20%;
+    height: 95%;
+    max-height: 95%;
+    margin: 10% 0 10% 20px;
+    overflow-y: scroll;
+    display: flex;
+    justify-content: flex-start;
+    align-items: flex-start;
+
+    .el-radio {
+      display: block;
+    }
+  }
+
+  .tableBox {
+    width: 90%;
+    height: 90%;
+    margin: 10% 20px;
+  }
+}
+</style>

+ 2 - 2
src/views/know/station.vue

@@ -15,11 +15,11 @@
         </div>
       </div>
       <div class="query-actions" style="margin-left: 50px">
-        <button class="btn" @click="insertItem()">新增</button>
+        <button class="btn green" @click="insertItem()">新增</button>
       </div>
     </div>
     <div class="df-table">
-      <el-table :data="tableData" class="custom-table" height="80vh">
+      <el-table :data="tableData" class="custom-table" height="85vh">
         <el-table-column type="index" label="序号" align="center" width="50" />
         <el-table-column prop="name" align="center" label="报警类别" />
         <el-table-column prop="code" align="center" label="故障编码" />

+ 2 - 2
src/views/know/warncategory.vue

@@ -15,11 +15,11 @@
         </div>
       </div>
       <div class="query-actions" style="margin-left: 50px">
-        <button class="btn" @click="insertItem()">新增</button>
+        <button class="btn green" @click="insertItem()">新增</button>
       </div>
     </div>
     <div class="df-table">
-      <el-table :data="tableData" class="custom-table" height="80vh">
+      <el-table :data="tableData" class="custom-table" height="85vh">
         <el-table-column type="index" label="序号" align="center" width="50" />
         <el-table-column prop="name" align="center" label="报警类别" />
         <el-table-column prop="code" align="center" label="故障编码" />

+ 0 - 19
src/views/layout/other.vue

@@ -1,19 +0,0 @@
-<template>
-  <router-view />
-</template>
-
-<script>
-export default {
-  components: {},
-
-  data() {
-    return {};
-  },
-
-  created() {},
-
-  mounted() {},
-
-  methods: {},
-};
-</script>

+ 0 - 33
src/views/layout/page4.vue

@@ -1,33 +0,0 @@
-<template>
-  <div class="box">
-    {{ info }}
-  </div>
-</template>
-
-<script>
-export default {
-  components: {},
-
-  data() {
-    return {
-      info: "这是页面4",
-    };
-  },
-
-  created() {},
-
-  mounted() {},
-
-  methods: {},
-};
-</script>
-
-<style lang="less" scoped>
-.box {
-  width: 100%;
-  height: 100%;
-  font-size: 25px;
-  background: #000;
-  color: #fff;
-}
-</style>

+ 3 - 0
src/views/weather/router/router.vue

@@ -0,0 +1,3 @@
+<template>
+  <router-view></router-view>
+</template>

+ 205 - 0
src/views/weather/weatherforecast.vue

@@ -0,0 +1,205 @@
+<template>
+  <div>
+    <div class="query mg-b-8">
+      <div class="query-items">
+        <div class="query-item">
+          <div class="lable">场站:</div>
+          <div class="search-input">
+            <el-select
+              v-model="changzhan"
+              placeholder="请选择"
+              popper-class="select"
+            >
+              <el-option
+                v-for="item in changzhanArray"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              >
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">时间:</div>
+          <div class="search-input">
+            <el-date-picker
+              v-model="date"
+              type="datetimerange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="截止日期"
+              value-format="YYYY-MM-DD hh:mm:ss"
+            />
+          </div>
+        </div>
+        <div class="query-actions" style="margin-left: 50px">
+          <button class="btn green" @click="getTableData">搜索</button>
+          <button class="btn green" @click="showDetails">风速曲线</button>
+        </div>
+      </div>
+    </div>
+    <div class="df-table">
+      <el-table class="custom-table" :data="tableData" height="85vh">
+        <el-table-column
+          type="index"
+          label="序号"
+          align="center"
+          width="50"
+        ></el-table-column>
+        <el-table-column
+          prop="time"
+          label="时间"
+          width="200px"
+          align="center"
+        ></el-table-column>
+        <el-table-column
+          prop="speed"
+          label="风速(m/s)"
+          align="center"
+        ></el-table-column>
+        <el-table-column
+          prop="temperature"
+          label="温度(℃)"
+          align="center"
+        ></el-table-column>
+        <el-table-column
+          prop="direction"
+          label="风向(°)"
+          align="center"
+        ></el-table-column>
+        <el-table-column
+          prop="humidity"
+          label="湿度(%)"
+          width="100px"
+          align="center"
+        ></el-table-column>
+        <el-table-column
+          prop="pressure"
+          label="气压(Pa)"
+          align="center"
+        ></el-table-column>
+      </el-table>
+    </div>
+
+    <el-dialog
+      top="100px"
+      title="详情"
+      custom-class="modal"
+      v-model="showDialog"
+      width="80%"
+      @closed="
+        (res) => {
+          showDialog = false;
+          chartData = [{ title: '', yAxisIndex: 0, value: [] }];
+        }
+      "
+    >
+      <LineChart
+        width="100%"
+        height="600px"
+        :showLegend="true"
+        :units="['风速(m/s)', '时间']"
+        :list="chartData"
+        v-if="showDialog"
+      />
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import LineChart from "@com/chart/line/normal-line-chart.vue";
+export default {
+  components: {
+    LineChart,
+  },
+  data() {
+    return {
+      changzhan: "",
+      changzhanArray: [],
+      date: [
+        new Date().formatDate("yyyy-MM-dd hh:mm:ss"),
+        new Date(new Date().getTime() + 24 * 60 * 60 * 1000 * 15).formatDate(
+          "yyyy-MM-dd hh:mm:ss"
+        ),
+      ],
+      tableData: [],
+      showDialog: false,
+      chartData: [
+        {
+          title: "",
+          yAxisIndex: 0,
+          value: [],
+        },
+      ],
+    };
+  },
+  created() {
+    this.getChangeZhan();
+  },
+  methods: {
+    // 获取场站列表
+    getChangeZhan() {
+      const that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "basic/station/all",
+        success(res) {
+          that.changzhanArray = res.data;
+          that.changzhan = res.data[0].id;
+          that.getTableData();
+        },
+      });
+    },
+    // 获取表格数据
+    getTableData() {
+      const that = this;
+      if (that.date?.length) {
+        that.API.requestData({
+          subUrl: "weather/forecast/list",
+          data: {
+            station: that.changzhan,
+            st: that.date[0],
+            et: that.date[1],
+          },
+          success(res) {
+            res.data.forEach((ele) => {
+              ele.speed = ele.speed.toFixed(2);
+              ele.temperature = ele.temperature.toFixed(2);
+              ele.direction = ele.direction.toFixed(2);
+              ele.humidity = ele.humidity.toFixed(2);
+              ele.pressure = ele.pressure.toFixed(2);
+            });
+            that.tableData = res.data;
+          },
+        });
+      } else {
+        that.BASE.showMsg({
+          msg: "日期不可为空",
+        });
+      }
+    },
+    showDetails() {
+      let fsArray = [];
+      this.tableData.forEach((ele) => {
+        fsArray.push({
+          text: ele.time,
+          value: ele.speed,
+        });
+      });
+
+      this.chartData = [
+        {
+          title: "风速(m/s)",
+          yAxisIndex: 0,
+          value: fsArray,
+        },
+      ];
+
+      this.showDialog = true;
+    },
+  },
+};
+</script>
+<style lang="less" scoped>
+</style>