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