|
@@ -20,41 +20,42 @@
|
|
|
</div>
|
|
|
<!-- 添加或修改虚警抑制对话框 -->
|
|
|
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="800px" :before-close="handleClose">
|
|
|
- <el-form ref="form" :model="form" label-width="80px">
|
|
|
+ <el-form ref="executeForm" :model="executeForm" label-width="80px">
|
|
|
<el-form-item label="编目" prop="aircraftId">
|
|
|
- <el-select v-model="form.aircraftId" placeholder="请选择编目" @change="changeAircraftId(form.aircraftId)">
|
|
|
+ <el-select v-model="executeForm.aircraftId" placeholder="请选择编目" @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-form-item label="架次号" prop="sortieNo">
|
|
|
- <el-select v-model="form.sortieNo" @change="changeSortieNo(form.sortieNo)" placeholder="请选择架次号">
|
|
|
- <el-option v-for="item in sortieNoList" :key="item.id" :label="item.sortieNo" :value="item.id"> </el-option>
|
|
|
- </el-select>
|
|
|
+ <LTable ref="sortieNoTableRef" @selection-change="sortieNoSelection" class="single-select-table" :columns="sortieNoColumns" :dataSource="sortieNoList" :options="sortieNoOptions" :pagination="SortieNoTableRequset"></LTable>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="虚警类型" prop="falseAlarmType">
|
|
|
- <el-select v-model="form.falseAlarmType" placeholder="请选择虚警类型">
|
|
|
- <el-option v-for="item in falseAlarmTypeList" :key="item.id" :label="item.name" :value="item.id"> </el-option>
|
|
|
- </el-select>
|
|
|
+ <el-form-item label="警告列表" prop="warningIds">
|
|
|
+ <el-table ref="warningTableRef" :data="warningIdsList" @selection-change="warningSelection" style="width: 100%; height: 200px">
|
|
|
+ <el-table-column type="selection" width="55"></el-table-column>
|
|
|
+ <el-table-column prop="id" label="警告ID"> </el-table-column>
|
|
|
+ <el-table-column prop="name" label="名称"> </el-table-column>
|
|
|
+ <el-table-column prop="describe" label="描述"> </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <!-- <el-select v-model="executeForm.warningIds" placeholder="请选择警告列表">
|
|
|
+ <el-option v-for="item in warningIdsList" :key="item.id" :label="item.name" :value="item.id"> </el-option>
|
|
|
+ </el-select> -->
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="模型类型">
|
|
|
- <el-select v-model="form.modelType" placeholder="请选择模型类型" @change="changeModelType(form.modelType)">
|
|
|
- <el-option v-for="item in algoTypeList" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
+ <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-form-item label="模型名称">
|
|
|
- <el-select v-model="form.modelName" placeholder="模型名称">
|
|
|
- <el-option v-for="item in algoNameList" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
+ <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-form-item label="参数" prop="param">
|
|
|
- <el-input v-model="form.param" placeholder="请输入参数" />
|
|
|
+ <el-input v-model="executeForm.param" type="textarea" :rows="2" placeholder="请输入参数" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="数据列" prop="columnData">
|
|
|
<!-- <el-input v-model="form.columnData" placeholder="请输入数据列" /> -->
|
|
|
- <el-transfer v-model="form.columnData" :data="transferData"></el-transfer>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="文件Id" prop="ossId">
|
|
|
- <el-input v-model="form.ossId" placeholder="请输入文件Id" />
|
|
|
+ <el-transfer v-model="transferRightData" :data="transferData" @change="changeColumnData"></el-transfer>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
|
|
@@ -79,6 +80,8 @@
|
|
|
|
|
|
<script>
|
|
|
import { getFalseAlarm, addFalseAlarm, updateFalseAlarm, removeFalseAlarm } from '@/api/als/falseAlarm'
|
|
|
+import { getColumnDataAPI, executeFalseAlarm } from '@/api/als/algorithm'
|
|
|
+
|
|
|
import { getAircaftCatalogTree } from '@/api/als/sideTree'
|
|
|
import { getAircaftCatalogAll } from '@/api/als/aircraft'
|
|
|
import { getDataImport } from '@/api/als/dataImport'
|
|
@@ -187,6 +190,20 @@ export default {
|
|
|
]
|
|
|
}
|
|
|
],
|
|
|
+ sortieNoColumns: [
|
|
|
+ {
|
|
|
+ prop: 'sortieNo',
|
|
|
+ label: '架次号'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'source',
|
|
|
+ label: '数据来源'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'ossId',
|
|
|
+ label: '文件Id'
|
|
|
+ }
|
|
|
+ ],
|
|
|
options: {
|
|
|
stripe: true, // 斑马纹
|
|
|
mutiSelect: true, // 多选框
|
|
@@ -196,20 +213,38 @@ export default {
|
|
|
border: true,
|
|
|
height: 'calc(100vh - 300px)'
|
|
|
},
|
|
|
+ sortieNoOptions: {
|
|
|
+ stripe: true, // 斑马纹
|
|
|
+ mutiSelect: true, // 多选框
|
|
|
+ index: true, // 显示序号, 多选则 mutiSelect
|
|
|
+ loading: false, // 表格动画
|
|
|
+ initTable: false, // 是否一挂载就加载数据
|
|
|
+ border: true,
|
|
|
+ height: '250px'
|
|
|
+ },
|
|
|
tableCheckItems: [],
|
|
|
tableData: [],
|
|
|
+ SortieNoTableRequset: {
|
|
|
+ total: 0,
|
|
|
+ pageIndex: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ searchValue: ''
|
|
|
+ },
|
|
|
tableRequset: {
|
|
|
total: 0,
|
|
|
pageIndex: 1,
|
|
|
pageSize: 10,
|
|
|
searchValue: ''
|
|
|
},
|
|
|
- agloForm: {
|
|
|
- sortieNo: '',
|
|
|
+ executeForm: {
|
|
|
+ modelId: '',
|
|
|
+ modelType: '',
|
|
|
+ ossId: '',
|
|
|
aircraftId: '',
|
|
|
- agloType: '',
|
|
|
- agloName: '',
|
|
|
- paramsList: []
|
|
|
+ sortieNo: '',
|
|
|
+ param: '',
|
|
|
+ columnData: [],
|
|
|
+ warningIds: []
|
|
|
},
|
|
|
form: {
|
|
|
id: '',
|
|
@@ -231,11 +266,13 @@ export default {
|
|
|
debounceFn: debounce(this.fetch, 500),
|
|
|
aircaftCatalogAll: [],
|
|
|
transferData: [],
|
|
|
+ transferRightData: [],
|
|
|
algoTypeList: [{ id: 4, name: '虚警抑制' }],
|
|
|
- algoNameList: [],
|
|
|
+ modelList: [],
|
|
|
percentage: 0,
|
|
|
sortieNoList: [],
|
|
|
- falseAlarmTypeList: []
|
|
|
+ warningIdsList: [],
|
|
|
+ sortieNoTableCheck: []
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
@@ -271,8 +308,8 @@ export default {
|
|
|
|
|
|
async removeFalseAlarmAPI(params) {
|
|
|
try {
|
|
|
- const { success } = await removeFalseAlarm(params)
|
|
|
- if (success) {
|
|
|
+ const { code } = await removeFalseAlarm(params)
|
|
|
+ if (code === 200) {
|
|
|
this.$message({
|
|
|
type: 'success',
|
|
|
message: '操作成功!'
|
|
@@ -309,15 +346,15 @@ export default {
|
|
|
this.tableData = list
|
|
|
this.tableRequset.total = totalCount
|
|
|
},
|
|
|
- async getDataImportAPI(params) {
|
|
|
- if (this.$refs.table) this.$refs.table.clearSelection()
|
|
|
- const { pageSize, pageIndex } = this.tableRequset
|
|
|
- const {
|
|
|
- data: { list, totalCount }
|
|
|
- } = await getDataImport({ pageSize, pageIndex, ...params })
|
|
|
- this.tableData = list
|
|
|
- this.tableRequset.total = totalCount
|
|
|
- },
|
|
|
+ // async getDataImportAPI(params) {
|
|
|
+ // if (this.$refs.table) this.$refs.table.clearSelection()
|
|
|
+ // const { pageSize, pageIndex } = this.tableRequset
|
|
|
+ // const {
|
|
|
+ // data: { list, totalCount }
|
|
|
+ // } = await getDataImport({ pageSize, pageIndex, ...params })
|
|
|
+ // this.tableData = list
|
|
|
+ // this.tableRequset.total = totalCount
|
|
|
+ // },
|
|
|
|
|
|
fetch() {
|
|
|
this.getFalseAlarmAPI({ aircraftId: this.aircaftModelIdList })
|
|
@@ -330,8 +367,8 @@ export default {
|
|
|
async addFalseAlarmAPI() {
|
|
|
try {
|
|
|
delete this.form.aircaftModelName
|
|
|
- const { success } = await addFalseAlarm({ ...this.form })
|
|
|
- if (success) {
|
|
|
+ const { code } = await addFalseAlarm({ ...this.form })
|
|
|
+ if (code === 200) {
|
|
|
this.$message({
|
|
|
type: 'success',
|
|
|
message: '操作成功!'
|
|
@@ -357,8 +394,8 @@ export default {
|
|
|
|
|
|
async updateFalseAlarmAPI() {
|
|
|
try {
|
|
|
- const { success } = await updateFalseAlarm({ ...this.form })
|
|
|
- if (success) {
|
|
|
+ const { code } = await updateFalseAlarm({ ...this.form })
|
|
|
+ if (code === 200) {
|
|
|
this.$message({
|
|
|
type: 'success',
|
|
|
message: '操作成功!'
|
|
@@ -370,7 +407,7 @@ export default {
|
|
|
|
|
|
treeNodeClick(data) {
|
|
|
this.$refs.table.clearSelection()
|
|
|
- this.currentNodeKey = this.form.aircraftId = data.id
|
|
|
+ this.currentNodeKey = this.executeForm.aircraftId = data.id
|
|
|
this.currentNode = data
|
|
|
this.aircaftModelIdList = this.getTreeLeafData(data.children.length ? data.children : [data])
|
|
|
.map((e) => e.id)
|
|
@@ -378,14 +415,12 @@ export default {
|
|
|
this.getFalseAlarmAPI({ aircraftId: this.aircaftModelIdList })
|
|
|
},
|
|
|
|
|
|
- openDialog() {
|
|
|
+ async openDialog() {
|
|
|
+ if (this.executeForm.aircraftId !== '') {
|
|
|
+ this.changeAircraftId(this.executeForm.aircraftId)
|
|
|
+ }
|
|
|
this.dialogTitle = '新增'
|
|
|
this.dialogVisible = true
|
|
|
- // this.form.aircaftModelName = this.currentNode.label
|
|
|
- // this.form.aircaftModelId = this.currentNode.id
|
|
|
- if (this.form.aircraftId !== '') {
|
|
|
- this.changeAircraftId(this.form.aircraftId)
|
|
|
- }
|
|
|
},
|
|
|
|
|
|
handleClose() {
|
|
@@ -396,7 +431,7 @@ export default {
|
|
|
aircraftId: '',
|
|
|
modelType: '',
|
|
|
param: '',
|
|
|
- columnData: '',
|
|
|
+ columnData: [],
|
|
|
ossId: '',
|
|
|
status: '',
|
|
|
tenantId: '',
|
|
@@ -414,6 +449,17 @@ export default {
|
|
|
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) {
|
|
|
this.form = deepClone(row)
|
|
|
this.resultVisible = true
|
|
@@ -426,41 +472,71 @@ export default {
|
|
|
// this.agloForm.sortieNo = row.sortieNo
|
|
|
// this.agloForm.aircraftId = row.aircraftId
|
|
|
},
|
|
|
- beginExecute() {
|
|
|
+ async beginExecute() {
|
|
|
// 调用模型接口
|
|
|
-
|
|
|
- // this.executeVisible = false
|
|
|
- this.progressVisible = true
|
|
|
- const myTimer = setInterval(() => {
|
|
|
- if (this.percentage < 100) {
|
|
|
- this.percentage += 1
|
|
|
- } else {
|
|
|
- this.progressVisible = false
|
|
|
- this.percentage = 0
|
|
|
- clearInterval(myTimer)
|
|
|
- // this.$router.push({ name: 'PreResult', params: { agloForm: this.agloForm } })
|
|
|
- this.handleClose()
|
|
|
- }
|
|
|
- }, 30)
|
|
|
+ // if(this.executeForm.warningIds.isArray)
|
|
|
+ // this.executeForm.warningIds = [this.executeForm.warningIds]
|
|
|
+ const res = await executeFalseAlarm(this.executeForm)
|
|
|
+ const myTimer = setInterval(() => {}, 30)
|
|
|
+ console.log('res', res)
|
|
|
+ // this.dialogVisible = false
|
|
|
+ // this.progressVisible = true
|
|
|
+ // const myTimer = setInterval(() => {
|
|
|
+ // if (this.percentage < 100) {
|
|
|
+ // this.percentage += 1
|
|
|
+ // } else {
|
|
|
+ // this.progressVisible = false
|
|
|
+ // this.percentage = 0
|
|
|
+ // clearInterval(myTimer)
|
|
|
+ // // this.$router.push({ name: 'PreResult', params: { agloForm: this.agloForm } })
|
|
|
+ // this.handleClose()
|
|
|
+ // this.getFalseAlarmAPI({ aircraftId: this.aircaftModelIdList })
|
|
|
+ // }
|
|
|
+ // }, 30)
|
|
|
},
|
|
|
- async changeAgloType(type) {
|
|
|
+ async changeModelType(type) {
|
|
|
const {
|
|
|
data: { list }
|
|
|
} = await getModel({ type })
|
|
|
- this.algoNameList = list
|
|
|
+ this.modelList = list
|
|
|
+ },
|
|
|
+
|
|
|
+ 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) {
|
|
|
const {
|
|
|
- data: { list }
|
|
|
+ data: { list, totalCount }
|
|
|
} = await getDataImport({ aircraftId })
|
|
|
this.sortieNoList = list
|
|
|
+ this.SortieNoTableRequset.total = totalCount
|
|
|
},
|
|
|
+
|
|
|
async changeSortieNo(sortieNo) {
|
|
|
const {
|
|
|
data: { list }
|
|
|
- } = await getWarning({ aircraftId: this.form.aircraftId, sortieNo })
|
|
|
- this.falseAlarmTypeList = list
|
|
|
+ } = await getWarning({ aircraftId: this.executeForm.aircraftId, sortieNo })
|
|
|
+ this.executeForm.sortieNo = sortieNo
|
|
|
+ this.warningIdsList = list
|
|
|
},
|
|
|
+
|
|
|
submit() {
|
|
|
switch (this.dialogTitle) {
|
|
|
case '编辑':
|
|
@@ -468,8 +544,10 @@ export default {
|
|
|
this.handleClose()
|
|
|
break
|
|
|
case '新增':
|
|
|
- this.addFalseAlarmAPI()
|
|
|
- this.handleClose()
|
|
|
+ // this.addFalseAlarmAPI()
|
|
|
+ console.log('this.executeForm', this.executeForm)
|
|
|
+ this.beginExecute()
|
|
|
+ // this.handleClose()
|
|
|
break
|
|
|
}
|
|
|
},
|
|
@@ -478,6 +556,39 @@ export default {
|
|
|
this.tableCheckItems = val
|
|
|
},
|
|
|
|
|
|
+ async sortieNoSelection(val) {
|
|
|
+ if (val.length > 1) {
|
|
|
+ this.$refs.sortieNoTableRef.clearSelection()
|
|
|
+ this.$refs.sortieNoTableRef.toggleRowSelection(val.pop())
|
|
|
+ }
|
|
|
+ // this.sortieNoTableCheck = val
|
|
|
+ this.executeForm.ossId = val[0].ossId
|
|
|
+ if (val[0].ossId) {
|
|
|
+ const res = await getColumnDataAPI(val[0].ossId)
|
|
|
+ if (res.code === 200) {
|
|
|
+ res.data.forEach((item, index) => {
|
|
|
+ this.transferData.push({
|
|
|
+ key: index,
|
|
|
+ label: item
|
|
|
+ })
|
|
|
+ })
|
|
|
+
|
|
|
+ this.changeSortieNo(val[0].sortieNo)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ warningSelection(val) {
|
|
|
+ if (val.length > 1) {
|
|
|
+ this.$refs.warningTableRef.clearSelection()
|
|
|
+ this.$refs.warningTableRef.toggleRowSelection(val.pop())
|
|
|
+ }
|
|
|
+ console.log('val', val)
|
|
|
+ this.executeForm.warningIds = [val[0].id]
|
|
|
+ console.log('this.executeForm.warningIds', this.executeForm.warningIds)
|
|
|
+ // this.sortieNoTableCheck = val
|
|
|
+ },
|
|
|
+
|
|
|
remove(row) {
|
|
|
this.$confirm('是否删除该数据', '提示', {
|
|
|
confirmButtonText: '确定',
|
|
@@ -495,4 +606,7 @@ export default {
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
@import '../index.scss';
|
|
|
+::v-deep .single-select-table thead .el-table-column--selection .cell {
|
|
|
+ display: none;
|
|
|
+}
|
|
|
</style>
|