Browse Source

Merge remote-tracking branch 'origin/develop-rmd' into develop

wanggaokun 1 year ago
parent
commit
2b7b6b25af

+ 3 - 2
PHM-web/package.json

@@ -40,7 +40,8 @@
     "axios": "0.24.0",
     "clipboard": "2.0.8",
     "core-js": "3.25.3",
-    "echarts": "5.4.0",
+    "default-passive-events": "^2.0.0",
+    "echarts": "^5.4.0",
     "element-ui": "2.15.13",
     "file-saver": "2.0.5",
     "fuse.js": "6.4.3",
@@ -71,7 +72,7 @@
     "connect": "3.6.6",
     "eslint": "7.15.0",
     "eslint-plugin-vue": "7.2.0",
-    "lint-staged": "10.5.3",
+        "lint-staged": "10.5.3",
     "runjs": "4.4.2",
     "sass": "1.32.13",
     "sass-loader": "10.1.1",

+ 2 - 0
PHM-web/src/main.js

@@ -37,6 +37,8 @@ import DictTag from '@/components/DictTag'
 import VueMeta from 'vue-meta'
 // 字典数据组件
 import DictData from '@/components/DictData'
+//引入插件解决Chrome捕获事件机制出现的问题警告
+import 'default-passive-events'
 
 // 全局方法挂载
 Vue.prototype.getDicts = getDicts

+ 14 - 0
PHM-web/src/router/index.js

@@ -120,6 +120,20 @@ export const dynamicRoutes = [
       }
     ]
   },
+  {
+    path: '/manage/integratedDataManage/sortie',
+    component: Layout,
+    hidden: true,
+    permissions: ['manage:sortie:edit'],
+    children: [
+      {
+        path: 'dataPlayback/:sortieId',
+        component: () => import('@/views/manage/sortie/dataPlayBack'),
+        name: 'dataPlayBack',
+        meta: { title: '数据回放', activeMenu: '/integratedDataManage/sortie' }
+      }
+    ]
+  },
   {
     path: '/system/dict-data',
     component: Layout,

+ 1 - 1
PHM-web/src/store/modules/permission.js

@@ -118,7 +118,7 @@ export function filterDynamicRoutes(routes) {
       }
     }
   })
