allen 2 lat temu
rodzic
commit
e547041783

+ 3 - 2
src/components/Echarts/graph.vue

@@ -1,5 +1,5 @@
 <template>
-  <div id="chart" class="chart"></div>
+  <div id="chart" ref="gCharts" class="chart"></div>
 </template>
 <script>
 import * as echarts from "echarts";
@@ -58,7 +58,8 @@ export default {
     initCharts() {
       const that = this;
       if (!this.myChart) {
-        this.myChart = echarts.init(document.getElementById("chart"));
+        // this.myChart = echarts.init(document.getElementById("chart"));
+        this.myChart = echarts.init(this.$refs.gCharts);
         this.myChart.on("click", (params) => {
           if (params.dataType === "node") {
             //判断点击的是图表的节点部分

+ 0 - 1
src/layout/components/Navbar.vue

@@ -1,7 +1,6 @@
 <template>
   <div class="navbar">
     <hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
-
     <!-- <breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!topNav"/> -->
     <!-- <top-nav id="topmenu-container" class="topmenu-container" v-if="topNav"/> -->
     <!-- 固定topNav -->

+ 0 - 57
src/views/knowledge/index.vue

@@ -1,57 +0,0 @@
-<template>
-  <a-config-provider :locale="zh_CN">
-    <div id="app" class="flex-col">
-      <navibar class="menu-shi"></navibar>
-      <div class="app-body flex-row app_beijing">
-        <div class="container-width">
-          <router-view />
-        </div>
-      </div>
-    </div>
-  </a-config-provider>
-</template>
-<script>
-import navibar from "@/views/knowledge/common/navibar";
-
-import zh_CN from "ant-design-vue/lib/locale-provider/zh_CN";
-import "moment/locale/zh-cn";
-
-export default {
-  components: {
-    navibar,
-  },
-  data() {
-    return {
-      zh_CN,
-    };
-  },
-};
-</script>
-<style scoped>
-#app {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  background-color: #f5f7fa;
-}
-
-.app-body {
-  height: calc(100% - 50px);
-  overflow: scroll;
-  overflow-y: hidden;
-}
-
-.container-width {
-  top: 62px;
-  height: 100%;
-}
-
-.menu-shi {
-  background-color: white;
-  box-shadow: 0 2px 8px #c8ebdf82;
-  border: 0;
-  text-align: center;
-}
-</style>

+ 98 - 0
src/views/knowledge/test/index schedule.vue

@@ -0,0 +1,98 @@
+<template>
+    <el-card>
+        <el-row>故障进度</el-row>
+        <el-table :data="visibleItems" style="background-color: transparent">
+            <el-table-column label="机号" align="center" prop="airNumber" />
+            <el-table-column label="机型" align="center" prop="airplaneModel" />
+            <el-table-column label="专业" align="center" prop="major" />
+            <el-table-column label="发现日期" align="center" prop="discoveryDate" />
+            <el-table-column label="倒计时时间" align="center" prop="countDown">
+                <template slot-scope="scope">
+                    <span v-if="!scope.row ||scope.row.countDown > 15" style="color:green"> {{ scope.row ? scope.row.countDown : '' }} </span>
+                    <span v-else-if="scope.row.countDown < 0" style="color:red"> {{ scope.row.countDown }} </span>
+                    <span v-else style="color:yellow"> {{ scope.row.countDown }} </span>
+                </template>
+            </el-table-column>
+        </el-table>
+    </el-card>
+</template>
+  
+<script>
+export default {
+    name: "BreakdownSchedule",
+    data() {
+        return {
+            startIndex: 0,
+            numItems: 3,
+            breakdownList:[
+                {
+                    airNumber:1,
+                    airplaneModel:1,
+                    major:1,
+                    discoveryDate:"2023-04-01",
+                    countDown:1,
+                },
+                {
+                    airNumber:2,
+                    airplaneModel:2,
+                    major:2,
+                    discoveryDate:"2023-04-01",
+                    countDown:2,
+                },
+                {
+                    airNumber:3,
+                    airplaneModel:3,
+                    major:3,
+                    discoveryDate:"2023-04-01",
+                    countDown:3,
+                },
+                {
+                    airNumber:4,
+                    airplaneModel:4,
+                    major:4,
+                    discoveryDate:"2023-04-01",
+                    countDown:4,
+                },
+                {
+                    airNumber:5,
+                    airplaneModel:5,
+                    major:5,
+                    discoveryDate:"2023-04-01",
+                    countDown:5,
+                },
+            ],
+        }
+    },
+    computed: {
+        visibleItems() {
+            let v = [];
+            let itemsLength = this.breakdownList.length
+            for (let i = 0; i < this.numItems; i++) {
+                if ((i + this.startIndex) < itemsLength) {
+                    v.push(this.breakdownList[i + this.startIndex])
+                } else {
+                    v.push(this.breakdownList[i + this.startIndex - itemsLength])
+                }
+            }
+            return v
+
+        }
+    },
+    mounted() {
+        this.interval = setInterval(() => {
+            this.startIndex++
+            if (this.startIndex >= this.breakdownList.length) {
+                this.startIndex = 0
+            }
+        }, 3000)
+    },
+    beforeDestroy() {
+        clearInterval(this.interval)
+    }
+}
+</script>
+<style scoped>
+.el-table {
+    color:red
+}
+</style>

+ 44 - 77
src/views/knowledge/test/index.vue

@@ -1,20 +1,28 @@
 <template>
-    <el-card>
-        <el-row>故障进度</el-row>
-        <el-table :data="visibleItems" style="background-color: transparent">
-            <el-table-column label="机号" align="center" prop="airNumber" />
-            <el-table-column label="机型" align="center" prop="airplaneModel" />
-            <el-table-column label="专业" align="center" prop="major" />
-            <el-table-column label="发现日期" align="center" prop="discoveryDate" />
-            <el-table-column label="倒计时时间" align="center" prop="countDown">
-                <template slot-scope="scope">
-                    <span v-if="!scope.row ||scope.row.countDown > 15" style="color:green"> {{ scope.row ? scope.row.countDown : '' }} </span>
-                    <span v-else-if="scope.row.countDown < 0" style="color:red"> {{ scope.row.countDown }} </span>
-                    <span v-else style="color:yellow"> {{ scope.row.countDown }} </span>
-                </template>
-            </el-table-column>
-        </el-table>
-    </el-card>
+    <div class="app-container">
+        <div class="button-group">
+            <el-button type="primary" plain>非理想数据管理</el-button>
+            <el-button type="primary" plain>非理想数据处理</el-button>
+            <el-button type="primary" plain>故障预测管理</el-button>
+            <el-button type="primary" plain>装备性能退化评估</el-button>
+            <el-button type="primary" plain>仿真验证可视化</el-button>
+        </div>
+        <div class="button-group">
+            <el-button type="primary" plain>数据选择</el-button>
+            <el-select v-model="value" placeholder="请选择">
+                <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+                </el-option>
+            </el-select>
+            <el-button type="primary" plain>结果保存</el-button>
+        </div>
+        <el-card>
+            <div style="height:450px"></div>
+        </el-card>
+    </div>
 </template>
   
 <script>
@@ -22,77 +30,36 @@ export default {
     name: "BreakdownSchedule",
     data() {
         return {
-            startIndex: 0,
-            numItems: 3,
-            breakdownList:[
-                {
-                    airNumber:1,
-                    airplaneModel:1,
-                    major:1,
-                    discoveryDate:"2023-04-01",
-                    countDown:1,
-                },
-                {
-                    airNumber:2,
-                    airplaneModel:2,
-                    major:2,
-                    discoveryDate:"2023-04-01",
-                    countDown:2,
-                },
-                {
-                    airNumber:3,
-                    airplaneModel:3,
-                    major:3,
-                    discoveryDate:"2023-04-01",
-                    countDown:3,
-                },
-                {
-                    airNumber:4,
-                    airplaneModel:4,
-                    major:4,
-                    discoveryDate:"2023-04-01",
-                    countDown:4,
-                },
-                {
-                    airNumber:5,
-                    airplaneModel:5,
-                    major:5,
-                    discoveryDate:"2023-04-01",
-                    countDown:5,
-                },
-            ],
+            options: [{
+                value: '1',
+                label: '数据扩充'
+            }, {
+                value: '2',
+                label: '数据补全'
+            }, {
+                value: '3',
+                label: '数据去噪'
+            }, {
+                value: '4',
+                label: '特征提取'
+            }],
+            value: ''
         }
     },
     computed: {
-        visibleItems() {
-            let v = [];
-            let itemsLength = this.breakdownList.length
-            for (let i = 0; i < this.numItems; i++) {
-                if ((i + this.startIndex) < itemsLength) {
-                    v.push(this.breakdownList[i + this.startIndex])
-                } else {
-                    v.push(this.breakdownList[i + this.startIndex - itemsLength])
-                }
-            }
-            return v
-
-        }
     },
     mounted() {
-        this.interval = setInterval(() => {
-            this.startIndex++
-            if (this.startIndex >= this.breakdownList.length) {
-                this.startIndex = 0
-            }
-        }, 3000)
     },
     beforeDestroy() {
-        clearInterval(this.interval)
     }
 }
 </script>
 <style scoped>
-.el-table {
-    color:red
+.button-group {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  gap: 10px; /* 间隔距离,可以根据需要进行调整 */
+  margin: 10px;
 }
 </style>

+ 43 - 0
src/views/knowledge/test/index1.vue

@@ -0,0 +1,43 @@
+<template>
+    <div class="app-container">
+        <!-- <div class="button-group">
+            <el-button type="primary" plain>非理想数据管理</el-button>
+            <el-button type="primary" plain>非理想数据处理</el-button>
+            <el-button type="primary" plain>故障预测管理</el-button>
+            <el-button type="primary" plain>装备性能退化评估</el-button>
+            <el-button type="primary" plain>仿真验证可视化</el-button>
+        </div> -->
+        <div style="margin:10px">
+            <el-button type="primary" plain>知识管理</el-button>
+        </div>
+        <el-card style="margin:10px">
+            <div style="height:500px"></div>
+        </el-card>
+    </div>
+</template>
+  
+<script>
+export default {
+    name: "BreakdownSchedule",
+    data() {
+        return {
+
+        }
+    },
+    computed: {
+    },
+    mounted() {
+    },
+    beforeDestroy() {
+    }
+}
+</script>
+<style scoped>
+.button-group {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  gap: 10px; /* 间隔距离,可以根据需要进行调整 */
+  margin: 10px;
+}
+</style>

+ 65 - 0
src/views/knowledge/test/index2.vue

@@ -0,0 +1,65 @@
+<template>
+    <div class="app-container">
+        <!-- <div class="button-group">
+            <el-button type="primary" plain>非理想数据管理</el-button>
+            <el-button type="primary" plain>非理想数据处理</el-button>
+            <el-button type="primary" plain>故障预测管理</el-button>
+            <el-button type="primary" plain>装备性能退化评估</el-button>
+            <el-button type="primary" plain>仿真验证可视化</el-button>
+        </div> -->
+        <div style="margin:10px">
+            <el-button type="primary" plain>数据选择</el-button>
+            <el-select v-model="value" placeholder="请选择" style="margin:10px">
+                <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+                </el-option>
+            </el-select>
+            <el-button type="primary" plain>结果保存</el-button>
+        </div>
+        <el-card style="margin:10px">
+            <div style="height:450px"></div>
+        </el-card>
+    </div>
+</template>
+  
+<script>
+export default {
+    name: "BreakdownSchedule",
+    data() {
+        return {
+            options: [{
+                value: '1',
+                label: '数据扩充'
+            }, {
+                value: '2',
+                label: '数据补全'
+            }, {
+                value: '3',
+                label: '数据去噪'
+            }, {
+                value: '4',
+                label: '特征提取'
+            }],
+            value: ''
+        }
+    },
+    computed: {
+    },
+    mounted() {
+    },
+    beforeDestroy() {
+    }
+}
+</script>
+<style scoped>
+.button-group {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  gap: 10px; /* 间隔距离,可以根据需要进行调整 */
+  margin: 10px;
+}
+</style>

+ 46 - 0
src/views/knowledge/test/index3.vue

@@ -0,0 +1,46 @@
+<template>
+    <div class="app-container">
+        <!-- <div class="button-group">
+            <el-button type="primary" plain>非理想数据管理</el-button>
+            <el-button type="primary" plain>非理想数据处理</el-button>
+            <el-button type="primary" plain>故障预测管理</el-button>
+            <el-button type="primary" plain>装备性能退化评估</el-button>
+            <el-button type="primary" plain>仿真验证可视化</el-button>
+        </div> -->
+        <div style="margin:10px">
+            <el-button type="primary" plain>数据选择</el-button>
+            <el-button type="primary" plain>算法选择</el-button>
+            <el-button type="primary" plain>算法执行</el-button>
+            <el-button type="primary" plain>结果保存</el-button>
+        </div>
+        <el-card style="margin:10px">
+            <div style="height:500px"></div>
+        </el-card>
+    </div>
+</template>
+  
+<script>
+export default {
+    name: "BreakdownSchedule",
+    data() {
+        return {
+
+        }
+    },
+    computed: {
+    },
+    mounted() {
+    },
+    beforeDestroy() {
+    }
+}
+</script>
+<style scoped>
+.button-group {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  gap: 10px; /* 间隔距离,可以根据需要进行调整 */
+  margin: 10px;
+}
+</style>

+ 46 - 0
src/views/knowledge/test/index4.vue

@@ -0,0 +1,46 @@
+<template>
+    <div class="app-container">
+        <!-- <div class="button-group">
+            <el-button type="primary" plain>非理想数据管理</el-button>
+            <el-button type="primary" plain>非理想数据处理</el-button>
+            <el-button type="primary" plain>故障预测管理</el-button>
+            <el-button type="primary" plain>装备性能退化评估</el-button>
+            <el-button type="primary" plain>仿真验证可视化</el-button>
+        </div> -->
+        <div style="margin:10px">
+            <el-button type="primary" plain>数据选择</el-button>
+            <el-button type="primary" plain>算法选择</el-button>
+            <el-button type="primary" plain>算法执行</el-button>
+            <el-button type="primary" plain>结果保存</el-button>
+        </div>
+        <el-card style="margin:10px">
+            <div style="height:500px"></div>
+        </el-card>
+    </div>
+</template>
+  
+<script>
+export default {
+    name: "BreakdownSchedule",
+    data() {
+        return {
+
+        }
+    },
+    computed: {
+    },
+    mounted() {
+    },
+    beforeDestroy() {
+    }
+}
+</script>
+<style scoped>
+.button-group {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  gap: 10px; /* 间隔距离,可以根据需要进行调整 */
+  margin: 10px;
+}
+</style>

+ 45 - 0
src/views/knowledge/test/index5.vue

@@ -0,0 +1,45 @@
+<template>
+    <div class="app-container">
+        <!-- <div class="button-group">
+            <el-button type="primary" plain>非理想数据管理</el-button>
+            <el-button type="primary" plain>非理想数据处理</el-button>
+            <el-button type="primary" plain>故障预测管理</el-button>
+            <el-button type="primary" plain>装备性能退化评估</el-button>
+            <el-button type="primary" plain>仿真验证可视化</el-button>
+        </div> -->
+        <div class="button-group">
+            <el-button type="primary" plain>数字仿真</el-button>
+            <el-input placeholder="" ></el-input>
+            <el-button type="primary" plain>搜索</el-button>
+        </div>
+        <el-card style="margin:10px">
+            <div style="height:500px"></div>
+        </el-card>
+    </div>
+</template>
+  
+<script>
+export default {
+    name: "BreakdownSchedule",
+    data() {
+        return {
+
+        }
+    },
+    computed: {
+    },
+    mounted() {
+    },
+    beforeDestroy() {
+    }
+}
+</script>
+<style scoped>
+.button-group {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  gap: 10px; /* 间隔距离,可以根据需要进行调整 */
+  margin: 10px;
+}
+</style>

+ 88 - 106
src/views/searchV2/breakdown/base.vue

@@ -1,113 +1,95 @@
 <template>
-    <div class="app-container">
-      <el-form
-        :model="queryParams"
-        ref="queryForm"
-        size="small"
-        :inline="true"
-        label-width="68px"
-      >
-        <el-form-item :label="name1" prop="firstName" >
-          <el-input
-            v-model="queryParams.firstName"
-            placeholder="请输入"
-            clearable
-            @keyup.enter.native="handleQuery"
-          />
-        </el-form-item>
-        <el-form-item :label="name2" prop="secondName">
-          <el-input
-            v-model="queryParams.secondName"
-            placeholder="请输入"
-            clearable
-            @keyup.enter.native="handleQuery"
-          />
-        </el-form-item>
-        <el-form-item prop="length">
-          <el-radio-group v-model="queryParams.length">
-            <el-radio-button :label="0">最短</el-radio-button>
-            <el-radio-button :label="10">所有</el-radio-button>
-          </el-radio-group>
-        </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>
-      <Graph ref="charts" :chartList="chartData" />
-    </div>
-  </template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
+      <el-form-item :label="name1" prop="firstName">
+        <el-input v-model="queryParams.firstName" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
+      </el-form-item>
+      <el-form-item :label="name2" prop="secondName">
+        <el-input v-model="queryParams.secondName" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
+      </el-form-item>
+      <el-form-item prop="length">
+        <el-radio-group v-model="queryParams.length">
+          <el-radio-button :label="0">最短</el-radio-button>
+          <el-radio-button :label="10">所有</el-radio-button>
+        </el-radio-group>
+      </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>
+    <Graph ref="charts" :chartList="chartData" />
+  </div>
+</template>
   
-  <script>
-  import Graph from "@/components/Echarts/graph";
-  import { getGraphByEntiry } from "@/api/knowledge/search";
-  
-  export default {
-    name: "GranphSearch",
-    dicts: ["graph_search_length"],
-    components: { Graph },
-    props:{
-      name1: {
-        type: String,
-        required: true
-      },
-      name2: {
-        type: String,
-        required: true
-      }
+<script>
+import Graph from "@/components/Echarts/graph";
+import { getGraphByEntiry } from "@/api/knowledge/search";
+
+export default {
+  name: "GranphSearch",
+  dicts: ["graph_search_length"],
+  components: { Graph },
+  props: {
+    name1: {
+      type: String,
+      required: true
     },
-    data() {
-      return {
-        queryParams: {
-          firstName: "",
-          secondName: "",
-          length: "0",
-        },
-        chartData: {
-          seriesData:[],
-          linksData:[],
-        },
-      };
-    },
-    methods: {
-      handleQuery() {
-        if(this.queryParams.firstName == this.queryParams.secondName){
-          this.$message.error('不能查询自己的关联');
-          return
-        }
-        getGraphByEntiry(this.queryParams).then((resp) => {
-          let respData = resp.data
-          let seriesData = []
-          let linksData = []
-          for(let item of respData.data){
-            seriesData.push(
-              {name: item.name}
-            )
-          }
-          for(let link of respData.links){
-            linksData.push(
-              {
-                source: link.fromName,
-                target: link.toName,
-                label: {
-                  show: true, // 是否显示line的文字
-                  formatter: link.name // line的文字
-                },
-              }
-            )
-          }
-          this.chartData = {
-            seriesData,
-            linksData,
-          }       
-        });
+    name2: {
+      type: String,
+      required: true
+    }
+  },
+  data() {
+    return {
+      queryParams: {
+        firstName: "",
+        secondName: "",
+        length: "0",
       },
-      resetQuery() {
-        this.resetForm("queryForm");
+      chartData: {
+        seriesData: [],
+        linksData: [],
       },
+    };
+  },
+  methods: {
+    handleQuery() {
+      if (this.queryParams.firstName == this.queryParams.secondName) {
+        this.$message.error('不能查询自己的关联');
+        return
+      }
+      getGraphByEntiry(this.queryParams).then((resp) => {
+        let respData = resp.data
+        let seriesData = []
+        let linksData = []
+        for (let item of respData.data) {
+          seriesData.push(
+            { name: item.name }
+          )
+        }
+        for (let link of respData.links) {
+          linksData.push(
+            {
+              source: link.fromName,
+              target: link.toName,
+              label: {
+                show: true, // 是否显示line的文字
+                formatter: link.name // line的文字
+              },
+            }
+          )
+        }
+        this.chartData = {
+          seriesData,
+          linksData,
+        }
+      });
+    },
+    resetQuery() {
+      this.resetForm("queryForm");
     },
-  };
-  </script>
+  },
+};
+</script>
   

+ 3 - 3
src/views/searchV2/breakdown/index.vue

@@ -2,13 +2,13 @@
   <div class="app-container">
       <el-tabs v-model="activeName" @tab-click="handleClick" >
           <el-tab-pane label="故障关联分析" name="first">
-            <Sbreakdown name1="故障" name2 ="故障"/>
+            <Sbreakdown name1="故障" name2 ="故障" :key="1"/>
           </el-tab-pane>
           <el-tab-pane label="故障部件关联分析" name="second">
-            <Sbreakdown name1="故障" name2 ="部件"/>
+            <Sbreakdown name1="故障" name2 ="部件" :key="2"/>
           </el-tab-pane>
           <el-tab-pane label="部件关联分析" name="third">
-            <Sbreakdown name1="部件" name2 ="部件"/>
+            <Sbreakdown name1="部件" name2 ="部件" :key="3"/>
           </el-tab-pane>
       </el-tabs>
   </div>