Parcourir la source

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

wanggaokun il y a 1 an
Parent
commit
2bf6c1f515

+ 112 - 0
PHM-web/src/views/manage/dataDown/dataDownDialog.vue

@@ -0,0 +1,112 @@
+<template>
+  <div>
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="指令" prop="order">
+          <el-select v-model="form.order" placeholder="请选择指令" style="width:100%">
+            <el-option v-for="item in instructionInfoList" :key="item.attribute" :label="item.attribute"
+              :value="item.attribute">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="form.remark" placeholder="请输入备注" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm" :loading="butLoading">{{
+          butText
+        }}</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listInstructionInfo } from "@/api/manage/instructionInfo";
+export default {
+  name: 'dataDownDialog',
+  props: {
+    open:{
+      type:Boolean
+    }, 
+    cancel:{
+      type:Function
+    },
+    getList:{
+      type:Function,
+    }
+  },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 按钮加载
+      butLoading: false,
+      // 按钮显示文本
+      butText: "点击下载",
+      // 弹出层标题
+      title: "",
+      // 表单参数
+      form: {
+        type: ".xlsx",
+        path: "/phm/uploadPath",
+      },
+      // 表单校验
+      rules: {},
+      instructionInfoList:[],
+    }
+  },
+  created() {
+    this.getListInstructionInfo();
+  },
+  methods:{
+    // 获取指令
+    getListInstructionInfo() {
+      let queryParams = {
+        pageNum: 1,
+        pageSize: 1000,
+        attribute: null,
+        content: null,
+      }
+      listInstructionInfo(queryParams).then(response => {
+        this.instructionInfoList = response.rows;
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.butLoading = true;
+      this.butText = "下载中";
+      setTimeout(() => {
+        // 方法区
+        if (this.form.order === "error") {
+          this.$modal.msgError("下载异常");
+          this.butLoading = false;
+          this.butText = "点击下载";
+          return;
+        }
+        // 服务获取文件
+        let dataObj = {
+          order: this.form.order,
+          name: `固定格式_${new Date().getTime()}.xlsx`,
+          path: "/phm/uploadPath",
+          remark: this.form.remark,
+        };
+        let data = JSON.parse(localStorage.getItem("data-down")) || [];
+        data.push(dataObj);
+        localStorage.setItem("data-down", JSON.stringify(data));
+        this.getList();
+        // 保存指定路径
+        this.butLoading = false;
+        this.butText = "点击下载";
+        this.$modal.msgSuccess("下载成功");
+        this.cancel()
+      }, 1000);
+    },
+  }
+}
+</script>
+
+<style scoped>
+</style>

+ 3 - 0
PHM-web/src/views/manage/dataDown/index.vue

@@ -49,6 +49,7 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+    <dataDownDialog :open="open" :cancel='cancel' :getList='getList'/>
   </div>
 </template>
 
@@ -61,9 +62,11 @@ import {
   updateDataDown,
 } from "@/api/manage/dataDown";
 import { listInstructionInfo } from "@/api/manage/instructionInfo";
+import dataDownDialog from '@/views/manage/dataDown/dataDownDialog'
 
 export default {
   name: "DataDown",
+  components:{ dataDownDialog },
   data() {
     return {
       index: 1,

+ 27 - 4
PHM-web/src/views/manage/diagnosisResultDetail/index.vue

@@ -2,9 +2,9 @@
   <div class="box">
     <div ref="contentToExport"  class="resultDetail">
       <el-descriptions title="诊断结果详情" class="info">
-        <el-descriptions-item label="模型名称">虚警抑制</el-descriptions-item>
-        <el-descriptions-item label="架次号">FM111</el-descriptions-item>
-        <el-descriptions-item label="步长数据">步长</el-descriptions-item>
+        <el-descriptions-item label="模型名称">{{info.model}}</el-descriptions-item>
+        <el-descriptions-item label="架次号">{{info.sortie}}</el-descriptions-item>
+        <el-descriptions-item label="步长数据">{{info.step}}</el-descriptions-item>
         <el-descriptions-item
           label="诊断结果">这是诊断结果结果结果结果这是诊断结果结果结果结果这是诊断结果结果结果结果这是诊断结果结果结果结果这是诊断结果结果结果结果这是诊断结果结果结果结果这是诊断结果结果结果结果这是诊断结果结果结果结果这是诊断结果结果结果结果这是诊断结果结果结果结果</el-descriptions-item>
       </el-descriptions>
@@ -30,10 +30,33 @@ export default {
     return {
       //批注内容
       textarea: '批注批注这是批注',
-      //
+      //传来的参数
+      info:{
+        model:'',
+        sortie:'',
+        step:''
+      },
     }
   },
+  created(){
+    this.getParams()
+  },
   methods: {
+    //路由中传的参
+    getParams(){
+      if(this.$route.params.entryMode){
+        //这是自定义
+        this.info.model=this.$route.params.info.model
+        this.info.sortie=this.$route.params.info.sortie
+        this.info.step=this.$route.params.info.step
+        //得到自定义的信息,发送请求给后端得到数据
+      }else{
+        //这里可以直接读取info中的数据,再给后端发请求得到详情数据
+        this.info.model=this.$route.params.info.content.model
+        this.info.sortie=this.$route.params.info.content.sortie
+        this.info.step=this.$route.params.info.content.step
+      }
+    },
     async exportToPDF() {
       const content = this.$refs.contentToExport
       const canvas = await html2canvas(content)

+ 40 - 6
PHM-web/src/views/manage/faultAnalysis/index.vue

@@ -14,7 +14,7 @@
         </el-select>
       </el-form-item>
       <el-form-item label="步长" prop="step">
-        <el-select v-model="queryParams.step" placeholder="请选择模型" :disabled="disabled">
+        <el-select v-model="queryParams.step" placeholder="请选择步长" :disabled="disabled">
           <el-option v-for="item in stepOptions" :key="item.value" :label="item.label" :value="item.value">
           </el-option>
         </el-select>
@@ -57,11 +57,20 @@ export default {
       },
       //
       //模型选择器数据
-      modelOptions: [],
+      modelOptions: [
+        { value: '模型id-1', label: '模型1'},
+        { value: '模型id-2', label: '模型2'},
+      ],
       //架次选择器信息
-      sortieOptions: [],
+      sortieOptions: [
+        { value: '架次id-1', label: '架次1'},
+        { value: '架次id-2', label: '架次2'},
+      ],
       //步长选择
-      stepOptions: [],
+      stepOptions: [
+        { value: '步长id-1', label: '步长1'},
+        { value: '步长id-2', label: '步长2'},
+      ],
       //选择框是否禁用
       disabled: true,
       //
@@ -83,7 +92,11 @@ export default {
       isStop: 'stop',
       btnText: '暂停',
       // 成功跳转时按钮禁用
-      isSuccess:false
+      isSuccess:false,
+      //判断传参时候是自定义进入还是列表进入.true自定义,false列表
+      entryMode:false,
+      //路由传过去的参数
+      isParams:null
     }
   },
   created() {
@@ -93,11 +106,23 @@ export default {
     //判断选择框是否禁用
     isDisabled() {
       if (this.flag === 1) {
+        //这是自定义进入的
         this.disabled = false
+      }else{
+        //flag里面有各类信息,这是列表传入的
+        this.queryParams.model=this.flag.content.model;
+        this.queryParams.sortie=this.flag.content.sortie;
+        this.queryParams.step=this.flag.content.step;
+        this.isParams=this.flag
       }
     },
     /** 分析按钮操作 */
     handleQuery() {
+      if(!this.entryMode){
+        //这样是自定义
+        this.isParams=this.queryParams;
+        this.entryMode=true
+      }
       this.isShow = true
       this.showSearch = false
       this.btnIsDisabled = true
@@ -114,7 +139,16 @@ export default {
             this.isSuccess=true
             this.tipText = '分析成功,正在生成分析结果'
             setTimeout(() => {
-              this.$router.push('/manage/diagnosisResultDetail/')
+              this.cancel()
+              // this.$router.push('/manage/diagnosisResultDetail/')
+              this.$router.push({
+                name: 'diagnosisResultDetail',
+                params: { 
+                  info: this.isParams,
+                  entryMode:this.entryMode
+                 },
+             })
+            this.percentage=0
             }, 2000)
           }
         }, 200)

+ 0 - 294
PHM-web/src/views/manage/faultAnalyzeResult/index.vue

@@ -1,294 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
-      <el-form-item label="功能模块名称" prop="moduleName">
-        <el-input
-          v-model="queryParams.moduleName"
-          placeholder="请输入功能模块名称"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="分析结果" prop="analyzeInfo">
-        <el-input
-          v-model="queryParams.analyzeInfo"
-          placeholder="请输入分析结果"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="批注,注解" prop="comment">
-        <el-input
-          v-model="queryParams.comment"
-          placeholder="请输入批注,注解"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </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>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['manage:faultAnalyzeResult:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['manage:faultAnalyzeResult:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['manage:faultAnalyzeResult:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['manage:faultAnalyzeResult:export']"
-        >导出</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="faultAnalyze"
-          v-hasPermi="['manage:faultAnalyzeResult:export']"
-        >自定义分析</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="faultAnalyzeResultList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      
-      <el-table-column label="功能模块名称" align="center" prop="moduleName" />
-      <el-table-column label="功能模块类型" align="center" prop="moduleType" />
-      <el-table-column label="分析结果" align="center" prop="analyzeInfo" />
-      <el-table-column label="批注,注解" align="center" prop="comment" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['manage:faultAnalyzeResult:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['manage:faultAnalyzeResult:remove']"
-          >删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改故障分析结果对话框 -->
-    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
-        <el-form-item label="功能模块名称" prop="moduleName">
-          <el-input v-model="form.moduleName" placeholder="请输入功能模块名称" />
-        </el-form-item>
-        <el-form-item label="分析结果" prop="analyzeInfo">
-          <el-input v-model="form.analyzeInfo" placeholder="请输入分析结果" />
-        </el-form-item>
-        <el-form-item label="批注,注解" prop="comment">
-          <el-input v-model="form.comment" placeholder="请输入批注,注解" />
-        </el-form-item>
-          
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listFaultAnalyzeResult, getFaultAnalyzeResult, delFaultAnalyzeResult, addFaultAnalyzeResult, updateFaultAnalyzeResult } from "@/api/manage/faultAnalyzeResult";
-
-export default {
-  name: "FaultAnalyzeResult",
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 故障分析结果表格数据
-      faultAnalyzeResultList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        moduleName: null,
-        moduleType: null,
-        analyzeInfo: null,
-        comment: null,
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询故障分析结果列表 */
-    getList() {
-      this.loading = true;
-      listFaultAnalyzeResult(this.queryParams).then(response => {
-        this.faultAnalyzeResultList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        id: null,
-        moduleName: null,
-        moduleType: null,
-        analyzeInfo: null,
-        comment: null,
-         
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加故障分析结果";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const id = row.id || this.ids
-      getFaultAnalyzeResult(id).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改故障分析结果";
-      });
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.id != null) {
-            updateFaultAnalyzeResult(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addFaultAnalyzeResult(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$modal.confirm('是否确认删除故障分析结果编号为"' + ids + '"的数据项?').then(function() {
-        return delFaultAnalyzeResult(ids);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('manage/faultAnalyzeResult/export', {
-        ...this.queryParams
-      }, `faultAnalyzeResult_${new Date().getTime()}.xlsx`)
-    },
-    //跳转到故障分析页面
-    faultAnalyze(){
-      const info = '000';//是000的时候就是自定义分析
-      this.$router.push('/manage/faultAnalysis/' + info);
-    }
-  }
-};
-</script>

+ 44 - 7
PHM-web/src/views/manage/orderInfo/index.vue

@@ -90,6 +90,12 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+    <!-- 分析弹出框 -->
+    <el-dialog title="分析页面" :visible.sync="analysisDialog" width="27%" :show-close='false'>
+      <faultAnalysis :flag="flag" :close='close' />
+    </el-dialog>
+    <!-- 到数据下载数据界面 -->
+    <dataDownDialog :open='openDialog' :cancel='dataDownCancel' :getList='replaceGetList'/>
   </div>
 </template>
 
@@ -101,10 +107,12 @@ import {
   addOrderInfo,
   updateOrderInfo,
 } from '@/api/manage/orderInfo'
-
+import faultAnalysis from '@/views/manage/faultAnalysis'
+import dataDownDialog from '@/views/manage/dataDown/dataDownDialog'
 export default {
   name: 'OrderInfo',
   dicts: ['order_status'],
+  components: { faultAnalysis,dataDownDialog },
   data() {
     return {
       // 遮罩层
@@ -123,6 +131,10 @@ export default {
       orderInfoList: [],
       // 弹出层标题
       title: '',
+      //分析弹出框
+      analysisDialog: false,
+      //这里flag代表传过去的模型、架次、步长信息
+      flag: null,
       // 是否显示弹出层
       open: false,
       // 查询参数
@@ -147,6 +159,8 @@ export default {
           { required: true, message: '数据是否删除不能为空', trigger: 'blur' },
         ],
       },
+      //数据下载弹出框的数据
+      openDialog:false
     }
   },
   created() {
@@ -167,6 +181,19 @@ export default {
       this.open = false
       this.reset()
     },
+    // 数据下载弹出框的取消按钮
+    dataDownCancel() {
+      this.openDialog = false;
+      this.reset();
+    },
+    //数据下载弹框完成后
+    replaceGetList(){
+      this.dataDownCancel()
+    },
+    //分析对话框关闭
+    close() {
+      this.analysisDialog = false
+    },
     // 表单重置
     reset() {
       this.form = {
@@ -207,12 +234,21 @@ export default {
     },
     /** 执行指令 */
     handle(row) {
-      const id = row.id || this.ids
-      // getOrderInfo(id).then(response => {
-      //   this.form = response.data;
-      //   this.open = true;
-      //   this.title = "修改系统指令信息";
-      // });
+      console.log(row)
+      //指令类型是下载数据
+      if (row.orderType == 'XZ') {
+        this.openDialog=true;
+      } else {
+        row.content = {
+          model: '虚警抑制的模型',
+          sortie: '架次',
+          step: '2023-01-02 12:00:00 2023-02-02 12:00:00',
+        }
+        this.analysisDialog = true
+        this.flag = row
+      }
+
+      // const id = row.id || this.ids
     },
     /** 提交按钮 */
     submitForm() {
@@ -258,6 +294,7 @@ export default {
         `orderInfo_${new Date().getTime()}.xlsx`
       )
     },
+    
   },
 }
 </script>

+ 49 - 0
PHM-web/src/views/manage/reasoning/diagnosisTable.vue

@@ -0,0 +1,49 @@
+<template>
+  <div>
+    <!-- 虚警抑制 -->
+    <el-table v-if="modelFlag==1" :data="ModelOptions" @current-change="handle">
+      <el-table-column label="故障代码" align="center" prop="code" />
+      <el-table-column label="抑制判据" align="center" prop="restrainCriteria" />
+      <el-table-column label="最少持续时间" align="center" prop="minDuration" />
+    </el-table>
+    <!-- 深度隔离 -->
+    <el-table v-if="modelFlag==2" :data="ModelOptions" @current-change="handle">
+      <el-table-column label="维护代码" align="center" prop="code" />
+      <el-table-column label="故障方程" align="center" prop="faultEquation" />
+      <el-table-column label="故障LRU" align="center" prop="faultLru" />
+    </el-table>
+    <!-- 地面 -->
+    <el-table v-if="modelFlag==3" :data="ModelOptions" @current-change="handle">
+      <el-table-column label="事件代码" align="center" prop="code" />
+      <el-table-column label="判据" align="center" prop="criteria" />
+      <el-table-column label="最少持续时间" align="center" prop="minDuration" />
+      <el-table-column label="所属系统" align="center" prop="systemSource" />
+      <el-table-column label="所属LRU" align="center" prop="lruSource" />
+    </el-table>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'diagnosisTable',
+  props: {
+    ModelOptions:Array,
+    modelFlag:Number,
+    callback:Function
+  },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+    }
+  },
+  methods:{
+    handle(val) {
+      this.callback(val)
+    }
+  }
+}
+</script>
+
+<style scoped>
+</style>

+ 351 - 0
PHM-web/src/views/manage/reasoning/index.vue

@@ -0,0 +1,351 @@
+<template>
+  <div class="reasoning">
+    <el-steps :active="isActive" align-center class="step" finish-status="success">
+      <el-step title="数据选择" description="请选择架次信息"></el-step>
+      <el-step title="测试性模型选择" description="这是一段很长很长很长的描述性文字"></el-step>
+      <el-step title="是否进行增强诊断" description="这是一段很长很长很长的描述性文字"></el-step>
+      <el-step title="故障方程选择" description="这是一段很长很长很长的描述性文字"></el-step>
+      <el-step title="调用计算引擎"></el-step>
+    </el-steps>
+    <div class="content">
+      <div class="box">
+        <el-select ref="selectTable" v-model="queryParams.sortie" placeholder="请选择架次" v-if="isActive==0" filterable>
+          <template #empty>
+            <sortieTable :callback="handleCurrentChange" />
+          </template>
+        </el-select>
+        <el-select ref="selectTable" v-model="queryParams.testModel" placeholder="请选择测试性模型" v-if="isActive==1">
+          <template #empty>
+            <el-table :data="testModelOptions" style="width: 100%" @current-change="handleCurrentChange">
+              <el-table-column prop="model" label="模型" width="180">
+              </el-table-column>
+              <el-table-column prop="modelID" label="模型编号" width="180">
+              </el-table-column>
+              <el-table-column prop="attribute1" label="属性1">
+              </el-table-column>
+            </el-table>
+          </template>
+        </el-select>
+        <div v-if="isActive==2">
+          <el-select ref="selectTable" v-model="queryParams.diagnosis" placeholder="请选择增强诊断" @change="handleDiagnosis"
+            style="marginRight:120px">
+            <el-option v-for="item in diagnosisOptions" :key="item.value" :label="item.label" :value="item.value">
+              <span style="float: left;">{{item.label}}</span>
+              <span style="float: right;color: #ccc;">{{item.value}}</span>
+            </el-option>
+          </el-select>
+          <el-select :disabled="queryParams.diagnosis==''" ref="selectTable" v-model="queryParams.diagnosisModel"
+            placeholder="请选择诊断模型">
+            <template #empty>
+              <diagnosisTable :ModelOptions="ModelOptions" :modelFlag="modelFlag" :callback="handleCurrentChange" />
+            </template>
+          </el-select>
+        </div>
+        <el-select ref="selectTable" v-model="queryParams.faultModel" placeholder="请选择故障方程模型" v-if="isActive==3">
+          <el-option v-for="item in FEQOptions" :key="item.value" :label="item.label" :value="item.value">
+          </el-option>
+        </el-select>
+        <el-select ref="selectTable" v-model="queryParams.computingEngine" placeholder="请调用计算引擎" v-if="isActive==4">
+          <el-option v-for="item in ComputingEngine" :key="item.value" :label="item.label" :value="item.value">
+          </el-option>
+        </el-select>
+      </div>
+      <div class="btn">
+        <el-button type="primary" class="back" @click="back">上一步</el-button>
+        <el-button v-if="isActive==2" type="primary" class="jump" @click="jump">跳过</el-button>
+        <el-button type="primary" class="next" @click="next">下一步</el-button>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import sortieTable from '@/views/manage/reasoning/sortieTable'
+import { listOrderInfo } from '@/api/manage/orderInfo'
+import { listFalseAlarmRestrainModel } from '@/api/manage/falseAlarmRestrainModel'
+import { listGroundDiagnosisModel } from '@/api/manage/groundDiagnosisModel'
+import { listDeepIsolationModel } from '@/api/manage/deepIsolationModel'
+import diagnosisTable from '@/views/manage/reasoning/diagnosisTable'
+import { listSortie } from '@/api/manage/sortie'
+export default {
+  name: 'Reasoning',
+  components: { sortieTable, diagnosisTable },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 显示分析条件
+      showSearch: true,
+      //分析参数
+      queryParams: {
+        sortie: '',
+        testModel: '',
+        diagnosis: '',
+        diagnosisModel: '',
+        faultModel: '',
+        computingEngine: '',
+      },
+      //诊断模型信息
+      diagnosisOptions: [],
+      //故障方程选择器信息
+      FEQOptions: [
+        { value: '选项1', label: '故障方程1' },
+        { value: '选项2', label: '故障方程2' },
+        { value: '选项3', label: '故障方程3' },
+      ],
+      //选择性模型
+      testModelOptions: [
+        {
+          model: '模型1',
+          modelID: 'F111',
+          attribute1: '属性1',
+        },
+        {
+          model: '模型2',
+          modelID: 'F222',
+          attribute1: '属性2',
+        },
+      ],
+      //调用计算引擎的选择器
+      ComputingEngine: [
+        { value: '选项1', label: '计算引擎1' },
+        { value: '选项2', label: '计算引擎2' },
+        { value: '选项3', label: '计算引擎3' },
+      ],
+      //架次列表
+      sortieList: null,
+      //步骤条步骤
+      isActive: 0,
+      currentRow: null,
+      //下一步按钮
+      nextBtn: '下一步',
+      //增强诊断模型
+      ModelOptions: [],
+      //诊断的模型表格标记
+      modelFlag: 0,
+    }
+  },
+  created() {
+    this.getList()
+    this.getOrderList()
+  },
+  watch: {
+    queryParams: {
+      handler() {
+        this.$refs.selectTable.visible = false
+      },
+      deep: true,
+    },
+  },
+  methods: {
+    //到架次信息列表
+    getList() {
+      this.loading = true
+      listSortie(this.queryParams).then(response => {
+        this.sortieList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    /** 查询系统指令信息列表 */
+    getOrderList() {
+      this.loading = true
+      listOrderInfo(this.queryParams).then(response => {
+        this.diagnosisOptions = response.rows
+          .map(item => ({
+            label: item.orderName,
+            value: item.orderType,
+          }))
+          .filter(item => item.value !== 'XZ')
+      })
+    },
+    /** 查询虚警抑制模型列表 */
+    getFalseAlarmList() {
+      this.loading = true
+      listFalseAlarmRestrainModel(this.queryParams).then(response => {
+        this.ModelOptions = response.rows
+        this.modelFlag = 1
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    /** 查询深度隔离模型列表 */
+    getDeepList() {
+      this.loading = true
+      listDeepIsolationModel(this.queryParams).then(response => {
+        this.ModelOptions = response.rows
+        this.modelFlag = 2
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    /** 查询地面诊断模型信息列表 */
+    getGroundList() {
+      this.loading = true
+      listGroundDiagnosisModel(this.queryParams).then(response => {
+        this.ModelOptions = response.rows
+        this.modelFlag = 3
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    // 下一步
+    next() {
+      if (this.isActive++ >= 5) this.isActive = 5
+      switch (this.isActive) {
+        case 1:
+          if (this.queryParams.sortie == '') {
+            this.$message.error(`请选择架次信息`)
+            this.isActive = 0
+            break
+          } else {
+            this.isActive = 1
+            break
+          }
+        case 2:
+          if (this.queryParams.testModel == '') {
+            this.$message.error(`请选择测试性模型`)
+            this.isActive = 1
+            break
+          } else {
+            this.isActive = 2
+            break
+          }
+        case 3:
+          if (this.queryParams.diagnosis == '') {
+            this.$message.error(`请选择是否增强诊断`)
+            this.isActive = 2
+            break
+          } else {
+            this.isActive = 3
+            break
+          }
+        case 4:
+          if (this.queryParams.faultModel == '') {
+            this.$message.error(`请选择故障方程`)
+            this.isActive = 3
+            break
+          } else {
+            this.isActive = 4
+            break
+          }
+        case 5:
+          if (this.queryParams.computingEngine == '') {
+            this.$message.error(`请选择计算引擎`)
+            this.isActive = 4
+            break
+          } else {
+            this.$confirm('确定开始故障诊断吗?', '提示')
+              .then(() => {
+                // this.$store.dispatch('LogOut').then(() => {
+                //   location.href = '/index'
+                // })
+                this.$message.success('开始故障诊断')
+                //步骤条初始化和内容重置
+                this.isActive = 0
+                this.reset()
+              })
+              .catch(() => {})
+            break
+          }
+        default:
+          break
+      }
+    },
+    back() {
+      if (this.isActive < 1) this.isActive = 1
+      switch (this.isActive) {
+        // case 0: this.stepOne=false; break;
+        case 1:
+          this.isActive = 1
+          break
+        case 2:
+          this.isActive = 2
+          break
+        case 3:
+          this.isActive = 3
+          break
+        case 4:
+          this.isActive = 4
+          break
+        default:
+          break
+      }
+      this.isActive--
+    },
+    //跳过
+    jump() {
+      this.queryParams.diagnosis = ''
+      this.queryParams.diagnosisModel = ''
+      this.isActive = 3
+    },
+    // 内容重置
+    reset() {
+      this.queryParams= {
+        sortie: '',
+        testModel: '',
+        diagnosis: '',
+        diagnosisModel: '',
+        faultModel: '',
+        computingEngine: '',
+      }
+    },
+    //单选
+    handleCurrentChange(val) {
+      this.currentRow = val
+      switch (this.isActive) {
+        case 0:
+          this.queryParams.sortie = val.sortieNumber
+          break
+        case 1:
+          this.queryParams.testModel = val.modelID
+          break
+        case 2:
+          this.queryParams.diagnosisModel = val.code
+          break
+        default:
+          break
+      }
+    },
+    //增强诊断的选择框
+    handleDiagnosis(val) {
+      if (val == 'ZJ') {
+        this.getFalseAlarmList()
+        console.log(this.ModelOptions)
+        console.log()
+      } else if (val == 'DM') {
+        this.getGroundList()
+      }
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+.reasoning {
+  height: 100%;
+}
+.step {
+  margin: 30px;
+}
+.content {
+  height: 100%;
+  margin: 30px;
+  position: relative;
+}
+.box {
+  height: 400px;
+  display: flex;
+  justify-content: center;
+  // align-items: center;
+}
+.btn {
+  width: 100%;
+  height: 40px;
+  position: absolute;
+  bottom: -40px;
+  left: 0;
+  display: flex;
+  justify-content: space-around;
+}
+</style>

+ 120 - 0
PHM-web/src/views/manage/reasoning/sortieTable.vue

@@ -0,0 +1,120 @@
+<template>
+  <div>
+    <el-table ref="singleTable" v-loading="loading" :data="sortieList" @current-change="handle">
+      <el-table-column label="机号" align="center" prop="aircraftNumber" />
+      <el-table-column label="架次号" align="center" prop="sortieNumber" />
+      <el-table-column label="开始时间" align="center" prop="startTime" width="180">
+        <template slot-scope="scope">
+          <span>{{
+            parseTime(scope.row.startTime, "{y}-{m}-{d} {h}:{i}:{s}")
+          }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="结束时间" align="center" prop="endTime" width="180">
+        <template slot-scope="scope">
+          <span>{{
+            parseTime(scope.row.endTime, "{y}-{m}-{d} {h}:{i}:{s}")
+          }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="飞行时长" align="center" prop="duration" />
+      <el-table-column label="创建人" align="center" prop="createBy" />
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+        <template slot-scope="scope">
+          <span>{{
+            parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}:{s}")
+          }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updateBy" />
+      <el-table-column label="更新时间" align="center" prop="updateTime" width="180">
+        <template slot-scope="scope">
+          <span>{{
+            parseTime(scope.row.updateTime, "{y}-{m}-{d} {h}:{i}:{s}")
+          }}</span>
+        </template>
+      </el-table-column>
+    </el-table>
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
+      @pagination="getList" />
+  </div>
+</template>
+
+<script>
+import { listSortie } from '@/api/manage/sortie'
+import { getToken } from '@/utils/auth'
+export default {
+  name: 'sortieTable',
+  props:{ 
+    callback:Function
+  },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 架次信息表格数据
+      sortieList: null,
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      startTime: '',
+      endTime: '',
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        aircraftNumber: null,
+        sortieNumber: null,
+        startTime: '',
+        endTime: '',
+        duration: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+      },
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    getList() {
+      this.loading = true
+      listSortie(this.queryParams).then(response => {
+        this.sortieList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    // 多选框选中数据
+    // handleSelectionChange(selection) {
+    //   this.ids = selection.map(item => item.id)
+    //   this.sortieIds = selection.map(item => item.sortieNumber)
+    //   this.single = selection.length !== 1
+    //   this.multiple = !selection.length
+    // },
+    //单选
+    handle(val) {
+      this.callback(val)
+    }
+  },
+}
+</script>
+
+<style scoped>
+.pagination-container{
+  height: 38px;
+  padding: 0 0 !important;
+  margin-right: 30px;
+}
+</style>