|
@@ -6,121 +6,50 @@
|
|
|
<div class="status flex-wrap">
|
|
|
<div class="manageTitle">预警告警场景</div>
|
|
|
</div>
|
|
|
- </template></Minheader
|
|
|
- >
|
|
|
+ </template>
|
|
|
+ </Minheader>
|
|
|
<div class="diacont">
|
|
|
- <el-form
|
|
|
- :model="tableForm"
|
|
|
- class="w100 fw"
|
|
|
- :rules="formRules"
|
|
|
- ref="warningEditsForm"
|
|
|
- >
|
|
|
+ <el-form :model="tableForm" class="w100 fw" :rules="formRules" ref="warningEditsForm">
|
|
|
<!-- <div class="outersurface pd30">
|
|
|
<el-form-item label="策略名称" size="default">
|
|
|
<el-input v-model="tableForm.name" placeholder="请输入策略名称" />
|
|
|
</el-form-item>
|
|
|
</div> -->
|
|
|
<div class="outersurface pd30">
|
|
|
- <el-form-item
|
|
|
- label="航司二字码"
|
|
|
- size="default"
|
|
|
- prop="IATACode"
|
|
|
- :rules="formRules.isNotNull"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- v-model="tableForm.IATACode"
|
|
|
- placeholder="请输入航司二字码"
|
|
|
- />
|
|
|
+ <el-form-item label="航司二字码" size="default" prop="IATACode" :rules="formRules.isNotNull">
|
|
|
+ <el-input v-model="tableForm.IATACode" placeholder="请输入航司二字码" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<div class="outersurface pd30">
|
|
|
<el-form-item label="起飞机场" size="default">
|
|
|
- <el-select
|
|
|
- style="width: 100%"
|
|
|
- v-model="tableForm.departmentAirport"
|
|
|
- class="input-shadow"
|
|
|
- filterable
|
|
|
- default-first-option
|
|
|
- clearable
|
|
|
- placeholder="请选择起飞机场"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in tableOption"
|
|
|
- :key="item.v ? item.v : item.planDepartureApt"
|
|
|
- :label="item.k ? item.k : item.planDepartureApt"
|
|
|
- :value="item.v ? item.v : item.planDepartureApt"
|
|
|
- >
|
|
|
+ <el-select style="width: 100%" v-model="tableForm.departmentAirport" class="input-shadow" filterable default-first-option clearable placeholder="请选择起飞机场">
|
|
|
+ <el-option v-for="item in tableOption" :key="item.v ? item.v : item.planDepartureApt" :label="item.k ? item.k : item.planDepartureApt" :value="item.v ? item.v : item.planDepartureApt">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<div class="outersurface pd30">
|
|
|
<el-form-item label="降落机场" size="default">
|
|
|
- <el-select
|
|
|
- style="width: 100%"
|
|
|
- v-model="tableForm.landingAirport"
|
|
|
- class="input-shadow"
|
|
|
- filterable
|
|
|
- default-first-option
|
|
|
- clearable
|
|
|
- placeholder="请选择降落机场"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in tableOption"
|
|
|
- :key="item.v ? item.v : item.planDepartureApt"
|
|
|
- :label="item.k ? item.k : item.planDepartureApt"
|
|
|
- :value="item.v ? item.v : item.planDepartureApt"
|
|
|
- >
|
|
|
+ <el-select style="width: 100%" v-model="tableForm.landingAirport" class="input-shadow" filterable default-first-option clearable placeholder="请选择降落机场">
|
|
|
+ <el-option v-for="item in tableOption" :key="item.v ? item.v : item.planDepartureApt" :label="item.k ? item.k : item.planDepartureApt" :value="item.v ? item.v : item.planDepartureApt">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<div class="outersurface">
|
|
|
- <el-form-item
|
|
|
- label="航班号"
|
|
|
- size="default"
|
|
|
- prop="flightNo"
|
|
|
- :rules="formRules.isNotNull"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- v-model="tableForm.flightNo"
|
|
|
- placeholder="请输入航班号"
|
|
|
- />
|
|
|
+ <el-form-item label="航班号" size="default" prop="flightNo" :rules="formRules.isNotNull">
|
|
|
+ <el-input v-model="tableForm.flightNo" placeholder="请输入航班号" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<div class="outersurface pd30">
|
|
|
- <el-form-item
|
|
|
- label="生效时间"
|
|
|
- size="default"
|
|
|
- prop="startDate"
|
|
|
- :rules="formRules.isNotNull"
|
|
|
- >
|
|
|
- <el-date-picker
|
|
|
- v-model="tableForm.startDate"
|
|
|
- :rows="1"
|
|
|
- type="datetime"
|
|
|
- format="YYYY-MM-DD HH:mm:ss"
|
|
|
- value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
- placeholder="选择日期时间"
|
|
|
- >
|
|
|
+ <el-form-item label="生效时间" size="default" prop="startDate" :rules="formRules.isNotNull">
|
|
|
+ <el-date-picker v-model="tableForm.startDate" :rows="1" type="datetime" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择日期时间">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<div class="outersurface pd30">
|
|
|
- <el-form-item
|
|
|
- label="失效时间"
|
|
|
- size="default"
|
|
|
- prop="endDate"
|
|
|
- :rules="formRules.isNotNull"
|
|
|
- >
|
|
|
- <el-date-picker
|
|
|
- format="YYYY-MM-DD HH:mm:ss"
|
|
|
- value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
- v-model="tableForm.endDate"
|
|
|
- :rows="1"
|
|
|
- type="datetime"
|
|
|
- placeholder="选择日期时间"
|
|
|
- >
|
|
|
+ <el-form-item label="失效时间" size="default" prop="endDate" :rules="formRules.isNotNull">
|
|
|
+ <el-date-picker format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" v-model="tableForm.endDate" :rows="1" type="datetime" placeholder="选择日期时间">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
@@ -128,192 +57,81 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="centerBox">
|
|
|
- <Minheader
|
|
|
- :is-auth="true"
|
|
|
- :is-statuser="true"
|
|
|
- :is-Search="false"
|
|
|
- powerData="add_alert_policy_button"
|
|
|
- @addForm="addForm"
|
|
|
- style="margin-top: 20px"
|
|
|
- >
|
|
|
+ <Minheader :is-auth="true" :is-statuser="true" :is-Search="false" powerData="add_alert_policy_button" @addForm="addForm" style="margin-top: 20px">
|
|
|
<template #header>
|
|
|
<div class="status flex-wrap">
|
|
|
<div class="manageTitle">预警告警策略</div>
|
|
|
</div>
|
|
|
- </template></Minheader
|
|
|
- >
|
|
|
+ </template>
|
|
|
+ </Minheader>
|
|
|
</div>
|
|
|
<div class="containers scroll-y">
|
|
|
- <DataTable
|
|
|
- :tableHeader="tableCols"
|
|
|
- :tableData="tableData"
|
|
|
- :tableBtnGroup="tableBtnGroup"
|
|
|
- :tableProperty="{ rowKey: 'ID' }"
|
|
|
- @btnClick="btnClick"
|
|
|
- />
|
|
|
+ <DataTable :tableHeader="tableCols" :tableData="tableData" :tableBtnGroup="tableBtnGroup" :tableProperty="{ rowKey: 'ID' }" @btnClick="btnClick" />
|
|
|
</div>
|
|
|
- <Dialog
|
|
|
- width="600px"
|
|
|
- :flag="flag"
|
|
|
- :type="type"
|
|
|
- :msgTitle="msgTitle"
|
|
|
- :delName="delName"
|
|
|
- @resetForm="resetForm"
|
|
|
- @delRest="delRest"
|
|
|
- @submitForm="submitForm"
|
|
|
- @delRemove="delRemove"
|
|
|
- >
|
|
|
+ <Dialog width="600px" :flag="flag" :type="type" :msgTitle="msgTitle" :delName="delName" @resetForm="resetForm" @delRest="delRest" @submitForm="submitForm" @delRemove="delRemove">
|
|
|
<div class="diacont">
|
|
|
<el-form :model="tableForms" :rules="formRules" ref="warningEditForm">
|
|
|
<el-row :gutter="24">
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item
|
|
|
- label="策略名称"
|
|
|
- size="default"
|
|
|
- prop="StrategyName"
|
|
|
- :rules="formRules.isNotNull"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- v-model="tableForms.StrategyName"
|
|
|
- placeholder="请输入策略名称"
|
|
|
- />
|
|
|
+ <el-form-item label="策略名称" size="default" prop="StrategyName" :rules="formRules.isNotNull">
|
|
|
+ <el-input v-model="tableForms.StrategyName" placeholder="请输入策略名称" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="计算依据" size="default">
|
|
|
- <el-select
|
|
|
- style="width: 100%"
|
|
|
- v-model="tableForms.calculationBasis"
|
|
|
- class="input-shadow"
|
|
|
- filterable
|
|
|
- default-first-option
|
|
|
- clearable
|
|
|
- placeholder="请选择计算依据"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in calculationBasis"
|
|
|
- :key="item.v ? item.v : item.planDepartureApt"
|
|
|
- :label="item.k ? item.k : item.planDepartureApt"
|
|
|
- :value="item.v ? item.v : item.planDepartureApt"
|
|
|
- >
|
|
|
+ <el-select style="width: 100%" v-model="tableForms.calculationBasis" class="input-shadow" filterable default-first-option clearable placeholder="请选择计算依据">
|
|
|
+ <el-option v-for="item in calculationBasis" :key="item.v ? item.v : item.planDepartureApt" :label="item.k ? item.k : item.planDepartureApt" :value="item.v ? item.v : item.planDepartureApt">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item
|
|
|
- label="预警时长"
|
|
|
- size="default"
|
|
|
- prop="warningDuration"
|
|
|
- :rules="formRules.isNotNull"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- v-model="tableForms.warningDuration"
|
|
|
- placeholder="请输入预警时长"
|
|
|
- />
|
|
|
+ <el-form-item label="预警时长" size="default" prop="warningDuration" :rules="formRules.isNotNull">
|
|
|
+ <el-input v-model="tableForms.warningDuration" placeholder="请输入预警时长" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item
|
|
|
- label="报警时长"
|
|
|
- size="default"
|
|
|
- prop="alarmDuration"
|
|
|
- :rules="formRules.isNotNull"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- v-model="tableForms.alarmDuration"
|
|
|
- placeholder="请输入报警时长"
|
|
|
- />
|
|
|
+ <el-form-item label="报警时长" size="default" prop="alarmDuration" :rules="formRules.isNotNull">
|
|
|
+ <el-input v-model="tableForms.alarmDuration" placeholder="请输入报警时长" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="开始节点" size="default">
|
|
|
- <el-select
|
|
|
- style="width: 100%"
|
|
|
- v-model="tableForms.beginNode"
|
|
|
- class="input-shadow"
|
|
|
- filterable
|
|
|
- default-first-option
|
|
|
- clearable
|
|
|
- placeholder="请选择开始节点"
|
|
|
- @change="changeSelect"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in tableOptionser"
|
|
|
- :key="item.v"
|
|
|
- :label="item.k"
|
|
|
- :value="item.v"
|
|
|
- >
|
|
|
+ <el-select style="width: 100%" v-model="tableForms.beginNode" class="input-shadow" filterable default-first-option clearable placeholder="请选择开始节点" @change="changeSelect">
|
|
|
+ <el-option v-for="item in tableOptionser" :key="item.v" :label="item.k" :value="item.v">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="开始位置" size="default">
|
|
|
- <el-select
|
|
|
- style="width: 100%"
|
|
|
- v-model="tableForms.beginPosition"
|
|
|
- class="input-shadow"
|
|
|
- filterable
|
|
|
- default-first-option
|
|
|
- clearable
|
|
|
- placeholder="请选择开始位置"
|
|
|
- @change="changebegin"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in tableOptionbegin"
|
|
|
- :key="item.v ? item.v : item.planDepartureApt"
|
|
|
- :label="item.k ? item.k : item.planDepartureApt"
|
|
|
- :value="item.v ? item.v : item.planDepartureApt"
|
|
|
- >
|
|
|
+ <el-select style="width: 100%" v-model="tableForms.beginPosition" class="input-shadow" filterable default-first-option clearable placeholder="请选择开始位置" @change="changebegin">
|
|
|
+ <el-option v-for="item in tableOptionbegin" :key="item.v ? item.v : item.planDepartureApt" :label="item.k ? item.k : item.planDepartureApt" :value="item.v ? item.v : item.planDepartureApt">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="结束节点" size="default">
|
|
|
- <el-select
|
|
|
- style="width: 100%"
|
|
|
- v-model="tableForms.endNode"
|
|
|
- class="input-shadow"
|
|
|
- filterable
|
|
|
- default-first-option
|
|
|
- clearable
|
|
|
- placeholder="请选择结束节点"
|
|
|
- @change="changeSelected"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in tableOptionend"
|
|
|
- :key="item.v ? item.v : item.planDepartureApt"
|
|
|
- :label="item.k ? item.k : item.planDepartureApt"
|
|
|
- :value="item.v ? item.v : item.planDepartureApt"
|
|
|
- >
|
|
|
+ <el-select style="width: 100%" v-model="tableForms.endNode" class="input-shadow" filterable default-first-option clearable placeholder="请选择结束节点" @change="changeSelected">
|
|
|
+ <el-option v-for="item in tableOptionend" :key="item.v ? item.v : item.planDepartureApt" :label="item.k ? item.k : item.planDepartureApt" :value="item.v ? item.v : item.planDepartureApt">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="结束位置" size="default">
|
|
|
- <el-select
|
|
|
- style="width: 100%"
|
|
|
- v-model="tableForms.endPosition"
|
|
|
- class="input-shadow"
|
|
|
- filterable
|
|
|
- default-first-option
|
|
|
- clearable
|
|
|
- placeholder="请选择结束位置"
|
|
|
- @change="changeEndPos"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in tableOptionendPos"
|
|
|
- :key="item.v ? item.v : item.planDepartureApt"
|
|
|
- :label="item.k ? item.k : item.planDepartureApt"
|
|
|
- :value="item.v ? item.v : item.planDepartureApt"
|
|
|
- >
|
|
|
+ <el-select style="width: 100%" v-model="tableForms.endPosition" class="input-shadow" filterable default-first-option clearable placeholder="请选择结束位置" @change="changeEndPos">
|
|
|
+ <el-option v-for="item in tableOptionendPos" :key="item.v ? item.v : item.planDepartureApt" :label="item.k ? item.k : item.planDepartureApt" :value="item.v ? item.v : item.planDepartureApt">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="数量报警百分比" label-width="120" size="default">
|
|
|
+ <el-input v-model="tableForms.percentage" placeholder="请输入数量报警百分比" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
</div>
|
|
@@ -322,6 +140,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
+import _ from "lodash";
|
|
|
import Minheader from "@/components/minheader/index.vue";
|
|
|
import DataTable from "@/components/tableTemp/index.vue";
|
|
|
import Dialog from "@/components/dialog/index.vue";
|
|
@@ -332,14 +151,14 @@ const router = useRouter();
|
|
|
const route = useRoute();
|
|
|
const page = ref<number>(0); //分页参数
|
|
|
const dataContent = ref<object>({});
|
|
|
-const noMore = ref<Boolean>(false);
|
|
|
-const rowTitle = ref<String>("");
|
|
|
-const tableCols = ref([]); //表头数据
|
|
|
-const serviceId = ref<String>("");
|
|
|
-const beginPositionId = ref<String>("");
|
|
|
-const endPositionId = ref<String>("");
|
|
|
+const noMore = ref<boolean>(false);
|
|
|
+const rowTitle = ref<string>("");
|
|
|
+const tableCols = ref<any>([]); //表头数据
|
|
|
+const serviceId = ref<string | any>("");
|
|
|
+const beginPositionId = ref<string | any>("");
|
|
|
+const endPositionId = ref<string | any>("");
|
|
|
const tableObj = ref({}); //增删改数据缓存
|
|
|
-const delName = ref<String>("");
|
|
|
+const delName = ref<string>("");
|
|
|
const tableForm = reactive({
|
|
|
alarmSceneId: "",
|
|
|
IATACode: "",
|
|
@@ -350,7 +169,7 @@ const tableForm = reactive({
|
|
|
endDate: "",
|
|
|
event: 2,
|
|
|
}); //报警预警场景
|
|
|
-const tableForms = reactive({
|
|
|
+const tableForms = reactive<any>({
|
|
|
alarmStrategyID: "",
|
|
|
StrategyName: "",
|
|
|
calculationBasis: "",
|
|
@@ -362,18 +181,19 @@ const tableForms = reactive({
|
|
|
endPosition: "",
|
|
|
alarmSceneId: route.query.alarmSceneId,
|
|
|
event: "",
|
|
|
+ percentage: "",
|
|
|
}); //弹窗内容
|
|
|
-const tableOption = ref<Array>([]); //下拉
|
|
|
-const tableOptionser = ref<Array>([]); //下拉
|
|
|
-const tableOptionbegin = ref<Array>([]); //下拉
|
|
|
-const tableOptionend = ref<Array>([]); //下拉
|
|
|
-const tableOptionendPos = ref<Array>([]); //下拉
|
|
|
-const calculationBasis = ref<Array>([]); //下拉
|
|
|
-const flag = ref<Boolean>(false); //弹窗开关
|
|
|
-const type = ref<String>(""); //判断是否删除
|
|
|
-const msgTitle = ref<String>("新增报警预警策略"); //弹窗标题
|
|
|
+const tableOption = ref<any>([]); //下拉
|
|
|
+const tableOptionser = ref<any>([]); //下拉
|
|
|
+const tableOptionbegin = ref<any>([]); //下拉
|
|
|
+const tableOptionend = ref<any>([]); //下拉
|
|
|
+const tableOptionendPos = ref<any>([]); //下拉
|
|
|
+const calculationBasis = ref<any>([]); //下拉
|
|
|
+const flag = ref<boolean>(false); //弹窗开关
|
|
|
+const type = ref<string>(""); //判断是否删除
|
|
|
+const msgTitle = ref<string>("新增报警预警策略"); //弹窗标题
|
|
|
//列表
|
|
|
-const tableData = ref([]);
|
|
|
+const tableData = ref<any>([]);
|
|
|
//表头
|
|
|
const state = reactive({
|
|
|
list: [
|
|
@@ -421,6 +241,7 @@ const resetForm = () => {
|
|
|
tableForms.beginPosition = "";
|
|
|
tableForms.endNode = "";
|
|
|
tableForms.endPosition = "";
|
|
|
+ tableForms.percentage = "";
|
|
|
delName.value = "";
|
|
|
};
|
|
|
const delRemove = () => {
|
|
@@ -438,7 +259,17 @@ const btnClick = (row, index, param) => {
|
|
|
msgTitle.value = "编辑报警预警策略";
|
|
|
flag.value = true;
|
|
|
type.value = "";
|
|
|
- tableForms.event = 2;
|
|
|
+ const newVal = _.cloneDeep(index);
|
|
|
+ newVal.beginPosition = Number(newVal.beginPosition);
|
|
|
+ newVal.endPosition = Number(newVal.endPosition);
|
|
|
+ for (const key in tableForms) {
|
|
|
+ for (const p in newVal) {
|
|
|
+ if (key == p) {
|
|
|
+ tableForms[key] = newVal[p];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return;
|
|
|
calculationBasis.value.forEach((element) => {
|
|
|
if (index.calculationBasis === element.k) {
|
|
|
tableForms.calculationBasis = element.v;
|
|
@@ -488,6 +319,7 @@ const btnClick = (row, index, param) => {
|
|
|
tableForms.beginPosition = index.beginPosition;
|
|
|
tableForms.endNode = index.endNode;
|
|
|
tableForms.endPosition = index.endPosition;
|
|
|
+ tableForms.percentage = index.percentage;
|
|
|
} else if (param === 4) {
|
|
|
}
|
|
|
};
|
|
@@ -534,7 +366,7 @@ const sysServiceWarn = async () => {
|
|
|
}
|
|
|
};
|
|
|
//飞机场-下拉数据
|
|
|
-const getSelectDatas = async (id, name) => {
|
|
|
+const getSelectDatas = async (id, name?) => {
|
|
|
const { code, returnData } = await Query({
|
|
|
id,
|
|
|
dataContent: name ? [name] : name === null ? [null] : [],
|
|
@@ -627,14 +459,14 @@ const getQuery = async () => {
|
|
|
const changeSelect = (value) => {
|
|
|
console.log(value);
|
|
|
// tableOptionbegin.value = getSelectData(beginPositionId, value,'beginPosition');
|
|
|
- tableForms.beginPosition = "";
|
|
|
+ // tableForms.beginPosition = "";
|
|
|
};
|
|
|
//开始位置
|
|
|
const changebegin = (value) => {};
|
|
|
//结束节点
|
|
|
const changeSelected = (value) => {
|
|
|
// tableOptionendPos.value = getSelectData(endPositionId, value);
|
|
|
- tableForms.endPosition = "";
|
|
|
+ // tableForms.endPosition = "";
|
|
|
};
|
|
|
//结束位置
|
|
|
const changeEndPos = (value) => {};
|