From da21fe61c8d8d22ca1b6244b233fbce9e2dc5814 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期五, 27 十月 2023 09:16:35 +0800
Subject: [PATCH] 统计页面
---
src/api/smoke/alarm.js | 4
src/views/smoke/report/components/alarm.vue | 13 +
src/views/smoke/report/components/overallSituation.vue | 337 +++++++++++++++++++++++++
src/views/smoke/report/components/reduceEmissions.vue | 13 +
src/views/smoke/report/index.vue | 44 ++
src/views/smoke/alarm/index.vue | 50 +--
src/views/smoke/report/components/header/header2.vue | 155 +++++++++++
src/views/smoke/report/components/header/header1.vue | 126 +++++++++
src/views/smoke/report/components/maintenance.vue | 13 +
9 files changed, 718 insertions(+), 37 deletions(-)
diff --git a/src/api/smoke/alarm.js b/src/api/smoke/alarm.js
index ff90753..d385f48 100644
--- a/src/api/smoke/alarm.js
+++ b/src/api/smoke/alarm.js
@@ -3,10 +3,10 @@
export default {
// 鏌ヨ瀹炴椂鏁版嵁
findAlarmList: (params) => {
- return http.get('/sccg/smoke/Alarm/list', params);
+ return http.get('/sccg/smoke/alarm/list', params);
},
// 瀵煎嚭瀹炴椂鏁版嵁
exportAlarm: (params) => {
- return http.downloadFile('/sccg/smoke/Alarm/export', params);
+ return http.downloadFile('/sccg/smoke/alarm/export', params);
},
}
\ No newline at end of file
diff --git a/src/views/smoke/alarm/index.vue b/src/views/smoke/alarm/index.vue
index dc098df..45ec584 100644
--- a/src/views/smoke/alarm/index.vue
+++ b/src/views/smoke/alarm/index.vue
@@ -15,16 +15,20 @@
:data="tableData"
:row-class-name="tableRowClassName"
>
- <el-table-column label="搴忓彿" type="index" width="60px">
+ <el-table-column label="搴忓彿" type="index" min-width="2">
</el-table-column>
- <el-table-column prop="AcquitAtStr" label="鏃堕棿" width="120px">
+ <el-table-column prop="MN" label="璁惧缂栫爜" min-width="2">
</el-table-column>
- <el-table-column prop="MsgTypeStr" label="娑堟伅绫诲瀷" width="180px">
+ <el-table-column prop="AcquitAtStr" label="鏃堕棿" min-width="3">
</el-table-column>
- <el-table-column prop="Content" label="娑堟伅鍐呭" width="100px">
+ <el-table-column prop="MsgTypeStr" label="娑堟伅绫诲瀷" min-width="2">
+ </el-table-column>
+ <!-- <el-table-column prop="Addr" label="鍦板潃" min-width="4">
+ </el-table-column> -->
+ <el-table-column prop="Content" label="娑堟伅鍐呭" min-width="8">
</el-table-column>
- <el-table-column prop="operation" label="鎿嶄綔" width="550px">
+ <el-table-column prop="operation" label="鎿嶄綔" min-width="3">
<template slot-scope="scope">
<div class="operation">
<span @click="handleUpload(scope.row)">涓婃姤</span>
@@ -67,6 +71,7 @@
totalNum: 0,
pageSize: 10,
currentPage: 1,
+ params: {},
};
},
components: { MyHeader },
@@ -75,28 +80,24 @@
},
methods: {
getAlarmList(seachData) {
- let params;
if (seachData) {
- params = this.getParam(seachData);
+ this.params = this.getParam(seachData);
} else {
- params = {
+ this.params = {
pageNum: this.currentPage,
pageSize: this.pageSize,
};
}
realTimeApi
- .findAlarmList(params)
+ .findAlarmList(this.params)
.then(({ list, total }) => {
list.forEach((e) => {
e.AcquitAtStr = this.dateFormat(
"YYYY-mm-dd HH:MM",
new Date(e.AcquitAt)
);
- e.FanStatusStr = this.FanStatusStr(e.FanStatus);
- e.FilterStatusStr = this.FanStatusStr(e.FilterStatus);
- e.OnlineStatusStr = this.OnlineStatusStr(e.OnlineStatus);
- e.StatusStr = this.StatusStr(e.Status);
+ e.MsgTypeStr = this.MsgTypeStr(e.MsgType);
});
this.tableData = list;
this.totalNum = total;
@@ -117,13 +118,13 @@
type: "application/vnd.ms-excel;charset=utf-8",
});
if (window.navigator.msSaveBlob) {
- window.navigator.msSaveBlob(blob, deathdate + "瀹炴椂鏁版嵁" + ".xls");
+ window.navigator.msSaveBlob(blob, deathdate + "鎶ヨ淇℃伅" + ".xls");
} else {
const url = window.URL.createObjectURL(blob);
const link = document.createElement("a");
link.style.display = "none";
link.href = url;
- link.download = deathdate + "瀹炴椂鏁版嵁" + ".xls";
+ link.download = deathdate + "鎶ヨ淇℃伅" + ".xls";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
@@ -135,15 +136,10 @@
getParam(seachData) {
let params;
if (seachData) {
- const seachParams = seachData.seachData;
+ const seachParams = seachData.seachData || seachData;
params = {
- owner: seachParams.owner == undefined ? null : seachParams.owner,
- onlineStatus:
- seachParams.onlineStatus == undefined
- ? null
- : seachParams.onlineStatus,
- status: seachParams.status == undefined ? null : seachParams.status,
- type: seachParams.type == undefined ? null : seachParams.type,
+ msgType:
+ seachParams.msgType == undefined ? null : seachParams.msgType,
startTime:
seachParams.alarmTime == undefined
? null
@@ -159,6 +155,8 @@
seachParams.alarmTime[1]
),
};
+ params.pageNum = this.currentPage;
+ params.pageSize = this.pageSize;
}
return params;
},
@@ -184,17 +182,17 @@
// 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
changeCurrentPage(page) {
this.currentPage = page;
- this.getRealTimeList();
+ this.getAlarmList(this.params);
},
// 涓婁竴椤电偣鍑讳簨浠�
handlePrev(page) {
this.currentPage = page;
- this.getRealTimeList();
+ this.getAlarmList(this.params);
},
// 涓嬩竴椤电偣鍑讳簨浠�
handleNext(page) {
this.currentPage = page;
- this.getRealTimeList();
+ this.getAlarmList(this.params);
},
dateFormat(fmt, date) {
let ret;
diff --git a/src/views/smoke/report/components/alarm.vue b/src/views/smoke/report/components/alarm.vue
new file mode 100644
index 0000000..17bcab3
--- /dev/null
+++ b/src/views/smoke/report/components/alarm.vue
@@ -0,0 +1,13 @@
+<template>
+
+</template>
+
+<script>
+export default {
+
+}
+</script>
+
+<style>
+
+</style>
\ No newline at end of file
diff --git a/src/views/smoke/report/components/header/header1.vue b/src/views/smoke/report/components/header/header1.vue
new file mode 100644
index 0000000..d5f49f7
--- /dev/null
+++ b/src/views/smoke/report/components/header/header1.vue
@@ -0,0 +1,126 @@
+<template>
+ <div class="header">
+ <el-form :inline="true" :model="seachData" class="demo-form-inline">
+ <el-form-item label="">
+ <el-select
+ style="width: 140px"
+ v-model="seachData.ownerIndex"
+ placeholder="鎵�灞炲崟浣�"
+ >
+ <el-option
+ v-for="(item, index) in ownerOptions"
+ :key="item.Id"
+ :label="item.Name"
+ :value="index"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+
+ <el-form-item label="">
+ <el-date-picker
+ v-model="seachData.alarmTime"
+ type="daterange"
+ align="right"
+ unlink-panels
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ :picker-options="pickerOptions"
+ >
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" @click="getList">鍒锋柊</el-button>
+ <el-button type="primary" @click="resetAll">閲嶇疆</el-button>
+
+ <el-button type="primary" @click="exportTableData">瀵煎嚭</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
+</template>
+
+<script>
+import realTimeApi from "@/api/smoke/realTime";
+
+export default {
+ data() {
+ return {
+ ownerOptions: [],
+ seachData: {},
+ pickerOptions: {
+ shortcuts: [
+ {
+ text: "鏈�杩戜竴鍛�",
+ onClick(picker) {
+ const end = new Date();
+ const start = new Date();
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+ picker.$emit("pick", [start, end]);
+ },
+ },
+ {
+ text: "鏈�杩戜竴涓湀",
+ onClick(picker) {
+ const end = new Date();
+ const start = new Date();
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+ picker.$emit("pick", [start, end]);
+ },
+ },
+ {
+ text: "鏈�杩戜笁涓湀",
+ onClick(picker) {
+ const end = new Date();
+ const start = new Date();
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+ picker.$emit("pick", [start, end]);
+ },
+ },
+ ],
+ },
+ };
+ },
+ created() {},
+ mounted() {
+ this.getOwnerOptions();
+ },
+ methods: {
+ // 鑾峰彇鎵�灞炲崟浣�
+ getOwnerOptions() {
+ const param = { pageSize: 100, pageNum: 1 };
+ realTimeApi
+ .findCustomerList(param)
+ .then((res) => {
+ this.ownerOptions = res.list;
+ })
+ .catch((err) => this.$message.error(err));
+ },
+
+ resetAll() {
+ this.seachData = {};
+ this.$emit("getList", { seachData: this.seachData });
+ },
+ getList() {
+ if (this.seachData.ownerIndex !== undefined) {
+ const ownerItem = this.ownerOptions[this.seachData.ownerIndex];
+ this.seachData.owner = ownerItem.Pid + ownerItem.Id + "/";
+ }
+ this.$emit("getList", { seachData: this.seachData });
+ },
+ exportTableData() {
+ if (this.seachData.ownerIndex !== undefined) {
+ const ownerItem = this.ownerOptions[this.seachData.ownerIndex];
+ this.seachData.owner = ownerItem.Pid + ownerItem.Id + "/";
+ }
+ this.$emit("exportTable", { seachData: this.seachData });
+ },
+ },
+};
+</script>
+
+<style lang="scss" scoped>
+.header {
+ line-height: normal;
+}
+</style>
diff --git a/src/views/smoke/report/components/header/header2.vue b/src/views/smoke/report/components/header/header2.vue
new file mode 100644
index 0000000..9cde2a1
--- /dev/null
+++ b/src/views/smoke/report/components/header/header2.vue
@@ -0,0 +1,155 @@
+<template>
+ <div class="header">
+ <el-form :inline="true" :model="seachData" class="demo-form-inline">
+ <el-form-item label="">
+ <el-input v-model="seachData.code" placeholder="缂栫爜"></el-input>
+ </el-form-item>
+ <el-form-item label="">
+ <el-select
+ style="width: 140px"
+ v-model="seachData.ownerIndex"
+ placeholder="鎵�灞炲崟浣�"
+ >
+ <el-option
+ v-for="(item, index) in ownerOptions"
+ :key="item.Id"
+ :label="item.Name"
+ :value="index"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="">
+ <el-select
+ style="width: 120px"
+ v-model="seachData.codeColor"
+ placeholder="娌圭儫鍋ュ悍鐮�"
+ >
+ <el-option
+ v-for="item in codeColorOptions"
+ :key="item.label"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+
+ <el-form-item label="">
+ <el-date-picker
+ v-model="seachData.alarmTime"
+ type="daterange"
+ align="right"
+ unlink-panels
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ :picker-options="pickerOptions"
+ >
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" @click="getList">鍒锋柊</el-button>
+ <el-button type="primary" @click="resetAll">閲嶇疆</el-button>
+
+ <el-button type="primary" @click="exportTableData">瀵煎嚭</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
+</template>
+
+<script>
+import realTimeApi from "@/api/smoke/realTime";
+
+export default {
+ data() {
+ return {
+ codeColorOptions: [
+ {
+ label: "绾功",
+ value: "Red",
+ },
+ {
+ label: "缁胯壊",
+ value: "Green",
+ },
+ ],
+
+ ownerOptions: [],
+ seachData: {},
+ pickerOptions: {
+ shortcuts: [
+ {
+ text: "鏈�杩戜竴鍛�",
+ onClick(picker) {
+ const end = new Date();
+ const start = new Date();
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+ picker.$emit("pick", [start, end]);
+ },
+ },
+ {
+ text: "鏈�杩戜竴涓湀",
+ onClick(picker) {
+ const end = new Date();
+ const start = new Date();
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+ picker.$emit("pick", [start, end]);
+ },
+ },
+ {
+ text: "鏈�杩戜笁涓湀",
+ onClick(picker) {
+ const end = new Date();
+ const start = new Date();
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+ picker.$emit("pick", [start, end]);
+ },
+ },
+ ],
+ },
+ };
+ },
+ created() {},
+ mounted() {
+ this.getOwnerOptions();
+ },
+ methods: {
+ // 鑾峰彇鎵�灞炲崟浣�
+ getOwnerOptions() {
+ const param = { pageSize: 100, pageNum: 1 };
+ realTimeApi
+ .findCustomerList(param)
+ .then((res) => {
+ this.ownerOptions = res.list;
+ })
+ .catch((err) => this.$message.error(err));
+ },
+
+ resetAll() {
+ this.seachData = {};
+ this.$emit("getList", { seachData: this.seachData });
+ },
+ getList() {
+ if (this.seachData.ownerIndex !== undefined) {
+ const ownerItem = this.ownerOptions[this.seachData.ownerIndex];
+ this.seachData.owner = ownerItem.Pid + ownerItem.Id + "/";
+ }
+ this.$emit("getList", { seachData: this.seachData });
+ },
+ exportTableData() {
+ if (this.seachData.ownerIndex !== undefined) {
+ const ownerItem = this.ownerOptions[this.seachData.ownerIndex];
+ this.seachData.owner = ownerItem.Pid + ownerItem.Id + "/";
+ }
+ this.$emit("exportTable", { seachData: this.seachData });
+ },
+ },
+};
+</script>
+
+<style lang="scss" scoped>
+.header {
+ line-height: normal;
+}
+</style>
diff --git a/src/views/smoke/report/components/maintenance.vue b/src/views/smoke/report/components/maintenance.vue
new file mode 100644
index 0000000..17bcab3
--- /dev/null
+++ b/src/views/smoke/report/components/maintenance.vue
@@ -0,0 +1,13 @@
+<template>
+
+</template>
+
+<script>
+export default {
+
+}
+</script>
+
+<style>
+
+</style>
\ No newline at end of file
diff --git a/src/views/smoke/report/components/overallSituation.vue b/src/views/smoke/report/components/overallSituation.vue
new file mode 100644
index 0000000..b7ce7bf
--- /dev/null
+++ b/src/views/smoke/report/components/overallSituation.vue
@@ -0,0 +1,337 @@
+<template>
+ <div>
+ <MyHeader
+ @getList="getRealTimeList"
+ @exportTable="exportInTime"
+ ></MyHeader>
+ <!-- 鏁版嵁灞曠ず -->
+ <div style="width: 100%; overflow-x: scroll">
+ <el-table
+ border
+ stripe
+ ref="multipleTable"
+ :header-cell-style="{
+ background: '#F5F5F5',
+ 'font-weight': '650',
+ 'line-height': '45px'
+ }"
+ :data="tableData"
+ :row-class-name="tableRowClassName"
+ >
+ <el-table-column label="搴忓彿" type="index" width="60px">
+ </el-table-column>
+ <el-table-column prop="Locale" label="鐩戞祴鐐�" width="120px">
+ </el-table-column>
+ <el-table-column prop="Addr" label="瀹夎鍦板潃" width="180px">
+ </el-table-column>
+ <el-table-column
+ prop="AcquitAtStr"
+ label="閲囬泦鏃堕棿"
+ width="100px"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="FanStatusStr"
+ label="椋庢満鐘舵��"
+ width="80px"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="FilterStatusStr"
+ label="鍑�鍖栧櫒鐘舵��"
+ width="95px"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="EmissionsConc"
+ label="娌圭儫瀹炴椂娴撳害锛坢g/m3锛�"
+ width="110px"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="CEmissions"
+ label="娌圭儫鎶樼畻娴撳害锛坢g/m3锛�"
+ width="110px"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="GranuleConc"
+ label="棰楃矑鐗╁疄鏃舵祿搴︼紙mg/m3锛�"
+ width="120px"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="CGranule"
+ label="棰楃矑鐗╂姌绠楁祿搴︼紙mg/m3锛�"
+ width="120px"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="HydrocarbonConc"
+ label="闈炵敳鐑锋�荤儍瀹炴椂娴撳害锛坢g/m3锛�"
+ width="160px"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="CHydrocarbon"
+ label="闈炵敳鐑锋�荤儍鎶樼畻娴撳害锛坢g/m3锛�"
+ width="160px"
+ >
+ </el-table-column>
+ <el-table-column prop="StatusStr" label="鎺掓斁鐘舵��" width="80px">
+ </el-table-column>
+ <el-table-column
+ prop="OnlineStatusStr"
+ label="鏁翠綋鐘舵��"
+ width="80px"
+ >
+ </el-table-column>
+ <el-table-column prop="operation" label="鎿嶄綔" width="550px">
+ <template slot-scope="scope">
+ <div class="operation">
+ <span @click="handleUpload(scope.row)"
+ >涓�鐐逛竴妗�</span
+ >
+ <span class="line">|</span>
+ <span @click="handleDispatch(scope.row)"
+ >鏌ョ湅姣忓垎閽熸暟鎹�</span
+ >
+ <span class="line">|</span>
+ <span @click="handleLearn(scope.row)"
+ >鏌ョ湅10min娴撳害</span
+ >
+ <span class="line">|</span>
+ <span @click="handleNotDeal(scope.row)"
+ >鏌ョ湅灏忔椂鎶樼畻娴撳害</span
+ >
+ <span class="line">|</span>
+ <span @click="handleNotDeal(scope.row)"
+ >鐩戞祴鐐硅澶囩鐞�</span
+ >
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <div class="tools">
+ <div class="pagination">
+ <el-pagination
+ background
+ @prev-click="handlePrev"
+ @next-click="handleNext"
+ :current-page="currentPage"
+ layout="prev, pager, next"
+ :total="totalNum"
+ :page-size="pageSize"
+ @current-change="changeCurrentPage"
+ >
+ </el-pagination>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import MyHeader from "./header/header1.vue";
+import realTimeApi from "@/api/smoke/realTime";
+export default {
+ data() {
+ return {
+ tableData: [],
+ totalNum: 0,
+ pageSize: 10,
+ currentPage: 1,
+ };
+ },
+ components: { MyHeader },
+ created() {
+ this.getRealTimeList();
+ },
+ methods: {
+ getRealTimeList(seachData) {
+ let params;
+ if (seachData) {
+ params = this.getParam(seachData)
+ } else {
+ params = {
+ pageNum: this.currentPage,
+ pageSize: this.pageSize,
+ };
+ }
+
+ realTimeApi
+ .findInTimeList(params)
+ .then(({ list, total }) => {
+ list.forEach(e => {
+ e.AcquitAtStr = this.dateFormat("YYYY-mm-dd HH:MM", new Date(e.AcquitAt));
+ e.FanStatusStr = this.FanStatusStr(e.FanStatus)
+ e.FilterStatusStr = this.FanStatusStr(e.FilterStatus)
+ e.OnlineStatusStr = this.OnlineStatusStr(e.OnlineStatus)
+ e.StatusStr = this.StatusStr(e.Status)
+ });
+ this.tableData = list;
+ this.totalNum = total;
+ })
+ .catch((err) => this.$message.error(err));
+ },
+ exportInTime(seachData) {
+ let params;
+ if (seachData) {
+ params = this.getParam(seachData)
+ }
+ realTimeApi
+ .exportInTime(params)
+ .then((res) => {
+ debugger
+ let time = new Date();
+ let deathdate = time.toLocaleDateString();
+ const blob = new Blob([res.data], {
+ type: "application/vnd.ms-excel;charset=utf-8",
+ });
+ if (window.navigator.msSaveBlob) {
+ window.navigator.msSaveBlob(
+ blob,
+ deathdate + "瀹炴椂鏁版嵁" + ".xls"
+ );
+ } else {
+ const url = window.URL.createObjectURL(blob);
+ const link = document.createElement("a");
+ link.style.display = "none";
+ link.href = url;
+ link.download = deathdate + "瀹炴椂鏁版嵁" + ".xls";
+ document.body.appendChild(link);
+ link.click();
+ document.body.removeChild(link);
+ }
+ this.$message.success("鎿嶄綔鎴愬姛");
+ })
+ .catch((err) => this.$message.error(err));
+ },
+ getParam(seachData) {
+ let params;
+ if (seachData) {
+ const seachParams = seachData.seachData
+ params = {
+ owner:
+ seachParams.owner == undefined
+ ? null
+ : seachParams.owner,
+ onlineStatus:
+ seachParams.onlineStatus == undefined
+ ? null
+ : seachParams.onlineStatus,
+ status: seachParams.status == undefined
+ ? null
+ : seachParams.status,
+ type:
+ seachParams.type == undefined
+ ? null
+ : seachParams.type,
+ startTime:
+ seachParams.alarmTime == undefined
+ ? null
+ : this.dateFormat("YYYY-mm-dd HH:MM:SS", seachParams.alarmTime[0]),
+ endTime:
+ seachParams.alarmTime == undefined
+ ? null
+ : this.dateFormat("YYYY-mm-dd HH:MM:SS", seachParams.alarmTime[1]),
+ };
+ }
+ return params;
+ },
+
+ FanStatusStr(FanStatus) {
+ switch (FanStatus) {
+ case 1:
+ return "寮�"
+ case 2:
+ return "鍏�"
+ default:
+ return "寮傚父"
+ }
+ },
+ OnlineStatusStr(Status) {
+ switch (Status) {
+ case 1:
+ return "鍦ㄧ嚎"
+ case 2:
+ return "绂荤嚎"
+ default:
+ return "寮傚父绂荤嚎"
+ }
+ },
+ StatusStr(Status) {
+ switch (Status) {
+ case "NORMAL":
+ return "姝e父"
+ case "ALARM":
+ return "棰勮"
+ case "EXCESS":
+ return "瓒呮爣"
+ case "DOWN":
+ return "绂荤嚎"
+ default:
+ return "寮傚父绂荤嚎"
+ }
+ },
+ // 璁剧疆琛ㄦ牸鏂戦┈绾�
+ tableRowClassName({ row, rowIndex }) {
+ if ((rowIndex + 1) % 2 === 0) {
+ return 'warning-row';
+ } else {
+ return 'success-row';
+ }
+ },
+ // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
+ changeCurrentPage(page) {
+ this.currentPage = page;
+ this.getRealTimeList();
+ },
+ // 涓婁竴椤电偣鍑讳簨浠�
+ handlePrev(page) {
+ this.currentPage = page;
+ this.getRealTimeList();
+ },
+ // 涓嬩竴椤电偣鍑讳簨浠�
+ handleNext(page) {
+ this.currentPage = page;
+ this.getRealTimeList();
+ },
+ dateFormat(fmt, date) {
+ let ret;
+ const opt = {
+ "Y+": date.getFullYear().toString(), // 骞�
+ "m+": (date.getMonth() + 1).toString(), // 鏈�
+ "d+": date.getDate().toString(), // 鏃�
+ "H+": date.getHours().toString(), // 鏃�
+ "M+": date.getMinutes().toString(), // 鍒�
+ "S+": date.getSeconds().toString() // 绉�
+ // 鏈夊叾浠栨牸寮忓寲瀛楃闇�姹傚彲浠ョ户缁坊鍔狅紝蹇呴』杞寲鎴愬瓧绗︿覆
+ };
+ for (let k in opt) {
+ ret = new RegExp("(" + k + ")").exec(fmt);
+ if (ret) {
+ fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
+ };
+ };
+ return fmt;
+ },
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+.el-table {
+ .operation {
+ display: flex;
+ color: var(--operation-color);
+ .line {
+ padding: 0 5px;
+ }
+
+ span:hover {
+ cursor: pointer;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/smoke/report/components/reduceEmissions.vue b/src/views/smoke/report/components/reduceEmissions.vue
new file mode 100644
index 0000000..17bcab3
--- /dev/null
+++ b/src/views/smoke/report/components/reduceEmissions.vue
@@ -0,0 +1,13 @@
+<template>
+
+</template>
+
+<script>
+export default {
+
+}
+</script>
+
+<style>
+
+</style>
\ No newline at end of file
diff --git a/src/views/smoke/report/index.vue b/src/views/smoke/report/index.vue
index ddfb58b..a1b73ba 100644
--- a/src/views/smoke/report/index.vue
+++ b/src/views/smoke/report/index.vue
@@ -1,13 +1,39 @@
<template>
- <div>缁熻鎶ヨ〃</div>
+ <el-tabs
+ style="line-height: normal"
+ v-model="activeName"
+ @tab-click="handleClick"
+ >
+ <el-tab-pane label="妫�娴嬩华鎬讳綋鎯呭喌鎶ヨ〃" name="first">
+ <OverallSituation
+ /></el-tab-pane>
+ <el-tab-pane label="娌圭儫鍑忔帓缁熻" name="second">
+ <ReduceEmissions />
+ </el-tab-pane>
+ <el-tab-pane label="鐩戞祴鎶ヨ缁熻" name="third">
+ <Alarm />
+ </el-tab-pane>
+ <el-tab-pane label="杩愮淮鎯呭喌鎶ヨ〃" name="fourth">
+ <Maintenance />
+ </el-tab-pane>
+ </el-tabs>
</template>
-
<script>
+import OverallSituation from "./components/overallSituation.vue";
+import ReduceEmissions from "./components/reduceEmissions.vue";
+import Alarm from "./components/alarm.vue";
+import Maintenance from "./components/maintenance.vue";
export default {
-
-}
-</script>
-
-<style>
-
-</style>
\ No newline at end of file
+ data() {
+ return {
+ activeName: "first",
+ };
+ },
+ components: { OverallSituation, ReduceEmissions, Alarm, Maintenance },
+ methods: {
+ handleClick(tab, event) {
+ console.log(tab, event);
+ },
+ },
+};
+</script>
\ No newline at end of file
--
Gitblit v1.8.0