Commit cb17409f authored by root's avatar root

生产报表模块和报警报警信息模块

parent 9ae21109
import http from './http'
import {reportHeatAnalysis,reportHeatForecast,reportTransferEnergy,reportTransferArea} from "../../src/dataJson/productData/mock"
//热量分析报表
export const postHeatAnalysis = params => {
/*export const postHeatAnalysis = params => {
return http.post(`/api/analysis/report/HeatAnalysis`, params).then(res => res).catch(function (error) {
console.log(error);
})
}*/
//静态资源 热量分析报表
export const postHeatAnalysis = params => {
return Promise.resolve(reportHeatAnalysis);
}
//明日预测报表(实时或历史查询)
export const postHeatForecast = params => {
/*export const postHeatForecast = params => {
return http.post(`/api/analysis/report/HeatForecast`, params).then(res => res).catch(function (error) {
console.log(error);
})
}*/
//静态资源 明日预测报表(实时或历史查询)
export const postHeatForecast = params => {
return Promise.resolve(reportHeatForecast);
}
//明日预测报表(打印查询)
export const postPrintHeatForecast = params => {
return http.post(`/api/analysis/report/PrintHeatForecast`, params).then(res => res).catch(function (error) {
......@@ -29,22 +35,30 @@ export const postSaveHeatForecast = params => {
}
//换热站能耗报表
export const postTransferEnergy = params => {
/*export const postTransferEnergy = params => {
return http.post(`/api/analysis/report/TransferEnergy`, params).then(res => res).catch(function (error) {
console.log(error);
})
}*/
//静态资源 换热站能耗报表
export const postTransferEnergy = params => {
return Promise.resolve(reportTransferEnergy);
}
//换热站面积报表
export const postTransferArea = params => {
/*export const postTransferArea = params => {
return http.post(`/api/analysis/report/TransferArea`, params).then(res => res).catch(function (error) {
console.log(error);
})
}*/
//静态资源 换热站面积报表
export const postTransferArea = params => {
return Promise.resolve(reportTransferArea);
}
//热量实时分析报表
export const postRealAnalysis = params => {
return http.post(`/api/analysis/report/RealAnalysis`, params).then(res => res).catch(function (error) {
console.log(error);
})
}
\ No newline at end of file
}
export const alarmGetTransAlarmStatusData={
"success": true,
"status": 0,
"message": "操作成功",
"data": []
}
export const alarmGetBoilerAlarmStatusData={
"success": true,
"status": 0,
"message": "操作成功",
"data": [
{
"index": 1,
"name": "3#炉",
"cnName": "氮氧化合物 mg/m3",
"gatherTime": "2025-01-04 16:06:48",
"topMost": null,
"upper": false,
"lower": true,
"downMost": null
},
{
"index": 2,
"name": "2#炉",
"cnName": "氮氧化合物 mg/m3",
"gatherTime": "2025-01-04 16:06:48",
"topMost": false,
"upper": false,
"lower": false,
"downMost": null
},
{
"index": 3,
"name": "3#炉",
"cnName": "氮氧化合物(折算值)",
"gatherTime": "2025-01-04 16:06:48",
"topMost": false,
"upper": false,
"lower": null,
"downMost": null
},
{
"index": 4,
"name": "2#炉",
"cnName": "氮氧化合物(折算值)",
"gatherTime": "2025-01-04 16:06:48",
"topMost": false,
"upper": false,
"lower": null,
"downMost": null
}
]
}
export const alarmGetPipeAlarmStatusData={
"success": true,
"status": 0,
"message": "操作成功",
"data": [
{
"index": 1,
"name": "东部计量站",
"cnName": "",
"gatherTime": "2024-09-11 15:11:56",
"topMost": false,
"upper": false,
"lower": null,
"downMost": true
},
{
"index": 2,
"name": "东部计量站",
"cnName": "",
"gatherTime": "2024-09-11 15:11:56",
"topMost": false,
"upper": false,
"lower": null,
"downMost": true
}
]
}
export const alarmGetTransAlarmData={
"success": true,
"status": 0,
"message": "操作成功",
"data": {
"rowCount": 8,
"dataInfoList": [
{
"index": 1,
"name": "梁园公建",
"cnName": "二次网压差",
"alarmDate": "2025-01-05 16:39:38",
"alarmMessage": "[梁园公建]换热站报警:0.014[ 二次网压差 ] 已超过 [下限] 0.015",
"alarmPlan": ""
},
{
"index": 2,
"name": "梁园公建",
"cnName": "二次网压差",
"alarmDate": "2025-01-05 16:40:56",
"alarmMessage": "[梁园公建]换热站报警:0.009[ 二次网压差 ] 已超过 [下限] 0.015",
"alarmPlan": ""
},
{
"index": 3,
"name": "梁园公建",
"cnName": "二次网压差",
"alarmDate": "2025-01-05 16:42:03",
"alarmMessage": "[梁园公建]换热站报警:0.008[ 二次网压差 ] 已超过 [下限] 0.015",
"alarmPlan": ""
},
{
"index": 4,
"name": "梁园公建",
"cnName": "二次网压差",
"alarmDate": "2025-01-05 16:43:29",
"alarmMessage": "[梁园公建]换热站报警:0.009[ 二次网压差 ] 已超过 [下限] 0.015",
"alarmPlan": ""
},
{
"index": 5,
"name": "圣美园高区",
"cnName": "1#阀开度",
"alarmDate": "2025-01-06 06:01:33",
"alarmMessage": "[圣美园高区]换热站报警:100.000[ 1#阀开度 ] 已超过 [上限] 95",
"alarmPlan": ""
},
{
"index": 6,
"name": "圣美园高区",
"cnName": "1#阀开度",
"alarmDate": "2025-01-06 06:02:51",
"alarmMessage": "[圣美园高区]换热站报警:100.000[ 1#阀开度 ] 已超过 [上限] 95",
"alarmPlan": ""
},
{
"index": 7,
"name": "福居园低区",
"cnName": "二次网压差",
"alarmDate": "2025-01-06 09:10:20",
"alarmMessage": "[福居园低区]换热站报警:-0.004[ 二次网压差 ] 已超过 [下限] 0.015",
"alarmPlan": ""
},
{
"index": 8,
"name": "福居园高区",
"cnName": "二次网压差",
"alarmDate": "2025-01-06 09:10:20",
"alarmMessage": "[福居园高区]换热站报警:-0.002[ 二次网压差 ] 已超过 [下限] 0.015",
"alarmPlan": ""
}
]
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -11,18 +11,18 @@
</el-form-item>
<el-form-item label="设备:">
<el-cascader :options="options" v-model="AlarmInfo.Id" :props="props" collapse-tags clearable :show-all-levels="false"
placeholder="请选择" style="min-width: 210px;" />
placeholder="请选择" style="min-width: 210px;" />
</el-form-item>
<el-form-item label="开始时间:">
<el-config-provider :locale="zhCn">
<el-date-picker v-model="AlarmInfo.startTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
placeholder="选择开始时间" style="min-width: 180px;" /> <!-- 日期时间格式 2024-01-01 00:00:00-->
placeholder="选择开始时间" style="min-width: 180px;" /> <!-- 日期时间格式 2024-01-01 00:00:00-->
</el-config-provider>
</el-form-item>
<el-form-item label="结束时间:">
<el-config-provider :locale="zhCn">
<el-date-picker v-model="AlarmInfo.endTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
placeholder="选择结束时间" style="min-width: 180px;" />
placeholder="选择结束时间" style="min-width: 180px;" />
</el-config-provider>
</el-form-item>
<el-form-item>
......@@ -35,7 +35,7 @@
</el-card>
<el-card class="moduleCard" :height="tableHeight">
<el-table :data="tableData" :height="tableHeight" v-loading="loading" :cell-style="setCellStyle" id="out-table"
border highlight-current-row :header-cell-style="setHeaderCellStyle" @sort-change="sortMethod" :header-cell-class-name="handleHeadAddClass" >
border highlight-current-row :header-cell-style="setHeaderCellStyle" @sort-change="sortMethod" :header-cell-class-name="handleHeadAddClass" >
<el-table-column prop="index" label="编号" :sortable="false" width="80px" fixed />
<el-table-column prop="name" label="设施名称" :sortable="true" width="200px" fixed />
<el-table-column prop="cnName" label="报警类型" :sortable="false" width="200px" fixed />
......@@ -47,9 +47,9 @@
<el-footer style="height: 8px;">
<el-config-provider :locale="zhCn">
<el-pagination v-model:current-page="currentPage" v-model:page-size="pageSize"
:page-sizes="[30, 40, 50, 100, 200, 300]" :small="true" :disabled="disabled" :background="background"
layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="getdata" @current-change="getdata"
class="pagination" />
:page-sizes="[30, 40, 50, 100, 200, 300]" :small="true" :disabled="disabled" :background="background"
layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="getdata" @current-change="getdata"
class="pagination" />
</el-config-provider>
</el-footer>
</template>
......@@ -59,7 +59,7 @@ import { ref, reactive, onMounted, onUnmounted } from 'vue';
import http from '../../api/http';
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
import store from "../../store/index";
import {alarmGetTransAlarmData} from "../../dataJson/alarmData/mock"
//分页设置
const currentPage = ref(1)
......@@ -93,34 +93,34 @@ function setContentHeight() {
function sortMethod({ order, prop }){
// 触发的排序和缓存的排序相同时,取消该字段的排序
if (!order || sortField[prop] === order) {
sortField[prop] = null
} else {
sortField[prop] = order
}
// console.log(sortField)
let sortname = "";
let sortnames = "";
let direction = '';
for (const i in sortField) {
if (sortField[i] == 'ascending') {
direction = 'ASC'
} else if (sortField[i] == 'descending') {
direction = 'DESC'
}
if(i === "name"){
sortname = "UnitName";
}else if(i === "alarmDate"){
sortname = "alarmDate";
}
// console.log(sortname)
if(sortnames===""){
sortnames = sortnames + sortname + " " + direction;
}else{
sortnames = sortnames + "," + sortname + " " + direction;
}
AlarmInfo.sort = sortnames;
}
getdata() //调用后端查询接口
sortField[prop] = null
} else {
sortField[prop] = order
}
// console.log(sortField)
let sortname = "";
let sortnames = "";
let direction = '';
for (const i in sortField) {
if (sortField[i] == 'ascending') {
direction = 'ASC'
} else if (sortField[i] == 'descending') {
direction = 'DESC'
}
if(i === "name"){
sortname = "UnitName";
}else if(i === "alarmDate"){
sortname = "alarmDate";
}
// console.log(sortname)
if(sortnames===""){
sortnames = sortnames + sortname + " " + direction;
}else{
sortnames = sortnames + "," + sortname + " " + direction;
}
AlarmInfo.sort = sortnames;
}
getdata() //调用后端查询接口
}
function handleHeadAddClass({ column }) {
......@@ -214,7 +214,7 @@ function getBoilers(){
}else{
element.supplyList.forEach(supply => {
supply.boilerList.forEach(boiler => {
options.push({ value: boiler.boilerId, label: boiler.description });
options.push({ value: boiler.boilerId, label: boiler.description });
})
})
}
......@@ -239,7 +239,7 @@ function getPipes(){
if(element.enterpriseId === "9BCA54BC-8F27-4849-8D7D-50C5099E1949".toLowerCase()){
element.serviceCenterList.forEach(center=>{
center.supplyList.forEach(supply => {
options.push({ value: supply.pipeInfo.pipeId, label: supply.pipeInfo.pipeName});
options.push({ value: supply.pipeInfo.pipeId, label: supply.pipeInfo.pipeName});
});
})
}else{
......@@ -303,7 +303,7 @@ function gettransfer() {
AlarmInfo.start = ((currentPage.value - 1) * pageSize.value) + 1;
AlarmInfo.count = pageSize.value - 1;
}
http.post("/api/alarm/" + type.value, AlarmInfo).then((result) => {
/*http.post("/api/alarm/" + type.value, AlarmInfo).then((result) => {
console.log(result.data);
console.log(AlarmInfo);
if(result.data !== null){
......@@ -313,9 +313,10 @@ function gettransfer() {
if(result.data === null || AlarmInfo.Id.length < 1){
tableData.value = null;
total.value = 0;
}
loading.value = false;
});
}*/
tableData.value=alarmGetTransAlarmData.data.dataInfoList;
loading.value = false;
/* });*/
}
function setCellStyle({ row, column, rowIndex, columnIndex }) {
......@@ -338,7 +339,7 @@ function setHeaderCellStyle({ row, column, rowIndex, columnIndex }) {
}
// 导出表格 按钮点击后触发事件
async function exportExcel () {
async function exportExcel () {
if(tableData.value !== null){
sessionStorage.setItem("DeviceQueryStart", AlarmInfo.startTime);
sessionStorage.setItem("DeviceQueryEnd", AlarmInfo.endTime);
......@@ -419,14 +420,14 @@ onUnmounted(() => {
margin-right: 30px;
}
.el-tag--mini {
height: 21px !important
height: 21px !important
}
.el-cascader .el-input .el-input__inner:focus, .el-cascader .el-input.is-focus .el-input__inner{
height: 33px; //这里高度根据需求自己设定
height: 33px; //这里高度根据需求自己设定
}
.el-cascader__tags {
display: inline-flex;
margin-right: 10px;
flex-wrap: nowrap;
display: inline-flex;
margin-right: 10px;
flex-wrap: nowrap;
}
</style>
\ No newline at end of file
</style>
......@@ -11,7 +11,7 @@
</el-form-item>
<el-form-item label="设备:">
<el-cascader :options="options" v-model="AlarmInfo" :props="props" collapse-tags clearable
:show-all-levels="false" placeholder="请选择" style="min-width: 210px;" @change="getopt" />
:show-all-levels="false" placeholder="请选择" style="min-width: 210px;" @change="getopt" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getdata" style="min-width: 70px;">查询</el-button>
......@@ -21,8 +21,8 @@
</el-card>
<el-card class="moduleCard" :height="tableHeight">
<el-table :data="tableData" :row-class-name="rowClassName" :height="tableHeight" v-loading="loading"
:cell-style="setCellStyle" id="out-table" border highlight-current-row :header-cell-style="setHeaderCellStyle"
:header-cell-class-name="handleHeadAddClass">
:cell-style="setCellStyle" id="out-table" border highlight-current-row :header-cell-style="setHeaderCellStyle"
:header-cell-class-name="handleHeadAddClass">
<el-table-column prop="index" label="编号" :sortable="false" width="100px" fixed />
<el-table-column prop="name" label="设施名称" :sortable="false" width="250px" fixed />
<el-table-column prop="cnName" label="报警类型" :sortable="false" fixed />
......@@ -31,7 +31,7 @@
<template #default="scope">
<div class="div-form-img">
<el-image class="img-center" v-if="getImgUrl(scope, scope.column.property)"
style="width: 20px; height: 20px" :src="getImgUrl(scope, scope.column.property)" :fit="'cover'" />
style="width: 20px; height: 20px" :src="getImgUrl(scope, scope.column.property)" :fit="'cover'" />
</div>
</template>
</el-table-column>
......@@ -39,7 +39,7 @@
<template #default="scope">
<div class="div-form-img">
<el-image class="img-center" v-if="getImgUrl(scope, scope.column.property)"
style="width: 20px; height: 20px" :src="getImgUrl(scope, scope.column.property)" :fit="'cover'" />
style="width: 20px; height: 20px" :src="getImgUrl(scope, scope.column.property)" :fit="'cover'" />
</div>
</template>
</el-table-column>
......@@ -47,7 +47,7 @@
<template #default="scope">
<div class="div-form-img">
<el-image class="img-center" v-if="getImgUrl(scope, scope.column.property)"
style="width: 20px; height: 20px" :src="getImgUrl(scope, scope.column.property)" :fit="'cover'" />
style="width: 20px; height: 20px" :src="getImgUrl(scope, scope.column.property)" :fit="'cover'" />
</div>
</template>
</el-table-column>
......@@ -55,7 +55,7 @@
<template #default="scope">
<div class="div-form-img">
<el-image class="img-center" v-if="getImgUrl(scope, scope.column.property)"
style="width: 20px; height: 20px" :src="getImgUrl(scope, scope.column.property)" :fit="'cover'" />
style="width: 20px; height: 20px" :src="getImgUrl(scope, scope.column.property)" :fit="'cover'" />
</div>
</template>
</el-table-column>
......@@ -74,7 +74,7 @@
</el-form-item>
<el-form-item label="设备:">
<el-cascader :options="options" v-model="dept" :props="prop" collapse-tags clearable :show-all-levels="false"
placeholder="请选择" style="min-width: 210px;" @change="getopt" />
placeholder="请选择" style="min-width: 210px;" @change="getopt" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="paramsSetting" style="min-width: 70px;">确定</el-button>
......@@ -85,7 +85,7 @@
<el-col :span="6">
<div class="left">
<el-table :data="cnNames_before" class="scroll-table" :row-style="{ height: '16px' }"
:cell-style="{ padding: '0px' }">
:cell-style="{ padding: '0px' }">
<el-table-column prop="cnName" class-name="before-hover-column">
<template #default="scope">
<div @click="selectBeforeParams(scope.row)">{{ scope.row.cnName }}</div>
......@@ -189,7 +189,7 @@
<td style="text-align: left">
<el-form-item prop="alarmPlan">
<el-input style="width: 80%" type="textarea" rows="6"
v-model="addParams.alarmPlan"></el-input>
v-model="addParams.alarmPlan"></el-input>
</el-form-item>
</td>
</tr>
......@@ -241,7 +241,7 @@
<el-col :span="6">
<div class="left">
<el-table :data="cnNames_after" class="scroll-table" :row-style="{ height: '16px' }"
:cell-style="{ padding: '0px' }">
:cell-style="{ padding: '0px' }">
<el-table-column prop="cnName" class-name="after-hover-column">
<template #default="scope">
<div @click="selectAfterParams(scope.row)">{{ scope.row.cnName }}</div>
......@@ -265,7 +265,7 @@ import { ElMessage, ElMessageBox } from 'element-plus';
import { watchEffect } from 'vue';
import { add } from 'lodash';
import { vFloatNumber } from "@/utils/directives.js";
import {alarmGetTransAlarmStatusData,alarmGetBoilerAlarmStatusData,alarmGetPipeAlarmStatusData} from "../../dataJson/alarmData/mock"
//分页设置
const currentPage = ref(1)
var pageSize = ref(30)
......@@ -472,7 +472,7 @@ function getSupplys() {
//获取数据列表
function gettransfer() {
loading.value = true;
http.post("/api/alarm/" + type.value, AlarmInfo.value).then((result) => {
/*http.post("/api/alarm/" + type.value, AlarmInfo.value).then((result) => {
// console.log(result.data);
if (result.data !== null) {
tableData.value = result.data;
......@@ -482,6 +482,15 @@ function gettransfer() {
}
loading.value = false;
});
if (result.data !== null) {
tableData.value = result.data;
}
if (result.data === null) {
tableData.value = null;
}*/
tableData.value = alarmGetBoilerAlarmStatusData.data;
loading.value = false;
}
function setCellStyle({ row, column, rowIndex, columnIndex }) {
......@@ -716,7 +725,7 @@ const selectAfterParams = (row) => {
// 修改亦如此
const btnLoading = ref(false)
const onAdd = async () => {
btnLoading.value = true
btnLoading.value = true
// console.log("!!!!!!!", addParams.value);
// 提交添加或修改-以上至少有一个选项有值
if (addParams.value.topMost || addParams.value.upper || addParams.value.lower || addParams.value.downMost) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment