|
@@ -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>
|