|
@@ -5,104 +5,67 @@
|
|
|
</div>
|
|
|
<div class="view-dataSpecies-right">
|
|
|
<div class="view-dataType-title">
|
|
|
- <div class="view-dataType-title-btn">
|
|
|
- <el-button type="success" @click="openDialog()" :disabled="!(currentNode.type == 2)">新增</el-button>
|
|
|
- <el-button type="warning" @click="remove(tableCheckItems)" :disabled="tableCheckItems.length == 0">删除</el-button>
|
|
|
- </div>
|
|
|
+ <div class="view-dataType-title-btn"></div>
|
|
|
<div class="view-dataType-title-search">
|
|
|
<el-input placeholder="请输入架次号" v-model="keyWordData" class="input1">
|
|
|
- <el-button slot="append" icon="el-icon-search" @click="searchClick" :disabled="!(currentNode.type == 2)"></el-button>
|
|
|
+ <el-button slot="append" icon="el-icon-search" @click="searchClick"></el-button>
|
|
|
</el-input>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="view-dataType-table">
|
|
|
<LTable ref="table" @selection-change="selection" :defaultFetch="false" :fetch="fetch" :columns="columns" :dataSource="tableData" :options="options" :pagination="tableRequset"></LTable>
|
|
|
</div>
|
|
|
- <!-- 添加或修改虚警抑制对话框 -->
|
|
|
- <el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="1000px" :before-close="handleClose">
|
|
|
- <el-form ref="executeForm" :model="executeForm" label-width="80px">
|
|
|
- <el-row>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="编目" prop="aircraftId">
|
|
|
- <el-select v-model="executeForm.aircraftId" placeholder="请选择编目" disabled @change="changeAircraftId(form.aircraftId)">
|
|
|
- <el-option v-for="item in aircaftCatalogAll" :key="item.aircaftCatalogId" :label="item.aircaftCatalogCode" :value="item.aircaftCatalogId"> </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="模型类型" prop="modelType">
|
|
|
- <el-select v-model="executeForm.modelType" placeholder="请选择模型类型" @change="changeModelType(executeForm.modelType)">
|
|
|
- <el-option v-for="item in [$enumData.agloModelList[3]]" :key="item.key" :label="item.name" :value="item.key" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="模型" prop="modelId">
|
|
|
- <el-select v-model="executeForm.modelId" placeholder="请选择模型" @change="changeModelId(executeForm.modelId)">
|
|
|
- <el-option v-for="item in modelList" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
- </el-select> </el-form-item
|
|
|
- ></el-col>
|
|
|
- </el-row>
|
|
|
-
|
|
|
- <el-form-item label="架次号" prop="sortieNo">
|
|
|
- <LTable ref="sortieNoTableRef" @current-change="sortieNoSelection" class="single-select-table" :columns="sortieNoColumns" :dataSource="sortieNoList" :options="sortieNoOptions" :pagination="SortieNoTableRequset"></LTable>
|
|
|
+ <!-- 警告列表对话框 -->
|
|
|
+ <el-dialog :title="dialogTitle" :visible.sync="dialogVisible" :before-close="handleClose" width="1200px">
|
|
|
+ <el-dialog width="80%" title="飞参数据曲线" :visible.sync="innerVisible" :before-close="innerDialogClose" append-to-body>
|
|
|
+ <div style="width: 100%; position: relative; color: #fff">
|
|
|
+ <el-radio-group class="isFalseAlarm" v-model="isFalseAlarm" size="small">
|
|
|
+ <el-radio-button label="0">实警</el-radio-button>
|
|
|
+ <el-radio-button label="1">虚警</el-radio-button>
|
|
|
+ </el-radio-group>
|
|
|
+ </div>
|
|
|
+ <PlayBackChart :chartData="chartData" />
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="innerDialogClose">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="submit">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ <el-form ref="airForm" :inline="true" :model="airForm" label-width="80px" disabled>
|
|
|
+ <el-form-item label="编目" prop="aircraftId">
|
|
|
+ <el-select v-model="airForm.aircraftId">
|
|
|
+ <el-option v-for="item in aircaftCatalogAll" :key="item.aircaftCatalogId" :label="item.aircaftCatalogCode" :value="item.aircaftCatalogId"> </el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="警告列表" prop="warningIds">
|
|
|
- <el-table ref="warningTableRef" :data="warningIdsList" @current-change="warningSelection" style="width: 100%; height: 200px" highlight-current-row>
|
|
|
- <!-- <el-table-column prop="id" label="警告ID"> </el-table-column> -->
|
|
|
- <el-table-column prop="name" label="警告名称" align="center"> </el-table-column>
|
|
|
- <el-table-column prop="code" label="警告代码" align="center"> </el-table-column>
|
|
|
- <el-table-column prop="describe" label="描述" align="center"> </el-table-column>
|
|
|
- </el-table>
|
|
|
+ <el-form-item label="架次" prop="sortieNo">
|
|
|
+ <el-input v-model="airForm.sortieNo" />
|
|
|
</el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="参数" prop="param"> <el-input v-model="executeForm.param" type="textarea" :rows="2" placeholder="请输入参数" /> </el-form-item>
|
|
|
- <el-form-item label="数据列" prop="columnData">
|
|
|
- <el-transfer v-model="transferRightData" :data="transferData" @change="changeColumnData"></el-transfer>
|
|
|
+ <el-form-item label="飞行时间" prop="flightDate">
|
|
|
+ <el-input v-model="airForm.flightDate" />
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
- <span slot="footer" class="dialog-footer">
|
|
|
- <el-button @click="handleClose">取 消</el-button>
|
|
|
- <el-button type="primary" @click="submit">确 定</el-button>
|
|
|
- </span>
|
|
|
- </el-dialog>
|
|
|
- <el-dialog title="执行进度" :visible.sync="progressVisible" width="800px" :before-close="handleClose">
|
|
|
- <el-progress :text-inside="true" :stroke-width="24" :percentage="percentage" status="success"></el-progress>
|
|
|
- </el-dialog>
|
|
|
- <el-dialog title="结果展示" :visible.sync="resultVisible" width="1200px">
|
|
|
- <!-- <falseAlarmResult :falseAlarmId="form.id" /> -->
|
|
|
- <LTable ref="resultTableRef" :columns="resultColumns" :dataSource="resultTableData" :options="resultOptions" :pagination="resultTableRequset"></LTable>
|
|
|
- <span slot="footer" class="dialog-footer">
|
|
|
- <el-button type="primary" @click="resultVisible = false">确 定</el-button>
|
|
|
- </span>
|
|
|
+ <LTable ref="warningTable" @selection-change="selection" :defaultFetch="false" :columns="warningColumns" :dataSource="warningTableData" :options="warningOptions" :pagination="warningTableRequset"></LTable>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { getFalseAlarm, addFalseAlarm, updateFalseAlarm, removeFalseAlarm } from '@/api/als/falseAlarm'
|
|
|
-import { getTaskExecondRegister } from '@/api/carrierStandard/carrierListExecutionRegistration'
|
|
|
-import { getFalseAlarmResult } from '@/api/als/falseAlarmResult'
|
|
|
-import { getColumnDataAPI, executeFalseAlarm } from '@/api/als/algorithm'
|
|
|
+import { getDataImport } from '@/api/als/dataImport'
|
|
|
+import { getCurveData, getWarning, updateWarning } from '@/api/als/warning'
|
|
|
import { getAircaftCatalogTree } from '@/api/als/sideTree'
|
|
|
import { getAircaftCatalogAll } from '@/api/als/aircraft'
|
|
|
-import { getDataImport } from '@/api/als/dataImport'
|
|
|
-import { getModel } from '@/api/als/model'
|
|
|
+import PlayBackChart from '@/views/als/components/Charts/playBackChart.vue'
|
|
|
import { deepClone, debounce } from '@/utils/index'
|
|
|
-import { getWarning } from '@/api/als/warning'
|
|
|
-import { flattenTree } from '../utils/common'
|
|
|
|
|
|
export default {
|
|
|
- name: 'FalseAlarm',
|
|
|
- components: {},
|
|
|
+ name: 'DataImport',
|
|
|
+ components: { PlayBackChart },
|
|
|
data() {
|
|
|
// 这里存放数据
|
|
|
return {
|
|
|
dialogTitle: '新增',
|
|
|
dialogVisible: false,
|
|
|
- progressVisible: false,
|
|
|
- resultVisible: false,
|
|
|
+ innerVisible: false,
|
|
|
keyWordData: '',
|
|
|
aircaftModelIdList: [],
|
|
|
currentNodeKey: '',
|
|
@@ -123,18 +86,6 @@ export default {
|
|
|
},
|
|
|
searchValue: '',
|
|
|
columns: [
|
|
|
- {
|
|
|
- prop: 'sortieNo',
|
|
|
- label: '架次号',
|
|
|
- render: (h, params) => {
|
|
|
- const matchedItem = this.allTaskExecond.find((item) => params.row.sortieNo.trim() === item.taskId.trim())
|
|
|
- if (matchedItem) {
|
|
|
- return h('span', matchedItem.taskName)
|
|
|
- } else {
|
|
|
- return h('span', {}, '')
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
{
|
|
|
prop: 'aircraftId',
|
|
|
label: '编目',
|
|
@@ -148,37 +99,21 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
- prop: 'modelType',
|
|
|
- label: '模型类型',
|
|
|
- render: (h, params) => {
|
|
|
- const matchedItem = this.$enumData.agloModelList.find((item) => params.row.modelType === item.key)
|
|
|
- if (matchedItem) {
|
|
|
- return h('span', matchedItem.name)
|
|
|
- } else {
|
|
|
- return h('span', {}, '')
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'param',
|
|
|
- label: '参数'
|
|
|
+ prop: 'sortieNo',
|
|
|
+ label: '架次号'
|
|
|
},
|
|
|
{
|
|
|
- prop: 'columnData',
|
|
|
- label: '数据列'
|
|
|
+ prop: 'flightDate',
|
|
|
+ label: '飞行时间'
|
|
|
},
|
|
|
- // {
|
|
|
- // prop: 'ossId',
|
|
|
- // label: '文件Id'
|
|
|
- // },
|
|
|
{
|
|
|
- prop: 'status',
|
|
|
- label: '状态',
|
|
|
+ prop: 'source',
|
|
|
+ label: '数据源',
|
|
|
render: (h, params) => {
|
|
|
- if (params.row.status == 0) {
|
|
|
- return h('span', { class: 'warning-state' }, '失败')
|
|
|
+ if (params.row.source == 1) {
|
|
|
+ return h('span', { class: 'success-state' }, '飞参数据')
|
|
|
} else {
|
|
|
- return h('span', { class: 'success-state' }, '成功')
|
|
|
+ return h('span', { class: 'success-state' }, 'MDC数据')
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -188,192 +123,117 @@ export default {
|
|
|
width: '240px',
|
|
|
group: [
|
|
|
{
|
|
|
- name: '查看',
|
|
|
- type: 'text',
|
|
|
- round: false,
|
|
|
- plain: false,
|
|
|
- onClick: (row, index, scope) => {
|
|
|
- this.checkResultList(row)
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- name: '删除',
|
|
|
+ name: '查看警告列表',
|
|
|
type: 'text',
|
|
|
round: false,
|
|
|
plain: false,
|
|
|
onClick: (row, index, scope) => {
|
|
|
- this.remove([row])
|
|
|
+ this.checkWarningList(row)
|
|
|
}
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
],
|
|
|
- sortieNoColumns: [
|
|
|
- {
|
|
|
- prop: 'sortieNo',
|
|
|
- label: '架次号',
|
|
|
- render: (h, params) => {
|
|
|
- const matchedItem = this.allTaskExecond.find((item) => params.row.sortieNo.trim() === item.taskId.trim())
|
|
|
- if (matchedItem) {
|
|
|
- return h('span', matchedItem.taskName)
|
|
|
- } else {
|
|
|
- return h('span', {}, '')
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'source',
|
|
|
- label: '数据来源',
|
|
|
- render: (h, params) => {
|
|
|
- if (params.row.source == 1) {
|
|
|
- return h('span', { class: 'success-state' }, '飞参数据')
|
|
|
- } else {
|
|
|
- return h('span', { class: 'success-state' }, 'MDC数据')
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'ossId',
|
|
|
- label: '文件Id'
|
|
|
- }
|
|
|
- ],
|
|
|
- resultColumns: [
|
|
|
- {
|
|
|
- prop: 'sortieNo',
|
|
|
- label: '架次号',
|
|
|
- render: (h, params) => {
|
|
|
- const matchedItem = this.allTaskExecond.find((item) => params.row.sortieNo.trim() === item.taskId.trim())
|
|
|
- if (matchedItem) {
|
|
|
- return h('span', matchedItem.taskName)
|
|
|
- } else {
|
|
|
- return h('span', {}, '')
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'aircraftId',
|
|
|
- label: '编目',
|
|
|
- render: (h, params) => {
|
|
|
- const matchedItem = this.aircaftCatalogAll.find((item) => params.row.aircraftId.trim() === item.aircaftCatalogId.trim())
|
|
|
- if (matchedItem) {
|
|
|
- return h('span', matchedItem.aircaftCatalogCode)
|
|
|
- } else {
|
|
|
- return h('span', {}, '')
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
+ options: {
|
|
|
+ stripe: true, // 斑马纹
|
|
|
+ mutiSelect: true, // 多选框
|
|
|
+ index: false, // 显示序号, 多选则 mutiSelect
|
|
|
+ loading: false, // 表格动画
|
|
|
+ initTable: false, // 是否一挂载就加载数据
|
|
|
+ border: true,
|
|
|
+ height: 'calc(100vh - 300px)'
|
|
|
+ },
|
|
|
+ tableCheckItems: [],
|
|
|
+ tableData: [],
|
|
|
+ tableRequset: {
|
|
|
+ total: 0,
|
|
|
+ pageIndex: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ searchValue: ''
|
|
|
+ },
|
|
|
+ warningColumns: [
|
|
|
{
|
|
|
prop: 'code',
|
|
|
- label: '警告代码'
|
|
|
+ label: 'HMC码'
|
|
|
},
|
|
|
{
|
|
|
prop: 'name',
|
|
|
- label: '警告名称'
|
|
|
+ label: '名称'
|
|
|
},
|
|
|
{
|
|
|
prop: 'describe',
|
|
|
- label: '警告描述'
|
|
|
+ label: '描述'
|
|
|
},
|
|
|
{
|
|
|
prop: 'status',
|
|
|
- label: '结果',
|
|
|
+ label: '是否虚警',
|
|
|
render: (h, params) => {
|
|
|
- const result = JSON.parse(params.row.status)[0]
|
|
|
- const isfalseAlarm = result['是否虚警']
|
|
|
- if (isfalseAlarm == 0) {
|
|
|
- return h('span', { class: 'warning-state' }, '否')
|
|
|
+ if (params.row.status == '0') {
|
|
|
+ return h('span', { class: 'warning-state' }, '实警')
|
|
|
} else {
|
|
|
- return h('span', { class: 'success-state' }, '是')
|
|
|
+ return h('span', { class: 'success-state' }, '虚警')
|
|
|
}
|
|
|
}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ button: true,
|
|
|
+ label: '操作',
|
|
|
+ width: '240px',
|
|
|
+ group: [
|
|
|
+ {
|
|
|
+ name: '查看',
|
|
|
+ type: 'text',
|
|
|
+ round: false,
|
|
|
+ plain: false,
|
|
|
+ onClick: (row, index, scope) => {
|
|
|
+ this.checkCurve(row)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
}
|
|
|
],
|
|
|
- options: {
|
|
|
+ warningOptions: {
|
|
|
stripe: true, // 斑马纹
|
|
|
mutiSelect: true, // 多选框
|
|
|
index: false, // 显示序号, 多选则 mutiSelect
|
|
|
loading: false, // 表格动画
|
|
|
initTable: false, // 是否一挂载就加载数据
|
|
|
border: true,
|
|
|
- height: 'calc(100vh - 300px)'
|
|
|
- },
|
|
|
- sortieNoOptions: {
|
|
|
- stripe: true, // 斑马纹
|
|
|
- mutiSelect: false, // 多选框
|
|
|
- index: true, // 显示序号, 多选则 mutiSelect
|
|
|
- loading: false, // 表格动画
|
|
|
- initTable: false, // 是否一挂载就加载数据
|
|
|
- border: true,
|
|
|
- height: '250px'
|
|
|
- },
|
|
|
- resultOptions: {
|
|
|
- stripe: true,
|
|
|
- mutiSelect: false,
|
|
|
- index: false,
|
|
|
- loading: false,
|
|
|
- initTable: false,
|
|
|
- border: true,
|
|
|
- height: '300px'
|
|
|
- },
|
|
|
- resultTableRequset: {
|
|
|
- total: 0,
|
|
|
- pageIndex: 1,
|
|
|
- pageSize: 10,
|
|
|
- searchValue: ''
|
|
|
- },
|
|
|
- tableCheckItems: [],
|
|
|
- tableData: [],
|
|
|
- resultTableData: [],
|
|
|
- SortieNoTableRequset: {
|
|
|
- total: 0,
|
|
|
- pageIndex: 1,
|
|
|
- pageSize: 10,
|
|
|
- searchValue: ''
|
|
|
+ height: 'calc(100vh - 600px)'
|
|
|
},
|
|
|
- tableRequset: {
|
|
|
+ warningTableCheckItems: [],
|
|
|
+ warningTableData: [],
|
|
|
+ warningTableRequset: {
|
|
|
total: 0,
|
|
|
pageIndex: 1,
|
|
|
pageSize: 10,
|
|
|
searchValue: ''
|
|
|
},
|
|
|
- executeForm: {
|
|
|
- modelId: '',
|
|
|
- modelType: '',
|
|
|
- ossId: '',
|
|
|
- aircraftId: '',
|
|
|
- sortieNo: '',
|
|
|
- param: '',
|
|
|
- columnData: [],
|
|
|
- warningIds: []
|
|
|
+ debounceFn: debounce(this.fetch, 500),
|
|
|
+ aircaftCatalogAll: [],
|
|
|
+ chartData: {
|
|
|
+ title: '',
|
|
|
+ legendData: [],
|
|
|
+ xAxisData: [],
|
|
|
+ yAxisData: [],
|
|
|
+ seriesData: []
|
|
|
},
|
|
|
form: {
|
|
|
id: '',
|
|
|
sortieNo: '',
|
|
|
aircraftId: '',
|
|
|
- modelType: '',
|
|
|
- param: '',
|
|
|
- columnData: [],
|
|
|
- ossId: '',
|
|
|
- status: '',
|
|
|
- tenantId: '',
|
|
|
- version: '',
|
|
|
- delFlag: '',
|
|
|
- createBy: '',
|
|
|
- createTime: '',
|
|
|
- updateBy: '',
|
|
|
- updateTime: ''
|
|
|
+ code: '',
|
|
|
+ name: '',
|
|
|
+ describe: [],
|
|
|
+ status: ''
|
|
|
},
|
|
|
- debounceFn: debounce(this.fetch, 500),
|
|
|
- aircaftCatalogAll: [],
|
|
|
- transferData: [],
|
|
|
- transferRightData: [],
|
|
|
- algoTypeList: [{ id: 4, name: '虚警抑制' }],
|
|
|
- modelList: [],
|
|
|
- percentage: 0,
|
|
|
- sortieNoList: [],
|
|
|
- warningIdsList: [],
|
|
|
- sortieNoTableCheck: [],
|
|
|
- allTaskExecond: []
|
|
|
+ airForm: {
|
|
|
+ aircraftId: '',
|
|
|
+ sortieNo: '',
|
|
|
+ flightDate: ''
|
|
|
+ },
|
|
|
+ isFalseAlarm: '0',
|
|
|
+ currentSortieNo: ''
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
@@ -382,6 +242,12 @@ export default {
|
|
|
this.debounceFn()
|
|
|
}
|
|
|
},
|
|
|
+ // computed: {
|
|
|
+ // falseAlarmText() {
|
|
|
+ // console.log('this.isFalseAlarm', this.isFalseAlarm)
|
|
|
+ // return this.isFalseAlarm === '1' ? '实警' : '虚警'
|
|
|
+ // }
|
|
|
+ // },
|
|
|
mounted() {
|
|
|
this.getAircaftCatalogTreeAPI()
|
|
|
},
|
|
@@ -402,28 +268,7 @@ export default {
|
|
|
this.aircaftModelIdList = this.getTreeLeafData(data[0]?.children)
|
|
|
.map((e) => e.id)
|
|
|
.toString()
|
|
|
- this.getFalseAlarmAPI({ aircraftId: this.aircaftModelIdList })
|
|
|
- }
|
|
|
- const res = await getTaskExecondRegister({
|
|
|
- status: null,
|
|
|
- queryParam: '',
|
|
|
- taskId: '',
|
|
|
- aircaftCatalogId: ''
|
|
|
- })
|
|
|
- this.allTaskExecond = flattenTree(res.data)
|
|
|
- } catch (error) {}
|
|
|
- },
|
|
|
-
|
|
|
- async removeFalseAlarmAPI(params) {
|
|
|
- try {
|
|
|
- const { code } = await removeFalseAlarm(params)
|
|
|
- if (code === 200) {
|
|
|
- this.$message({
|
|
|
- type: 'success',
|
|
|
- message: '操作成功!'
|
|
|
- })
|
|
|
- await this.getFalseAlarmAPI({ aircraftId: this.aircaftModelIdList })
|
|
|
- this.handleClose()
|
|
|
+ this.getDataImportAPI({ aircraftId: this.aircaftModelIdList })
|
|
|
}
|
|
|
} catch (error) {}
|
|
|
},
|
|
@@ -444,280 +289,154 @@ export default {
|
|
|
return newArr
|
|
|
},
|
|
|
|
|
|
- async getFalseAlarmAPI(params) {
|
|
|
+ async getDataImportAPI(params) {
|
|
|
if (this.$refs.table) this.$refs.table.clearSelection()
|
|
|
const { keyWord } = this
|
|
|
const { pageSize, pageIndex } = this.tableRequset
|
|
|
const {
|
|
|
data: { list, total }
|
|
|
- } = await getFalseAlarm({ pageSize, pageNum: pageIndex, ...params })
|
|
|
+ } = await getDataImport({ pageSize, pageNum: pageIndex, ...params, source: 1 })
|
|
|
this.tableData = list
|
|
|
this.tableRequset.total = total
|
|
|
},
|
|
|
|
|
|
- async getFalseAlarmResultAPI(params) {
|
|
|
- if (this.$refs.resultTableRef) {
|
|
|
- this.$refs.resultTableRef.clearSelection()
|
|
|
- this.resultTableData = []
|
|
|
- }
|
|
|
- const { keyWord } = this
|
|
|
- const { pageSize, pageIndex } = this.resultTableRequset
|
|
|
- const {
|
|
|
- data: { list, total }
|
|
|
- } = await getFalseAlarmResult({ pageSize, pageNum: pageIndex, ...params })
|
|
|
- this.resultTableData = list
|
|
|
- this.resultTableRequset.total = total
|
|
|
- },
|
|
|
-
|
|
|
fetch() {
|
|
|
- this.getFalseAlarmAPI({ aircraftId: this.aircaftModelIdList })
|
|
|
+ this.getDataImportAPI({ aircraftId: this.aircaftModelIdList })
|
|
|
},
|
|
|
|
|
|
async searchClick() {
|
|
|
- this.getFalseAlarmAPI({ aircraftId: this.aircaftModelIdList, sortieNo: this.keyWordData })
|
|
|
- },
|
|
|
-
|
|
|
- async addFalseAlarmAPI() {
|
|
|
- try {
|
|
|
- delete this.form.aircaftModelName
|
|
|
- const { code } = await addFalseAlarm({ ...this.form })
|
|
|
- if (code === 200) {
|
|
|
- this.$message({
|
|
|
- type: 'success',
|
|
|
- message: '操作成功!'
|
|
|
- })
|
|
|
- this.getFalseAlarmAPI({ aircraftId: this.aircaftModelIdList })
|
|
|
- }
|
|
|
- } catch (error) {}
|
|
|
- },
|
|
|
-
|
|
|
- async updateFalseAlarmAPI() {
|
|
|
- try {
|
|
|
- const { code } = await updateFalseAlarm({ ...this.form })
|
|
|
- if (code === 200) {
|
|
|
- this.$message({
|
|
|
- type: 'success',
|
|
|
- message: '操作成功!'
|
|
|
- })
|
|
|
- this.handleClose()
|
|
|
- this.getFalseAlarmAPI({ aircraftId: this.aircaftModelIdList })
|
|
|
- }
|
|
|
- } catch (error) {}
|
|
|
+ this.getDataImportAPI({ aircraftId: this.aircaftModelIdList, sortieNo: this.keyWordData })
|
|
|
},
|
|
|
|
|
|
treeNodeClick(data) {
|
|
|
this.$refs.table.clearSelection()
|
|
|
- this.currentNodeKey = this.executeForm.aircraftId = data.id
|
|
|
+ this.currentNodeKey = data.id
|
|
|
this.currentNode = data
|
|
|
this.aircaftModelIdList = this.getTreeLeafData(data.children.length ? data.children : [data])
|
|
|
.map((e) => e.id)
|
|
|
.toString()
|
|
|
- this.getFalseAlarmAPI({ aircraftId: this.aircaftModelIdList })
|
|
|
+ if (!this.aircaftModelIdList) {
|
|
|
+ this.aircaftModelIdList = '#'
|
|
|
+ }
|
|
|
+ this.getDataImportAPI({ aircraftId: this.aircaftModelIdList })
|
|
|
},
|
|
|
|
|
|
openDialog() {
|
|
|
- this.executeForm.aircraftId = this.currentNodeKey
|
|
|
- if (this.executeForm.aircraftId !== '') {
|
|
|
- this.changeAircraftId(this.executeForm.aircraftId)
|
|
|
- }
|
|
|
- this.dialogTitle = '新增'
|
|
|
+ this.dialogTitle = '警告列表'
|
|
|
this.dialogVisible = true
|
|
|
},
|
|
|
|
|
|
handleClose() {
|
|
|
- this.$refs.sortieNoTableRef.clearSelection()
|
|
|
- this.$refs.warningTableRef.clearSelection()
|
|
|
- this.sortieNoList = []
|
|
|
- this.warningIdsList = []
|
|
|
this.dialogVisible = false
|
|
|
- this.transferRightData = []
|
|
|
- this.executeForm = {
|
|
|
- modelId: '',
|
|
|
- modelType: '',
|
|
|
- ossId: '',
|
|
|
+ this.warningTableData = []
|
|
|
+ this.currentSortieNo = ''
|
|
|
+ this.airForm = {
|
|
|
aircraftId: '',
|
|
|
sortieNo: '',
|
|
|
- param: '',
|
|
|
- columnData: [],
|
|
|
- warningIds: []
|
|
|
+ flightDate: ''
|
|
|
}
|
|
|
},
|
|
|
|
|
|
- handUpdate(row) {
|
|
|
- this.dialogTitle = '编辑'
|
|
|
- this.form = deepClone(row)
|
|
|
- this.dialogVisible = true
|
|
|
- },
|
|
|
- changeColumnData(value) {
|
|
|
- const data = []
|
|
|
- this.transferData.forEach((item) => {
|
|
|
- value.forEach((rightData) => {
|
|
|
- if (rightData === item.key) {
|
|
|
- data.push(item.label)
|
|
|
- }
|
|
|
- })
|
|
|
- })
|
|
|
- this.executeForm.columnData = data
|
|
|
- },
|
|
|
- checkResultList(row) {
|
|
|
- if (row.status === '0') {
|
|
|
- this.$message({
|
|
|
- type: 'warning',
|
|
|
- message: '执行失败,无法查看结果!'
|
|
|
- })
|
|
|
- return
|
|
|
+ innerDialogClose() {
|
|
|
+ this.innerVisible = false
|
|
|
+ this.chartData = {
|
|
|
+ title: '',
|
|
|
+ legendData: [],
|
|
|
+ xAxisData: [],
|
|
|
+ yAxisData: [],
|
|
|
+ seriesData: []
|
|
|
}
|
|
|
- this.getFalseAlarmResultAPI({ falseAlarmId: row.id })
|
|
|
- this.resultVisible = true
|
|
|
+ this.isFalseAlarm = false
|
|
|
+ },
|
|
|
+
|
|
|
+ submit() {
|
|
|
+ this.form.status = this.isFalseAlarm
|
|
|
+ this.updateWarningAPI()
|
|
|
},
|
|
|
- async beginExecute() {
|
|
|
- if (this.warningIdsList.length == 0 || this.executeForm.warningIds.length == 0) {
|
|
|
- this.$message({
|
|
|
- type: 'warning',
|
|
|
- message: '该架次未选择警告,无法进行虚警抑制!'
|
|
|
- })
|
|
|
- return
|
|
|
- }
|
|
|
- this.progressVisible = true
|
|
|
- let myTimer = setInterval(() => {
|
|
|
- if (this.percentage < 100) {
|
|
|
- this.percentage += 1
|
|
|
- } else {
|
|
|
- clearInterval(myTimer)
|
|
|
- this.$message({
|
|
|
- type: 'error',
|
|
|
- message: '执行有误'
|
|
|
- })
|
|
|
- this.progressVisible = false
|
|
|
- this.percentage = 0
|
|
|
- }
|
|
|
- }, 30)
|
|
|
|
|
|
+ async updateWarningAPI() {
|
|
|
try {
|
|
|
- const res = await executeFalseAlarm(this.executeForm)
|
|
|
- this.percentage = 100
|
|
|
- clearInterval(myTimer)
|
|
|
- if (res?.code === 200) {
|
|
|
+ const { code } = await updateWarning({ ...this.form })
|
|
|
+ if (code === 200) {
|
|
|
this.$message({
|
|
|
type: 'success',
|
|
|
- message: '执行成功!'
|
|
|
- })
|
|
|
- this.handleClose()
|
|
|
- const result = JSON.parse(res.data)[0]
|
|
|
- const isfalseAlarm = result['是否虚警'] === 0 ? '否' : '是'
|
|
|
- this.getFalseAlarmAPI({ aircraftId: this.aircaftModelIdList })
|
|
|
- this.$alert(`故障编码为:${result['故障编码']},是否虚警:${isfalseAlarm},`, '虚警抑制结果', {
|
|
|
- confirmButtonText: '确定'
|
|
|
+ message: '操作成功!'
|
|
|
})
|
|
|
+ this.innerDialogClose()
|
|
|
+ this.getWarningAPI({ sortieNo: this.currentSortieNo })
|
|
|
}
|
|
|
- } catch (error) {
|
|
|
- clearInterval(myTimer)
|
|
|
- } finally {
|
|
|
- this.progressVisible = false
|
|
|
- this.percentage = 0
|
|
|
- }
|
|
|
- },
|
|
|
- async changeModelType(type) {
|
|
|
- try {
|
|
|
- const {
|
|
|
- data: { list }
|
|
|
- } = await getModel({ type })
|
|
|
- this.modelList = list
|
|
|
} catch (error) {}
|
|
|
},
|
|
|
|
|
|
- changeModelId(modelId) {
|
|
|
- const modelColumnData = JSON.parse(
|
|
|
- this.modelList.find((item) => {
|
|
|
- return item.id === modelId
|
|
|
- }).columnData
|
|
|
- )
|
|
|
-
|
|
|
- const labelToKeyMap = this.transferData.reduce((acc, item) => {
|
|
|
- acc[item.label] = item.key
|
|
|
- return acc
|
|
|
- }, {})
|
|
|
-
|
|
|
- modelColumnData.forEach((item) => {
|
|
|
- if (labelToKeyMap.hasOwnProperty(item)) {
|
|
|
- this.executeForm.columnData.push(item)
|
|
|
- this.transferRightData.push(labelToKeyMap[item])
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
-
|
|
|
- async changeAircraftId(aircraftId) {
|
|
|
- try {
|
|
|
- const {
|
|
|
- data: { list, total }
|
|
|
- } = await getDataImport({ aircraftId })
|
|
|
- this.sortieNoList = list
|
|
|
- this.SortieNoTableRequset.total = total
|
|
|
- } catch (error) {}
|
|
|
+ selection(val) {
|
|
|
+ this.tableCheckItems = val
|
|
|
},
|
|
|
|
|
|
- async changeSortieNo(sortieNo) {
|
|
|
- try {
|
|
|
- const {
|
|
|
- data: { list }
|
|
|
- } = await getWarning({ aircraftId: this.executeForm.aircraftId, sortieNo })
|
|
|
- this.executeForm.sortieNo = sortieNo
|
|
|
- this.warningIdsList = list
|
|
|
- } catch (error) {}
|
|
|
+ checkWarningList(row) {
|
|
|
+ this.currentSortieNo = this.airForm.sortieNo = row.sortieNo
|
|
|
+ this.airForm.aircraftId = row.aircraftId
|
|
|
+ this.airForm.flightDate = row.flightDate
|
|
|
+ this.getWarningAPI({ sortieNo: this.currentSortieNo })
|
|
|
+ this.openDialog()
|
|
|
},
|
|
|
|
|
|
- submit() {
|
|
|
- switch (this.dialogTitle) {
|
|
|
- case '编辑':
|
|
|
- this.updateFalseAlarmAPI()
|
|
|
- break
|
|
|
- case '新增':
|
|
|
- this.beginExecute()
|
|
|
- break
|
|
|
- }
|
|
|
+ async getWarningAPI(params) {
|
|
|
+ if (this.$refs.warningTable) this.$refs.warningTable.clearSelection()
|
|
|
+ const { pageSize, pageIndex } = this.warningTableRequset
|
|
|
+ const {
|
|
|
+ data: { list, total }
|
|
|
+ } = await getWarning({ pageSize, pageNum: pageIndex, ...params })
|
|
|
+ this.warningTableData = list
|
|
|
+ this.warningTableRequset.total = total
|
|
|
},
|
|
|
|
|
|
- selection(val) {
|
|
|
- this.tableCheckItems = val
|
|
|
+ async checkCurve(row) {
|
|
|
+ this.isFalseAlarm = row.status
|
|
|
+ this.form = deepClone(row)
|
|
|
+ const { data } = await getCurveData(row.code, row.sortieNo)
|
|
|
+ this.getResultData(data)
|
|
|
},
|
|
|
|
|
|
- async sortieNoSelection(val) {
|
|
|
- this.executeForm.ossId = val.ossId
|
|
|
- if (val.ossId) {
|
|
|
- try {
|
|
|
- const res = await getColumnDataAPI(val.ossId)
|
|
|
- if (res.code === 200) {
|
|
|
- this.transferData = []
|
|
|
- res.data.forEach((item, index) => {
|
|
|
- this.transferData.push({
|
|
|
- key: index,
|
|
|
- label: item
|
|
|
- })
|
|
|
- })
|
|
|
-
|
|
|
- this.changeSortieNo(val.sortieNo)
|
|
|
- }
|
|
|
- } catch (error) {}
|
|
|
+ getResultData(data) {
|
|
|
+ this.chartData = {
|
|
|
+ title: '',
|
|
|
+ legendData: [],
|
|
|
+ xAxisData: [],
|
|
|
+ yAxisData: [],
|
|
|
+ seriesData: []
|
|
|
}
|
|
|
- },
|
|
|
-
|
|
|
- warningSelection(val) {
|
|
|
- this.executeForm.warningIds = [val.id]
|
|
|
- if (this.executeForm.modelId) {
|
|
|
- this.changeModelId(this.executeForm.modelId)
|
|
|
+ // const { contentData, headData } = this.handleResultData(JSON.parse(data))
|
|
|
+ const contentData = JSON.parse(data)
|
|
|
+ const headData = Object.keys(contentData)
|
|
|
+ this.chartData.legendData = headData
|
|
|
+ for (var key in contentData) {
|
|
|
+ if (key === '时间') {
|
|
|
+ this.chartData.xAxisData = contentData['时间']
|
|
|
+ } else {
|
|
|
+ this.chartData.seriesData.push({
|
|
|
+ name: key,
|
|
|
+ type: 'line',
|
|
|
+ data: contentData[key],
|
|
|
+ connectNulls: true
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
+ this.innerVisible = true
|
|
|
},
|
|
|
|
|
|
- remove(row) {
|
|
|
- this.$confirm('是否删除该数据', '提示', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning'
|
|
|
+ handleResultData(resultData) {
|
|
|
+ console.log('resultData', resultData)
|
|
|
+ const headData = Object.keys(resultData)
|
|
|
+ const contentData = {}
|
|
|
+ headData.forEach((headItem) => {
|
|
|
+ contentData[headItem] = []
|
|
|
})
|
|
|
- .then(() => {
|
|
|
- this.removeFalseAlarmAPI(row.map((e) => e.id))
|
|
|
- })
|
|
|
- .catch(() => {})
|
|
|
+ resultData.forEach((item) => {
|
|
|
+ for (var key in item) {
|
|
|
+ contentData[key].push(item[key])
|
|
|
+ }
|
|
|
+ })
|
|
|
+ return { contentData, headData }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -725,7 +444,10 @@ export default {
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
@import '../index.scss';
|
|
|
-::v-deep .single-select-table thead .el-table-column--selection .cell {
|
|
|
- display: none;
|
|
|
+.isFalseAlarm {
|
|
|
+ position: absolute;
|
|
|
+ right: 20px;
|
|
|
+ color: #fff;
|
|
|
+ z-index: 9999;
|
|
|
}
|
|
|
</style>
|