yangxiao il y a 3 ans
Parent
commit
fea4cda6da

+ 18 - 0
src/router/index.js

@@ -617,6 +617,24 @@ const routes = [{
   component: () =>
     import( /* webpackChunkName: "historysearch" */ "../views/NewPages/history-search.vue"),
 },
+// 报警中心-升压站报警
+{
+  path: "/alarmCenter/boosterAlarm",
+  name: "boosterAlarm",
+  component: () => import("../views/alarmCenter/boosterAlarm.vue")
+},
+// 报警中心-SCADA报警
+{
+  path: "/alarmCenter/scadaAlarm",
+  name: "scadaAlarm",
+  component: () => import("../views/alarmCenter/scadaAlarm.vue")
+},
+// 报警中心-自定义报警
+{
+  path: "/alarmCenter/customAlarm",
+  name: "customAlarm",
+  component: () => import("../views/alarmCenter/customAlarm.vue")
+},
 ]
 const router = createRouter({
   history: createWebHashHistory(),

+ 1 - 1
src/views/HealthControl/gradeassessment.vue

@@ -305,7 +305,7 @@ export default {
             sortable: true,
             id: "id",
             template: () => {
-              return "<a href='javascript:void(0);' value='xq'>详情</a>&nbsp;<a href='javascript:void(0);' value='ls'>历史</a>";
+              return "<el-button type='text' style='cursor: pointer;' value='xq'>详情</el-button>&nbsp;<el-button type='text' style='cursor: pointer;' value='ls'>历史</el-button>";
             },
             click: function(event, data) {
               if('xq' == event.target.getAttribute("value")){

+ 190 - 0
src/views/alarmCenter/boosterAlarm.vue

@@ -0,0 +1,190 @@
+<template>
+  <div>
+    <div class="query mg-b-8">
+      <div class="query-items">
+        <div class="query-item">
+          <div class="lable">场站:</div>
+          <div class="search-input">
+            <el-select v-model="stationId" clearable placeholder="请选择" popper-class="select">
+              <el-option
+                v-for="item in ChangZhan"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              ></el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">开始日期:</div>
+          <div class="search-input">
+            <el-date-picker
+              v-model="startDate"
+              type="datetime"
+              placeholder="开始日期"
+              popper-class="date-select"
+              value-format="YYYY-MM-DD HH:mm:ss"
+            ></el-date-picker>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">结束日期:</div>
+          <div class="search-input">
+            <el-date-picker
+              v-model="endDate"
+              type="datetime"
+              placeholder="开始日期"
+              popper-class="date-select"
+              value-format="YYYY-MM-DD HH:mm:ss"
+            ></el-date-picker>
+          </div>
+        </div>
+        <div class="query-actions">
+          <button class="btn green" @click="getTable()">查询</button>
+          <button class="btn green" @click="exportExcel()">导出</button>
+        </div>
+      </div>
+    </div>
+    <div class="table-box">
+      <div class="title">升压站报警</div>
+      <ComTable
+        ref="curRef"
+        :data="tableData"
+        :pageSize="20"
+        @onPagging="onChangePage"
+        height="73vh"
+        v-loading="tableLoading"
+        element-loading-text="拼命加载中.."
+        element-loading-background="rgba(0, 0, 0, 0.8)"
+      ></ComTable>
+    </div>
+  </div>
+</template>
+<script>
+import ComTable from "@/components/coms/table/table.vue";
+
+export default {
+  name: "boosterAlarm",
+  components: { ComTable },
+  data() {
+    let that = this;
+    return {
+      ChangZhan: [],
+      stationId: "XS_FDC",
+      startDate: "",
+      endDate: "",
+      tableLoading: true,
+      pageIndex: 1,
+      pageSize: 20,
+      tableData: {
+        column: [
+          {
+            name: "场站",
+            field: "stationName",
+            is_num: false,
+            is_light: false,
+            sortable: true,
+            id: "id"
+          },
+          {
+            name: "变电站",
+            field: "",
+            is_num: false,
+            is_light: false,
+            sortable: true,
+            id: "id"
+          },
+
+          {
+            name: "报警时间",
+            field: "alertTime",
+            is_num: false,
+            is_light: false,
+            sortable: true,
+            id: "id"
+          },
+          {
+            name: "报警描述",
+            field: "alertText",
+            is_num: false,
+            is_light: false,
+            sortable: true,
+            id: "id"
+          },
+          {
+            name: "处理方式",
+            field: "",
+            is_num: false,
+            is_light: false,
+            sortable: true,
+            id: "id"
+          }
+        ],
+        data: [],
+        currentPageTotal: 0
+      }
+    };
+  },
+  created() {
+    this.ChangZhanVal();
+    let end = new Date();
+    let start = new Date(end.getTime() - 1 * 24 * 60 * 60 * 1000);
+    this.endDate = end.formatDate("yyyy-MM-dd hh:mm:ss");
+    this.startDate = start.formatDate("yyyy-MM-dd hh:mm:ss");
+    this.getTable();
+  },
+  methods: {
+    // 场站
+    ChangZhanVal() {
+      var that = this;
+      that.API.requestData({
+        method: "GET",
+        baseURL: "http://10.155.32.4:9001/",
+        subUrl: "benchmarking/wplist",
+        success(res) {
+          that.ChangZhan = res.data;
+          that.stationId = res.data[0].id;
+        }
+      });
+    },
+    getTable() {
+      let that = this;
+      this.tableLoading = true;
+      this.API.requestData({
+        timeout: 30000,
+        method: "GET",
+        baseURL: "http://192.168.1.18:8075/",
+        subUrl: "alarm/history/page",
+        data: {
+          category1: "SYZ",
+          stationid: this.stationId,
+          starttime: this.startDate,
+          endtime: this.endDate,
+          pagenum: this.pageIndex,
+          pagesize: this.pageSize
+        },
+        success(res) {
+          that.tableData.data = res.data.records;
+          that.tableLoading = false;
+          that.tableData.total = res.data.total;
+        }
+      });
+    },
+    onChangePage(params) {
+      this.pageIndex = params.pageIndex;
+      this.pageSize = params.pageSize;
+      this.getTable();
+    },
+    exportExcel(){
+        this.BASE.exportExcel(this.tableData,"升压站报警");
+    }
+  }
+};
+</script>
+<style scoped>
+.title {
+  background: rgba(255, 255, 255, 0.1);
+  margin-bottom: 8px;
+  padding: 1vh;
+}
+</style>

+ 236 - 0
src/views/alarmCenter/customAlarm.vue

@@ -0,0 +1,236 @@
+<template>
+  <div>
+    <div class="query mg-b-8">
+      <div class="query-items">
+        <div class="query-item">
+          <div class="lable">场站:</div>
+          <div class="search-input">
+            <el-select
+              v-model="stationId"
+              clearable
+              placeholder="请选择"
+              popper-class="select"
+              @change="(stationId) => { Windturbines() }"
+            >
+              <el-option
+                v-for="item in ChangZhan"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              ></el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">机组:</div>
+          <div class="search-input">
+            <el-select v-model="wtId" placeholder="请选择" popper-class="select">
+              <el-option
+                v-for="item in windturbines"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+              ></el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">开始日期:</div>
+          <div class="search-input">
+            <el-date-picker
+              v-model="startDate"
+              type="datetime"
+              placeholder="开始日期"
+              popper-class="date-select"
+              value-format="YYYY-MM-DD HH:mm:ss"
+            ></el-date-picker>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">结束日期:</div>
+          <div class="search-input">
+            <el-date-picker
+              v-model="endDate"
+              type="datetime"
+              placeholder="开始日期"
+              popper-class="date-select"
+              value-format="YYYY-MM-DD HH:mm:ss"
+            ></el-date-picker>
+          </div>
+        </div>
+        <div class="query-actions">
+          <button class="btn green" @click="getTable()">查询</button>
+          <button class="btn green" @click="exportExcel()">导出</button>
+        </div>
+      </div>
+    </div>
+    <div class="table-box">
+      <div class="title">自定义报警</div>
+      <ComTable
+        ref="curRef"
+        :data="tableData"
+        :pageSize="20"
+        @onPagging="onChangePage"
+        height="73vh"
+        v-loading="tableLoading"
+        element-loading-text="拼命加载中.."
+        element-loading-background="rgba(0, 0, 0, 0.8)"
+      ></ComTable>
+    </div>
+  </div>
+</template>
+<script>
+import ComTable from "@/components/coms/table/table.vue";
+
+export default {
+  name: "customAlarm",
+  components: { ComTable },
+  data() {
+    let that = this;
+    return {
+      ChangZhan: [],
+      stationId: "XS_FDC",
+      windturbines: [],
+      wtId: "",
+      startDate: "",
+      endDate: "",
+      tableLoading: true,
+      pageIndex: 1,
+      pageSize: 20,
+      tableData: {
+        column: [
+          {
+            name: "场站",
+            field: "stationName",
+            is_num: false,
+            is_light: false,
+            sortable: true,
+            id: "id"
+          },
+          {
+            name: "机组",
+            field: "windturbineName",
+            is_num: false,
+            is_light: false,
+            sortable: true,
+            id: "id"
+          },
+
+          {
+            name: "报警时间",
+            field: "alertTime",
+            is_num: false,
+            is_light: false,
+            sortable: true,
+            id: "id"
+          },
+          {
+            name: "型号",
+            field: "modelId",
+            is_num: false,
+            is_light: false,
+            sortable: true,
+            id: "id"
+          },
+          {
+            name: "报警描述",
+            field: "alertText",
+            is_num: false,
+            is_light: false,
+            sortable: true,
+            id: "id"
+          }
+        ],
+        data: [],
+        currentPageTotal: 0
+      }
+    };
+  },
+  created() {
+    this.ChangZhanVal();
+    this.Windturbines();
+    let end = new Date();
+    let start = new Date(end.getTime() - 1 * 24 * 60 * 60 * 1000);
+    this.endDate = end.formatDate("yyyy-MM-dd hh:mm:ss");
+    this.startDate = start.formatDate("yyyy-MM-dd hh:mm:ss");
+    this.getTable();
+  },
+  methods: {
+    // 场站
+    ChangZhanVal() {
+      var that = this;
+      that.API.requestData({
+        method: "GET",
+        baseURL: "http://10.155.32.4:9001/",
+        subUrl: "benchmarking/wplist",
+        success(res) {
+          that.ChangZhan = res.data;
+          that.stationId = res.data[0].id;
+        }
+      });
+    },
+    Windturbines() {
+      let that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "powercompare/windturbineAjax",
+        data: { wpId: that.stationId },
+        success(res) {
+          that.windturbines = res.data;
+          // that.wtId = res.data[0].id;
+          that.windturbines.unshift({ id: "", name: "请选择" });
+          that.wtId = "";
+        }
+      });
+    },
+    getTable() {
+      let that = this;
+      this.tableLoading = true;
+      this.API.requestData({
+        timeout: 30000,
+        method: "GET",
+        baseURL: "http://192.168.1.18:8075/",
+        subUrl: "alarm/history/page",
+        data: {
+          category1: "custom",
+          stationid: this.stationId,
+          starttime: this.startDate,
+          endtime: this.endDate,
+          windturbineid: this.wtId,
+          pagenum: this.pageIndex,
+          pagesize: this.pageSize
+        },
+        success(res) {
+          if (res.data) {
+            that.tableData.data = res.data.records;
+            that.tableData.total = res.data.total;
+          } else {
+            that.tableData.data = [];
+            that.tableData.total = 0;
+          }
+          that.tableLoading = false;
+        }
+      });
+    },
+    onChangePage(params) {
+      this.pageIndex = params.pageIndex;
+      this.pageSize = params.pageSize;
+      this.getTable();
+    },
+    exportExcel() {
+      // let excelData = this.BASE.deepCopy(this.tableData);
+      // excelData.data.forEach(ele => {
+      //   ele["category2"] = this.partsMap[ele["category2"]];
+      // });
+      this.BASE.exportExcel(this.tableData, "自定义报警");
+    }
+  }
+};
+</script>
+<style lang="less">
+.title {
+  background: rgba(255, 255, 255, 0.1);
+  margin-bottom: 8px;
+  padding: 1vh;
+}
+</style>

+ 332 - 0
src/views/alarmCenter/scadaAlarm.vue

@@ -0,0 +1,332 @@
+<template>
+  <div>
+    <div class="query mg-b-8">
+      <div class="query-items">
+        <div class="query-item">
+          <div class="lable">场站:</div>
+          <div class="search-input">
+            <el-select
+              v-model="stationId"
+              clearable
+              placeholder="请选择"
+              popper-class="select"
+              @change="(stationId) => { Windturbines() }"
+            >
+              <el-option
+                v-for="item in ChangZhan"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              ></el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">机组:</div>
+          <div class="search-input">
+            <el-select v-model="wtId" placeholder="请选择" popper-class="select">
+              <el-option
+                v-for="item in windturbines"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+              ></el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">描述:</div>
+          <div class="search-input">
+            <el-input v-model="alarmDesc" placeholder="报警描述"></el-input>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">等级:</div>
+          <div class="search-input">
+            <el-select v-model="level" clearable placeholder="请选择" popper-class="select">
+              <el-option
+                v-for="item in levelArray"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              />
+            </el-select>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">分类:</div>
+          <div class="search-input">
+            <el-select v-model="partsId" clearable placeholder="请选择" popper-class="select">
+              <el-option
+                v-for="item in partsArray"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              />
+            </el-select>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="query mg-b-8">
+      <div class="query-items">
+        <div class="query-item">
+          <div class="lable">开始日期:</div>
+          <div class="search-input">
+            <el-date-picker
+              v-model="startDate"
+              type="datetime"
+              placeholder="开始日期"
+              popper-class="date-select"
+              value-format="YYYY-MM-DD HH:mm:ss"
+            ></el-date-picker>
+          </div>
+        </div>
+        <div class="query-item">
+          <div class="lable">结束日期:</div>
+          <div class="search-input">
+            <el-date-picker
+              v-model="endDate"
+              type="datetime"
+              placeholder="开始日期"
+              popper-class="date-select"
+              value-format="YYYY-MM-DD HH:mm:ss"
+            ></el-date-picker>
+          </div>
+        </div>
+        <div class="query-actions">
+          <button class="btn green" @click="getTable()">查询</button>
+          <button class="btn green" @click="exportExcel()">导出</button>
+        </div>
+      </div>
+    </div>
+    <div class="table-box">
+      <div class="title">SCADA报警</div>
+      <ComTable
+        ref="curRef"
+        :data="tableData"
+        :pageSize="20"
+        @onPagging="onChangePage"
+        height="68vh"
+        v-loading="tableLoading"
+        element-loading-text="拼命加载中.."
+        element-loading-background="rgba(0, 0, 0, 0.8)"
+      ></ComTable>
+    </div>
+  </div>
+</template>
+<script>
+import ComTable from "@/components/coms/table/table.vue";
+
+export default {
+  name: "scadaAlarm",
+  components: { ComTable },
+  data() {
+    let that = this;
+    return {
+      ChangZhan: [],
+      stationId: "XS_FDC",
+      windturbines: [],
+      wtId: "",
+      alarmDesc: "",
+      levelArray: [
+        {
+          id: "",
+          name: "请选择"
+        },
+        {
+          id: "1",
+          name: "一级"
+        },
+        {
+          id: "2",
+          name: "二级"
+        },
+        {
+          id: "3",
+          name: "三级"
+        },
+        {
+          id: "4",
+          name: "四级"
+        },
+        {
+          id: "5",
+          name: "五级"
+        }
+      ],
+      level: "",
+      partsArray: [],
+      partsMap: {},
+      partsId: "",
+      startDate: "",
+      endDate: "",
+      tableLoading: true,
+      pageIndex: 1,
+      pageSize: 20,
+      tableData: {
+        column: [
+          {
+            name: "场站",
+            field: "stationName",
+            is_num: false,
+            is_light: false,
+            sortable: true,
+            id: "id"
+          },
+          {
+            name: "机组",
+            field: "windturbineName",
+            is_num: false,
+            is_light: false,
+            sortable: true,
+            id: "id"
+          },
+
+          {
+            name: "报警时间",
+            field: "alertTime",
+            is_num: false,
+            is_light: false,
+            sortable: true,
+            id: "id"
+          },
+          {
+            name: "报警描述",
+            field: "alertText",
+            is_num: false,
+            is_light: false,
+            sortable: true,
+            id: "id"
+          },
+          {
+            name: "报警类别",
+            field: "category2",
+            is_num: false,
+            is_light: false,
+            sortable: true,
+            id: "id",
+            template: function(row) {
+              return that.partsMap[row];
+            }
+          },
+          {
+            name: "报警等级",
+            field: "messageType",
+            is_num: false,
+            is_light: false,
+            sortable: true,
+            id: "id"
+          }
+        ],
+        data: [],
+        currentPageTotal: 0
+      }
+    };
+  },
+  created() {
+    this.ChangZhanVal();
+    this.Windturbines();
+    this.Parts();
+    let end = new Date();
+    let start = new Date(end.getTime() - 1 * 24 * 60 * 60 * 1000);
+    this.endDate = end.formatDate("yyyy-MM-dd hh:mm:ss");
+    this.startDate = start.formatDate("yyyy-MM-dd hh:mm:ss");
+    this.getTable();
+  },
+  methods: {
+    // 场站
+    ChangZhanVal() {
+      var that = this;
+      that.API.requestData({
+        method: "GET",
+        baseURL: "http://10.155.32.4:9001/",
+        subUrl: "benchmarking/wplist",
+        success(res) {
+          that.ChangZhan = res.data;
+          that.stationId = res.data[0].id;
+        }
+      });
+    },
+    Windturbines() {
+      let that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "powercompare/windturbineAjax",
+        data: { wpId: that.stationId },
+        success(res) {
+          that.windturbines = res.data;
+          // that.wtId = res.data[0].id;
+          that.windturbines.unshift({ id: "", name: "请选择" });
+          that.wtId = "";
+        }
+      });
+    },
+    Parts() {
+      let that = this;
+      that.API.requestData({
+        method: "GET",
+        subUrl: "powercompare/warningClassAjax",
+        success(res) {
+          that.partsArray = res.data;
+          that.partsArray.unshift({ id: "", name: "请选择" });
+          that.partsId = "";
+          res.data.forEach(ele => {
+            that.partsMap[ele.id] = ele.name;
+          });
+        }
+      });
+    },
+    getTable() {
+      let that = this;
+      this.tableLoading = true;
+      this.API.requestData({
+        timeout: 30000,
+        method: "GET",
+        baseURL: "http://192.168.1.18:8075/",
+        subUrl: "alarm/history/page",
+        data: {
+          category1: "windturbine",
+          stationid: this.stationId,
+          starttime: this.startDate,
+          endtime: this.endDate,
+          category2: this.partsId,
+          keyword: this.alarmDesc,
+          windturbineid: this.wtId,
+          pagenum: this.pageIndex,
+          pagesize: this.pageSize
+        },
+        success(res) {
+          if (res.data) {
+            that.tableData.data = res.data.records;
+            that.tableData.total = res.data.total;
+          } else {
+            that.tableData.data = [];
+            that.tableData.total = 0;
+          }
+          that.tableLoading = false;
+        }
+      });
+    },
+    onChangePage(params) {
+      this.pageIndex = params.pageIndex;
+      this.pageSize = params.pageSize;
+      this.getTable();
+    },
+    exportExcel() {
+      let excelData = this.BASE.deepCopy(this.tableData);
+      excelData.data.forEach(ele => {
+        ele["category2"] = this.partsMap[ele["category2"]];
+      });
+      this.BASE.exportExcel(excelData, "SCADA报警");
+    }
+  }
+};
+</script>
+<style lang="less">
+.title {
+  background: rgba(255, 255, 255, 0.1);
+  margin-bottom: 8px;
+  padding: 1vh;
+}
+</style>

+ 15 - 0
src/views/layout/Menu.vue

@@ -139,6 +139,21 @@ export default {
                   icon: "svg-wind-site",
                   path: "/new/xdgl",
                 },
+                {
+                  text: "升压站报警",
+                  icon: "svg-wind-site",
+                  path: "/alarmCenter/boosterAlarm",
+                },
+                {
+                  text: "SCADA报警",
+                  icon: "svg-wind-site",
+                  path: "/alarmCenter/scadaAlarm",
+                },
+                {
+                  text: "自定义报警",
+                  icon: "svg-wind-site",
+                  path: "/alarmCenter/customAlarm",
+                },
               ],
             },
           ],