-  return res
+    return res
 }
 
 export const loadView = (view) => {

+ 1 - 1
PHM-web/src/views/manage/product/index.vue

@@ -6,7 +6,7 @@
           <div class="head-container">
             <el-input
               v-model="deptName"
-              placeholder="请输入部门名称"
+              placeholder="请输入产品树名称"
               clearable
               size="small"
               prefix-icon="el-icon-search"

+ 248 - 0
PHM-web/src/views/manage/sortie/dataPlayBack.vue

@@ -0,0 +1,248 @@
+<template>
+  <div class="box">
+    <h3>架次信息的监控数据和故障监测</h3>
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+      label-width="68px"
+    >
+      <el-form-item label="回放速度">
+        <el-select
+          v-model="speed"
+          placeholder="请选择回放速度"
+          @change="changeSpeed"
+        >
+          <el-option
+            v-for="item in speedOption"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="开始时间" prop="startTime">
+        <el-date-picker
+          clearable
+          v-model="queryParams.startTime"
+          type="datetime"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          placeholder="请选择开始时间"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="结束时间" prop="endTime">
+        <el-date-picker
+          clearable
+          v-model="queryParams.endTime"
+          type="datetime"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          placeholder="请选择结束时间"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
+      </el-form-item>
+    </el-form>
+    <div id="main"></div>
+  </div>
+</template>
+
+<script>
+import * as echarts from "echarts";
+export default {
+  name: "dataPlayBack",
+  data() {
+    return {
+      //eCharts
+      myChart: "",
+      //回放速度
+      speed: 2000,
+      //回放速度的选择器
+      speedOption: [
+        { label: "X0.25", value: 8000 },
+        { label: "X0.5", value: 4000 },
+        { label: "X1.0", value: 2000 },
+        { label: "X1.5", value: 1500 },
+        { label: "X2.0", value: 1000 },
+      ],
+      // 查询参数
+      queryParams: {
+        startTime: '2023-01-02 00:00:00',
+        endTime: '2023-01-02 06:00:00',
+      },
+      // 显示搜索条件
+      showSearch: true,
+    };
+  },
+  mounted() {
+    this.creatECharts();
+  },
+  methods: {
+    creatECharts() {
+      if (this.myChart) {
+        this.myChart.dispose();
+      }
+      var dom = document.getElementById("main");
+      this.myChart = echarts.init(dom, null, {
+        renderer: "canvas",
+        useDirtyRect: false,
+      });
+      let option;
+      const a = [
+        ["Income", "Life Expectancy", "Population", "Country", "Year"],
+        [615, 34.05, 251014, "Finland", "2023-01-02 00:00:00"],
+        [315, 34.05, 251014, "Finland", "2023-01-02 01:00:00"],
+        [725, 34.05, 251014, "Finland", "2023-01-02 02:00:00"],
+        [315, 34.05, 251014, "Finland", "2023-01-02 03:00:00"],
+        [515, 34.05, 251014, "Finland", "2023-01-02 04:00:00"],
+        [815, 34.05, 351014, "Finland", "2023-01-02 05:00:00"],
+        [1815, 34.05, 351014, "Finland", "2023-01-02 06:00:00"],
+        [814, 39, 645526, "France", "2023-01-02 00:00:00"],
+        [144, 39, 645526, "France", "2023-01-02 01:00:00"],
+        [454, 39, 645526, "France", "2023-01-02 02:00:00"],
+        [734, 39, 645526, "France", "2023-01-02 03:00:00"],
+        [144, 39, 645526, "France", "2023-01-02 04:00:00"],
+        [999, 39, 645526, "France", "2023-01-02 05:00:00"],
+        [814, 39, 645526, "France", "2023-01-02 06:00:00"],
+      ];
+      let that = this;
+      run(a);
+
+      function run(_rawData) {
+        // var countries = ['Australia', 'Canada', 'China', 'Cuba', 'Finland', 'France', 'Germany', 'Iceland', 'India', 'Japan', 'North Korea', 'South Korea', 'New Zealand', 'Norway', 'Poland', 'Russia', 'Turkey', 'United Kingdom', 'United States'];
+        const countries = ["Finland", "France"];
+        const datasetWithFilters = [];
+        const seriesList = [];
+        echarts.util.each(countries, function (country) {
+          var datasetId = "dataset_" + country;
+          datasetWithFilters.push({
+            id: datasetId,
+            fromDatasetId: "dataset_raw",
+            transform: {
+              type: "filter",
+              config: {
+                and: [
+                  {
+                    dimension: "Year",
+                    gte:that.queryParams.startTime,
+                    parser: 'time'
+                    
+                  },
+                  {
+                    dimension: "Year",
+                    lt:that.queryParams.endTime,
+                    parser: 'time'
+                  },
+                  { dimension: "Country", "=": country },
+                ],
+              },
+            },
+          });
+          seriesList.push({
+            type: "line",
+            datasetId: datasetId,
+            showSymbol: false,
+            name: country,
+            endLabel: {
+              show: true,
+              formatter: function (params) {
+                return params.value[3] + ": " + params.value[0];
+              },
+            },
+            labelLayout: {
+              moveOverlap: "shiftY",
+            },
+            emphasis: {
+              focus: "series",
+            },
+            encode: {
+              x: "Year",
+              y: "Income",
+              label: ["Country", "Income"],
+              itemName: "Year",
+              tooltip: ["Income"],
+            },
+          });
+        });
+        option = {
+          animationDuration: that.speed,
+          dataset: [
+            {
+              id: "dataset_raw",
+              source: _rawData,
+            },
+            ...datasetWithFilters,
+          ],
+          title: {
+            text: "",
+          },
+          tooltip: {
+            order: "valueDesc",
+            trigger: "axis",
+          },
+          xAxis: {
+            type: "category",
+            nameLocation: "middle",
+          },
+          yAxis: {
+            name: "Income",
+          },
+          grid: {
+            right: 140,
+          },
+          series: seriesList,
+        };
+        that.myChart.setOption(option);
+      }
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        startTime: null,
+        endTime: null,
+      };
+      this.resetForm("form");
+    },
+    //选择事件
+    changeSpeed(value) {
+      this.speed = value;
+      this.creatECharts();
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.creatECharts();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+  },
+};
+</script>
+
+<style scoped>
+.box {
+  width: 1200px;
+  height: 600px;
+  text-align: center;
+}
+
+#main {
+  width: 1200px;
+  height: 600px;
+}
+</style>

+ 8 - 10
PHM-web/src/views/manage/sortie/index.vue

@@ -126,17 +126,9 @@
           <el-button
             size="mini"
             type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
+            @click="playBack(scope.row)"
             v-hasPermi="['manage:sortie:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['manage:sortie:remove']"
-          >删除</el-button>
+          >数据回放</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -219,6 +211,7 @@
 
 <script>
 import { listSortie, getSortie, delSortie, addSortie, updateSortie } from "@/api/manage/sortie";
+import Cookies from 'js-cookie'
 import { getToken } from "@/utils/auth";
 export default {
   name: "Sortie",
@@ -307,6 +300,11 @@ export default {
       };
       this.resetForm("form");
     },
+    // 跳转到数据回放
+    playBack(row) {
+      const sortieNumber = row.sortieNumber;
+      this.$router.push("/manage/integratedDataManage/sortie/dataPlayback/" + sortieNumber);
+    },
     /** 下载模板操作 */
     importTemplate() {
       this.download('/manage/sortie/importTemplate', {