|
@@ -17,19 +17,6 @@
|
|
|
</div>
|
|
|
<!-- 警告列表对话框 -->
|
|
|
<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="form" :inline="true" :model="form" label-width="80px" disabled>
|
|
|
<el-form-item label="编目" prop="aircraftId">
|
|
|
<el-select v-model="form.aircraftId">
|
|
@@ -44,6 +31,28 @@
|
|
|
</el-form-item> -->
|
|
|
</el-form>
|
|
|
<LTable ref="warningTable" @selection-change="selection" :defaultFetch="false" :showColumnSetting="false" :columns="warningColumns" :dataSource="warningTableData" :options="warningOptions" :pagination="warningTableRequset"></LTable>
|
|
|
+ <el-dialog width="80%" title="飞参数据曲线" :visible.sync="innerVisible" :before-close="innerDialogClose" append-to-body>
|
|
|
+ <PlayBackChart :chartData="chartData" />
|
|
|
+ <div style="margin-top: 20px">
|
|
|
+ <span style="color: #fff; margin-left: 30px">请选择时间区间:</span>
|
|
|
+ <el-date-picker v-model="mathTime" placement="bottom-start" value-format="yyyy-MM-dd HH:mm:ss.SSS" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="handleMathTime" :clearable="false">
|
|
|
+ </el-date-picker>
|
|
|
+
|
|
|
+ <el-button icon="el-icon-refresh" circle class="refresh" @click="resetTime"></el-button>
|
|
|
+ <el-button type="success" @click="getExecuteMathAPI" style="margin-left: 15px">确 定</el-button>
|
|
|
+ <LTable ref="mathTable" :defaultFetch="false" :columns="mathColumns" :dataSource="mathTableData" :options="mathOptions"></LTable>
|
|
|
+ </div>
|
|
|
+ <div style="width: 100%; color: #fff; text-align: center">
|
|
|
+ <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>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="innerDialogClose">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="submit">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
</el-dialog>
|
|
|
<el-dialog title="执行进度" :visible.sync="progressVisible" width="800px">
|
|
|
<el-progress :text-inside="true" :stroke-width="24" :percentage="percentage" status="success"></el-progress>
|
|
@@ -59,7 +68,7 @@ import { getAircaftCatalogTree } from '@/api/als/sideTree'
|
|
|
import { getAircaftCatalogAll } from '@/api/als/aircraft'
|
|
|
import PlayBackChart from '@/views/als/components/Charts/playBackChart.vue'
|
|
|
import { deepClone, debounce } from '@/utils/index'
|
|
|
-import { executeFalseAlarm, getOssIdDataAPI } from '@/api/als/algorithm'
|
|
|
+import { executeFalseAlarm, getOssIdDataAPI, executeMath } from '@/api/als/algorithm'
|
|
|
import { getWarningResult, updateWarningResult } from '@/api/als/falseAlarmResult'
|
|
|
|
|
|
export default {
|
|
@@ -242,6 +251,58 @@ export default {
|
|
|
pageSize: 10,
|
|
|
searchValue: ''
|
|
|
},
|
|
|
+ mathColumns: [
|
|
|
+ {
|
|
|
+ prop: 'params',
|
|
|
+ label: '参数'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'mean',
|
|
|
+ label: '算数平均数'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'variance',
|
|
|
+ label: '方差'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'populationVariance',
|
|
|
+ label: '总体方差'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'sum',
|
|
|
+ label: '和'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'max',
|
|
|
+ label: '最大值'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'min',
|
|
|
+ label: '最小值'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'mode',
|
|
|
+ label: '众数'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'geometricMean',
|
|
|
+ label: '几何平均数'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'sumSq',
|
|
|
+ label: '平方和'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ mathOptions: {
|
|
|
+ stripe: false, // 斑马纹
|
|
|
+ mutiSelect: false, // 多选框
|
|
|
+ index: false, // 显示序号, 多选则 mutiSelect
|
|
|
+ loading: false, // 表格动画
|
|
|
+ initTable: false, // 是否一挂载就加载数据
|
|
|
+ border: true,
|
|
|
+ height: '300px'
|
|
|
+ },
|
|
|
+ mathTableData: [],
|
|
|
debounceFn: debounce(this.fetch, 500),
|
|
|
aircaftCatalogAll: [],
|
|
|
chartData: {
|
|
@@ -265,7 +326,17 @@ export default {
|
|
|
},
|
|
|
isFalseAlarm: '0',
|
|
|
currentSortieNo: '',
|
|
|
- percentage: 0
|
|
|
+ percentage: 0,
|
|
|
+ mathTime: [],
|
|
|
+ mathParams: {
|
|
|
+ code: '',
|
|
|
+ sortieNo: '',
|
|
|
+ beginTime: '',
|
|
|
+ endTime: ''
|
|
|
+ },
|
|
|
+ backupsTime: []
|
|
|
+ // startTime:'',
|
|
|
+ // endTime:'',
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
@@ -379,6 +450,13 @@ export default {
|
|
|
id: null,
|
|
|
resultContent: ''
|
|
|
}
|
|
|
+ this.mathParams = {
|
|
|
+ code: '',
|
|
|
+ sortieNo: '',
|
|
|
+ beginTime: '',
|
|
|
+ endTime: ''
|
|
|
+ }
|
|
|
+ this.mathTableData = []
|
|
|
this.isFalseAlarm = false
|
|
|
},
|
|
|
|
|
@@ -436,6 +514,9 @@ export default {
|
|
|
async checkCurve(row) {
|
|
|
this.isFalseAlarm = row.resultContent
|
|
|
this.warningForm = deepClone(row)
|
|
|
+ this.mathParams.code = row.code
|
|
|
+ this.mathParams.sortieNo = row.sortieNo
|
|
|
+ this.getExecuteMathAPI()
|
|
|
try {
|
|
|
const { code, data } = await getCurveData(row.code, row.sortieNo)
|
|
|
if (code === 200) {
|
|
@@ -451,6 +532,31 @@ export default {
|
|
|
} catch (error) {}
|
|
|
},
|
|
|
|
|
|
+ handleMathTime(time) {
|
|
|
+ this.mathParams.beginTime = time[0]
|
|
|
+ this.mathParams.endTime = time[1]
|
|
|
+ },
|
|
|
+
|
|
|
+ resetTime() {
|
|
|
+ this.mathTime = this.backupsTime
|
|
|
+ },
|
|
|
+
|
|
|
+ // 获取数学数据
|
|
|
+ async getExecuteMathAPI() {
|
|
|
+ try {
|
|
|
+ const { data, code } = await executeMath(this.mathParams)
|
|
|
+ if (code === 200) {
|
|
|
+ this.mathTableData = []
|
|
|
+ Object.keys(data).forEach((item) => {
|
|
|
+ this.mathTableData.push({
|
|
|
+ params: item,
|
|
|
+ ...data[item]
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } catch (error) {}
|
|
|
+ },
|
|
|
+
|
|
|
getResultData(data) {
|
|
|
this.chartData = {
|
|
|
title: '',
|
|
@@ -465,7 +571,10 @@ export default {
|
|
|
this.chartData.legendData = headData
|
|
|
for (var key in contentData) {
|
|
|
if (key === '时间') {
|
|
|
- this.chartData.xAxisData = contentData['时间']
|
|
|
+ const timeList = contentData['时间']
|
|
|
+ const time = [timeList[0], timeList[timeList.length - 1]]
|
|
|
+ this.mathTime = this.backupsTime = time
|
|
|
+ this.chartData.xAxisData = timeList
|
|
|
} else {
|
|
|
this.chartData.seriesData.push({
|
|
|
name: key,
|
|
@@ -535,10 +644,17 @@ export default {
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
@import '../index.scss';
|
|
|
+
|
|
|
.isFalseAlarm {
|
|
|
- position: absolute;
|
|
|
- right: 20px;
|
|
|
+ // position: absolute;
|
|
|
+ // right: 20px;
|
|
|
+ margin-top: 20px;
|
|
|
color: #fff;
|
|
|
z-index: 9999;
|
|
|
}
|
|
|
+.refresh {
|
|
|
+ padding: 5px !important;
|
|
|
+ border-radius: 50% !important;
|
|
|
+ margin-left: 10px;
|
|
|
+}
|
|
|
</style>
|