Browse Source

1.首页热水系统修改区分高中区、裙楼中厨平均供回水温度

2.综合大屏能耗总览添加单位kgce,两个仪表盘数据添加单位,基本信息屏蔽后四项,用能趋势折线图添加单位kwh
3.能源分析去掉系统条件,默认传参"冷源监控系统"参数"0";
4.能源分析-设备能耗的查询类型增加system_type=0,grade=40的筛选条件
5.能源分析-设备组能耗只保留主机、冷却泵、冷冻泵、冷却塔四个设备类型
gh_ers
selia-zx 2 months ago
parent
commit
97310bf723
  1. 12
      src/views/bigScreen/bigScreen.vue
  2. 54
      src/views/bigScreen/components/allEnergy.vue
  3. 15
      src/views/bigScreen/components/coldSysEnergy.vue
  4. 2
      src/views/bigScreen/components/timeData.vue
  5. 8
      src/views/bigScreen/components/useElect.vue
  6. 15
      src/views/bigScreen/components/waterSysEnergy.vue
  7. 36
      src/views/centerairC/enSourceAnalysis/components/deviceEnergy.vue
  8. 37
      src/views/centerairC/enSourceAnalysis/components/equipment.vue
  9. 11
      src/views/centerairC/enSourceAnalysis/components/machineRoom.vue
  10. 581
      src/views/centerairC/sysMonitor/monitorCenter.vue
  11. 83
      src/views/components/hotWater.vue
  12. 3
      src/views/components/viewEnergy.vue

12
src/views/bigScreen/bigScreen.vue

@ -147,7 +147,7 @@
<div class="message-data">{{ viewMes.totalGas }}t</div> <div class="message-data">{{ viewMes.totalGas }}t</div>
<div>总蒸汽量</div> <div>总蒸汽量</div>
</div> </div>
<div class="message-li"> <!-- <div class="message-li">
<img <img
class="message-img" class="message-img"
src="../../assets/images/message-img5.png" src="../../assets/images/message-img5.png"
@ -182,7 +182,7 @@
/> />
<div class="message-data">{{ viewMes.gasUnitArea }}t/</div> <div class="message-data">{{ viewMes.gasUnitArea }}t/</div>
<div>面积汽耗</div> <div>面积汽耗</div>
</div> </div> -->
</div> </div>
</div> </div>
<div class="special-div"> <div class="special-div">
@ -490,7 +490,7 @@ export default {
flex-direction: row; flex-direction: row;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: flex-start; justify-content: flex-start;
margin-top: 29px; margin: 30px 0;
font-family: SourceHanSansCN-Regular; font-family: SourceHanSansCN-Regular;
font-size: 16px; font-size: 16px;
font-weight: normal; font-weight: normal;
@ -503,7 +503,7 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
width: calc(33.33% - 32px); width: calc(33.33% - 32px);
margin: 0 16px; margin: 16px;
// margin-bottom: 22px; // margin-bottom: 22px;
.message-data { .message-data {
font-family: DIN-Bold; font-family: DIN-Bold;
@ -611,11 +611,11 @@ export default {
.screen-right { .screen-right {
width: 30% !important; width: 30% !important;
.message { .message {
margin-top: 0.29rem !important; margin: 0.3rem 0 !important;
font-size: 0.16rem !important; font-size: 0.16rem !important;
.message-li { .message-li {
width: calc(33.33% - 0.32rem) !important; width: calc(33.33% - 0.32rem) !important;
margin: 0 0.16rem !important; margin:0.16rem !important;
.message-data { .message-data {
font-size: 0.2rem !important; font-size: 0.2rem !important;
margin-bottom: 0.3rem !important; margin-bottom: 0.3rem !important;

54
src/views/bigScreen/components/allEnergy.vue

@ -124,10 +124,16 @@ export default {
{ {
name: "数据详情:", name: "数据详情:",
data: [ data: [
{ value: this.energyMes.eleStandardCoal, name: "耗电量" }, { value: this.energyMes.eleStandardCoal, name: "耗电量(kgce)" },
{ value: this.energyMes.waterStandardCoal, name: "用水量" }, {
{ value: this.energyMes.coldStandardCoal, name: "产冷量" }, value: this.energyMes.waterStandardCoal,
{ value: this.energyMes.gasStandardCoal, name: "蒸汽量" }, name: "用水量(kgce)",
},
{
value: this.energyMes.coldStandardCoal,
name: "产冷量(kgce)",
},
{ value: this.energyMes.gasStandardCoal, name: "蒸汽量(kgce)" },
], ],
itemStyle: { itemStyle: {
color: function (params) { color: function (params) {
@ -140,10 +146,16 @@ export default {
}, },
{ {
data: [ data: [
{ value: this.energyMes.eleStandardCoal, name: "耗电量" }, { value: this.energyMes.eleStandardCoal, name: "耗电量(kgce)" },
{ value: this.energyMes.waterStandardCoal, name: "用水量" }, {
{ value: this.energyMes.coldStandardCoal, name: "产冷量" }, value: this.energyMes.waterStandardCoal,
{ value: this.energyMes.gasStandardCoal, name: "蒸汽量" }, name: "用水量(kgce)",
},
{
value: this.energyMes.coldStandardCoal,
name: "产冷量(kgce)",
},
{ value: this.energyMes.gasStandardCoal, name: "蒸汽量(kgce)" },
], ],
}, },
], ],
@ -227,10 +239,10 @@ export default {
{ {
name: "数据详情:", name: "数据详情:",
data: [ data: [
{ value: 0, name: "耗电量" }, { value: 0, name: "耗电量(kgce)" },
{ value: 0, name: "用水量" }, { value: 0, name: "用水量(kgce)" },
{ value: 0, name: "产冷量" }, { value: 0, name: "产冷量(kgce)" },
{ value: 0, name: "蒸汽量" }, { value: 0, name: "蒸汽量(kgce)" },
], ],
itemStyle: { itemStyle: {
color: function (params) { color: function (params) {
@ -243,10 +255,10 @@ export default {
}, },
{ {
data: [ data: [
{ value: 0, name: "耗电量" }, { value: 0, name: "耗电量(kgce)" },
{ value: 0, name: "用水量" }, { value: 0, name: "用水量(kgce)" },
{ value: 0, name: "产冷量" }, { value: 0, name: "产冷量(kgce)" },
{ value: 0, name: "蒸汽量" }, { value: 0, name: "蒸汽量(kgce)" },
], ],
}, },
], ],
@ -286,7 +298,7 @@ export default {
color: "#ffffff", color: "#ffffff",
}, },
textAlign: "center", textAlign: "center",
x: "27%", x: "23%",
y: "36%", // y: "36%", //
}, },
tooltip: { tooltip: {
@ -310,7 +322,7 @@ export default {
name: "数据详情:", name: "数据详情:",
type: "pie", type: "pie",
radius: ["60%", "72%"], radius: ["60%", "72%"],
center: ["28%", "44%"], center: ["24%", "44%"],
avoidLabelOverlap: false, avoidLabelOverlap: false,
label: { label: {
show: false, show: false,
@ -333,7 +345,7 @@ export default {
{ {
type: "pie", type: "pie",
radius: ["50%", "62%"], radius: ["50%", "62%"],
center: ["28%", "44%"], center: ["24%", "44%"],
avoidLabelOverlap: false, avoidLabelOverlap: false,
label: { label: {
show: false, show: false,
@ -363,7 +375,7 @@ export default {
// silent: true, // silent: true,
// center // center
radius: ["38%", "39%"], radius: ["38%", "39%"],
center: ["28%", "44%"], center: ["24%", "44%"],
label: { label: {
show: false, show: false,
}, },
@ -385,7 +397,7 @@ export default {
// silent: true, // silent: true,
// center // center
radius: ["0%", "38%"], radius: ["0%", "38%"],
center: ["28%", "44%"], center: ["24%", "44%"],
label: { label: {
show: false, show: false,
}, },

15
src/views/bigScreen/components/coldSysEnergy.vue

@ -509,16 +509,21 @@ export default {
label: { label: {
show: true, show: true,
position: "center", // position: "center", //
offset: [0, -titleFontSize * 0.6], // 10 offset: [0, -25], // 10
formatter: function () { formatter: function () {
// HTML 使 rich // HTML 使 rich
return `{line|${that.useForm.useData}}`; return `{line1|${that.useForm.useData}}\n{line2| EER}`;
}, },
rich: { rich: {
line: { line1: {
color: "#39dd4f", //
fontSize: 20, //
lineHeight: 34, //
},
line2: {
color: "#fff", // color: "#fff", //
fontSize: titleFontSize, // fontSize: 14, //
lineHeight: 0, // lineHeight: 24, //
}, },
}, },
}, },

2
src/views/bigScreen/components/timeData.vue

@ -19,7 +19,7 @@ export default {
props: ["currentIndex"], props: ["currentIndex"],
data() { data() {
return { return {
timeData2: [{ title: "日" }, { title: "月" }, { title: "年" }], timeData2: [{ title: "日" }, { title: "月" }, { title: "年" }],
timeIndex2: 0, timeIndex2: 0,
}; };
}, },

8
src/views/bigScreen/components/useElect.vue

@ -127,6 +127,7 @@ export default {
}, },
series: [ series: [
{ {
name: "用电趋势",
type: "line", type: "line",
// //
symbolSize: 8, symbolSize: 8,
@ -203,7 +204,8 @@ export default {
":" + ":" +
'<span style="color: #000000; font-weight: bold;margin-left:5px">' + '<span style="color: #000000; font-weight: bold;margin-left:5px">' +
value + value +
"</span><br>"; "kwh";
("</span><br>");
} }
return res; return res;
}, },
@ -264,7 +266,7 @@ export default {
.sys_charts { .sys_charts {
width: 100%; width: 100%;
height: 230px; height: 280px;
} }
.eer { .eer {
font-size: 18px; font-size: 18px;
@ -275,7 +277,7 @@ export default {
@media (min-width: 2000px) { @media (min-width: 2000px) {
.energy_content { .energy_content {
.sys_charts { .sys_charts {
height: 2.4rem !important; height: 2.8rem !important;
} }
.eer { .eer {
font-size: 0.18rem !important; font-size: 0.18rem !important;

15
src/views/bigScreen/components/waterSysEnergy.vue

@ -510,16 +510,21 @@ export default {
label: { label: {
show: true, show: true,
position: "center", // position: "center", //
offset: [0, -titleFontSize * 0.6], // 10 offset: [0, -25], // 10
formatter: function () { formatter: function () {
// HTML 使 rich // HTML 使 rich
return `{line|${that.useForm.useData}}`; return `{line1|${that.useForm.useData}}\n{line2| kwh/吨}`;
}, },
rich: { rich: {
line: { line1: {
color: "#39dd4f", //
fontSize: 20, //
lineHeight: 34, //
},
line2: {
color: "#fff", // color: "#fff", //
fontSize: titleFontSize, // fontSize: 14, //
lineHeight: 0, // lineHeight: 24, //
}, },
}, },
}, },

36
src/views/centerairC/enSourceAnalysis/components/deviceEnergy.vue

@ -86,7 +86,7 @@
> >
</el-option> </el-option>
</el-select> </el-select>
<el-select <!-- <el-select
style="margin-left: 0.12rem" style="margin-left: 0.12rem"
v-model="systemType" v-model="systemType"
placeholder="请选择系统类型" placeholder="请选择系统类型"
@ -98,7 +98,7 @@
:label="dict.dictLabel" :label="dict.dictLabel"
:value="dict.dictValue" :value="dict.dictValue"
/> />
</el-select> </el-select> -->
<div class="success-btn"> <div class="success-btn">
<el-button <el-button
type="success" type="success"
@ -156,7 +156,7 @@ export default {
deviceTypes: [], deviceTypes: [],
dateType: "hour", // dateType: "hour", //
timeDate: [], // timeDate: [], //
deviceTitle: "冷水机组", deviceTitle: "主机",
dayDate: [], // dayDate: [], //
monthDate: [], // monthDate: [], //
startYear: "", // startYear: "", //
@ -220,7 +220,11 @@ export default {
listData(data) listData(data)
.then((response) => { .then((response) => {
this.electType = []; this.electType = [];
this.deviceTypes = response.rows; // response.rows dictValue "0" "3"
this.deviceTypes = response.rows.filter((item) => {
const dictValue = parseInt(item.dictValue, 10);
return !isNaN(dictValue) && dictValue >= 0 && dictValue <= 3;
});
if (this.deviceTypes.length > 0) { if (this.deviceTypes.length > 0) {
this.deviceType = this.deviceTypes[0].dictValue; this.deviceType = this.deviceTypes[0].dictValue;
} }
@ -233,7 +237,10 @@ export default {
}, },
/** 初始化数据 */ /** 初始化数据 */
initData() { initData() {
Promise.all([this.getDictList(), this.getList()]) Promise.all([
// this.getDictList(),
this.getList(),
])
.then(() => { .then(() => {
this.getTableData(); this.getTableData();
}) })
@ -394,7 +401,7 @@ export default {
startTime: this.startTime, startTime: this.startTime,
endTime: this.endTime, endTime: this.endTime,
deviceType: this.deviceType, deviceType: this.deviceType,
systemType: this.systemType, systemType: 0,
}; };
console.log("查询数据参数", data); console.log("查询数据参数", data);
// this.option2.series[0].data = ["1"]; // this.option2.series[0].data = ["1"];
@ -505,8 +512,8 @@ export default {
show: false, // show: false, //
}, },
grid: { grid: {
top: "6%", top: "15%",
left: "3%", left: "5%",
right: "4.4%", right: "4.4%",
bottom: "20%", bottom: "20%",
containLabel: true, containLabel: true,
@ -621,12 +628,12 @@ export default {
// x // x
xAxis: { xAxis: {
axisLabel: { axisLabel: {
fontSize: titleFontSize * 1.5, fontSize: titleFontSize * 1.4,
}, },
}, },
yAxis: { yAxis: {
axisLabel: { axisLabel: {
fontSize: titleFontSize * 1.5, fontSize: titleFontSize * 1.4,
}, },
}, },
// X // X
@ -693,7 +700,7 @@ export default {
line-height: 0.07rem; line-height: 0.07rem;
letter-spacing: 0.02rem; letter-spacing: 0.02rem;
color: #1f70e9; color: #1f70e9;
margin: 0.3rem 0; margin: 0.3rem 0 0rem 0;
width: 100%; width: 100%;
text-align: center; text-align: center;
} }
@ -708,7 +715,12 @@ export default {
.main-content { .main-content {
min-height: 6.9rem; min-height: 6.9rem;
} }
.charts-table{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.charts_refs { .charts_refs {
width: 17rem; width: 17rem;
height: 4.55rem; height: 4.55rem;

37
src/views/centerairC/enSourceAnalysis/components/equipment.vue

@ -72,6 +72,7 @@
</el-date-picker> </el-date-picker>
</div> </div>
<el-select <el-select
style="margin: 0 10px"
multiple multiple
collapse-tags collapse-tags
class="elSelectDiv" class="elSelectDiv"
@ -86,7 +87,7 @@
:value="item.mtNum" :value="item.mtNum"
></el-option> ></el-option>
</el-select> </el-select>
<el-select <!-- <el-select
style="margin: 0 10px" style="margin: 0 10px"
v-model="systemType" v-model="systemType"
placeholder="请选择系统类型" placeholder="请选择系统类型"
@ -98,7 +99,7 @@
:label="dict.dictLabel" :label="dict.dictLabel"
:value="dict.dictValue" :value="dict.dictValue"
/> />
</el-select> </el-select> -->
<div class="success-btn"> <div class="success-btn">
<el-button type="success" @click="findData">查询</el-button> <el-button type="success" @click="findData">查询</el-button>
</div> </div>
@ -312,9 +313,20 @@ export default {
}; };
cpmList(data) cpmList(data)
.then((response) => { .then((response) => {
// system_type = 0 grade = 40
this.electTypes = response.rows.filter(
(item) => item.systemType === "0" && item.grade === 40
);
this.electType = []; this.electType = [];
this.electTypes = response.rows; if (this.electTypes.length > 3) {
this.electType = [this.electTypes[0].mtNum]; this.electType = [
this.electTypes[0].mtNum,
this.electTypes[1].mtNum,
this.electTypes[2].mtNum,
];
} else if (this.electTypes.length > 0) {
this.electType = [this.electTypes[0].mtNum];
}
console.log("this.electTypes", this.electTypes); console.log("this.electTypes", this.electTypes);
console.log("this.electType", this.electType); console.log("this.electType", this.electType);
this.handleSelectChange(); this.handleSelectChange();
@ -327,7 +339,10 @@ export default {
}, },
/** 初始化数据 */ /** 初始化数据 */
initData() { initData() {
Promise.all([this.getDictList(), this.getList()]) Promise.all([
// this.getDictList(),
this.getList(),
])
.then(() => { .then(() => {
this.getTableData(); this.getTableData();
this.getChartsData(); this.getChartsData();
@ -465,7 +480,7 @@ export default {
pageNum: this.pageParm.page, pageNum: this.pageParm.page,
pageSize: this.pageParm.pageSize, pageSize: this.pageParm.pageSize,
searchParams: this.selectElect, searchParams: this.selectElect,
systemType: this.systemType, systemType: "0",
}; };
console.log("查询数据参数", data); console.log("查询数据参数", data);
this.listLoading = true; this.listLoading = true;
@ -534,7 +549,7 @@ export default {
pageNum: 0, pageNum: 0,
pageSize: 10, pageSize: 10,
searchParams: this.selectElect, searchParams: this.selectElect,
systemType: this.systemType, systemType: "0",
}; };
console.log("查询数据参数", data); console.log("查询数据参数", data);
deviceAnalyze(data).then((res) => { deviceAnalyze(data).then((res) => {
@ -611,7 +626,7 @@ export default {
}, },
grid: { grid: {
top: "9%", top: "15%",
left: "3%", left: "3%",
right: "2%", right: "2%",
bottom: "25%", bottom: "25%",
@ -810,6 +825,12 @@ export default {
.main-content { .main-content {
min-height: 6.6rem; min-height: 6.6rem;
} }
.charts-table {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.elSelectDiv { .elSelectDiv {
margin-left: 15px; margin-left: 15px;
width: 250px; width: 250px;

11
src/views/centerairC/enSourceAnalysis/components/machineRoom.vue

@ -65,7 +65,7 @@
> >
</el-date-picker> </el-date-picker>
</div> </div>
<el-select <!-- <el-select
style="margin-left: 0.1rem" style="margin-left: 0.1rem"
v-model="systemType" v-model="systemType"
placeholder="请选择系统类型" placeholder="请选择系统类型"
@ -77,7 +77,7 @@
:label="dict.dictLabel" :label="dict.dictLabel"
:value="dict.dictValue" :value="dict.dictValue"
/> />
</el-select> </el-select> -->
<div class="success-btn" style="margin: 0 0.12rem"> <div class="success-btn" style="margin: 0 0.12rem">
<el-button type="success" @click="findData">查询</el-button> <el-button type="success" @click="findData">查询</el-button>
</div> </div>
@ -287,7 +287,8 @@ export default {
}, },
mounted() { mounted() {
this.initializeTimeDate(); this.initializeTimeDate();
this.getDictList(); // this.getDictList();
this.getTableData();
}, },
methods: { methods: {
/** 查询系统类型-字典数据列表 */ /** 查询系统类型-字典数据列表 */
@ -424,7 +425,7 @@ export default {
timeType: this.dateType, timeType: this.dateType,
startTime: this.startTime, startTime: this.startTime,
endTime: this.endTime, endTime: this.endTime,
systemType: this.systemType, systemType: "0",
}; };
console.log("查询数据参数", data); console.log("查询数据参数", data);
this.listLoading = true; this.listLoading = true;
@ -480,7 +481,7 @@ export default {
timeType: this.dateType, timeType: this.dateType,
startTime: this.startTime, startTime: this.startTime,
endTime: this.endTime, endTime: this.endTime,
systemType: this.systemType, systemType: "0",
}; };
console.log("导出数据参数", data); console.log("导出数据参数", data);
analyzeExport(data).then((res) => { analyzeExport(data).then((res) => {

581
src/views/centerairC/sysMonitor/monitorCenter.vue

@ -7,7 +7,7 @@
alt="" alt=""
/> />
<img <img
class="title-center" class="title-center"
@click="goSys" @click="goSys"
src="../../../assets/images/title-center.png" src="../../../assets/images/title-center.png"
alt="" alt=""
@ -652,6 +652,151 @@
</div> </div>
<!-- 供暖区 --> <!-- 供暖区 -->
<div class="hotClass">供暖区</div> <div class="hotClass">供暖区</div>
<!-- 采暖锅炉名称 -->
<div
class="steamHeatingBoiler1"
v-if="steamHeatingFire.length > 0 && steamHeatingFire[0].deviceName"
:title="`${steamHeatingFire[0].deviceName}详情`"
@click="goBoilerDetail(steamHeatingFire[0], false)"
>
{{ steamHeatingFire[0].deviceName }}
</div>
<div
class="steamHeatingBoiler2"
v-if="steamHeatingFire.length > 1 && steamHeatingFire[0].deviceName"
:title="`${steamHeatingFire[1].deviceName}详情`"
@click="goBoilerDetail(steamHeatingFire[1], false)"
>
{{ steamHeatingFire[1].deviceName }}
</div>
<!-- 采暖锅炉点击跳转 -->
<div
class="steamHeatingBoiler-main1"
v-if="steamHeatingFire.length > 0 && steamHeatingFire[0].deviceName"
:title="`${steamHeatingFire[0].deviceName}详情`"
@click="goBoilerDetail(steamHeatingFire[0], false)"
></div>
<div
class="steamHeatingBoiler-main2"
v-if="steamHeatingFire.length > 1 && steamHeatingFire[1].deviceName"
:title="`${steamHeatingFire[1].deviceName}详情`"
@click="goBoilerDetail(steamHeatingFire[1], false)"
></div>
<!-- 采暖锅炉运行状态 -->
<img
class="steamHeatingBoiler-img1"
src="../../../assets/images/fan-img.png"
alt=""
v-if="steamHeatingBoilerRunClass(1)"
:class="{ moveClass2: steamHeatingBoilerRunClass(1) }"
/>
<img
class="steamHeatingBoiler-img2"
src="../../../assets/images/fan-img.png"
alt=""
v-if="steamHeatingBoilerRunClass(2)"
:class="{ moveClass2: steamHeatingBoilerRunClass(2) }"
/>
<!-- 采暖泵名称 -->
<div
class="steamHeatingPump1"
v-if="
steamHeatingHzAndRun.length > 0 && steamHeatingHzAndRun[0].deviceName
"
:title="`${steamHeatingHzAndRun[0].deviceName}详情`"
@click="goPumpDetail(steamHeatingHzAndRun[0], false)"
>
1#
</div>
<div
class="steamHeatingPump2"
v-if="
steamHeatingHzAndRun.length > 1 && steamHeatingHzAndRun[0].deviceName
"
:title="`${steamHeatingHzAndRun[1].deviceName}详情`"
@click="goPumpDetail(steamHeatingHzAndRun[1], false)"
>
2#
</div>
<div
class="steamHeatingPump3"
v-if="
steamHeatingHzAndRun.length > 2 && steamHeatingHzAndRun[0].deviceName
"
:title="`${steamHeatingHzAndRun[2].deviceName}详情`"
@click="goPumpDetail(steamHeatingHzAndRun[2], false)"
>
3#
</div>
<!-- 采暖泵点击跳转 -->
<div
class="steamHeatingPump-main1"
v-if="
steamHeatingHzAndRun.length > 0 && steamHeatingHzAndRun[0].deviceName
"
:title="`${steamHeatingHzAndRun[0].deviceName}详情`"
@click="goPumpDetail(steamHeatingHzAndRun[0], false)"
></div>
<div
class="steamHeatingPump-main2"
v-if="
steamHeatingHzAndRun.length > 1 && steamHeatingHzAndRun[1].deviceName
"
:title="`${steamHeatingHzAndRun[1].deviceName}详情`"
@click="goPumpDetail(steamHeatingHzAndRun[1], false)"
></div>
<div
class="steamHeatingPump-main3"
v-if="
steamHeatingHzAndRun.length > 2 && steamHeatingHzAndRun[2].deviceName
"
:title="`${steamHeatingHzAndRun[2].deviceName}详情`"
@click="goPumpDetail(steamHeatingHzAndRun[2], false)"
></div>
<!-- 采暖泵运行状态 -->
<img
class="steamHeatingPump-img1"
src="../../../assets/images/fan-img.png"
alt=""
v-if="steamHeatingPumpRunClass(1)"
:class="{ moveClass2: steamHeatingPumpRunClass(1) }"
/>
<img
class="steamHeatingPump-img2"
src="../../../assets/images/fan-img.png"
alt=""
v-if="steamHeatingPumpRunClass(2)"
:class="{ moveClass2: steamHeatingPumpRunClass(2) }"
/>
<img
class="steamHeatingPump-img3"
src="../../../assets/images/fan-img.png"
alt=""
v-if="steamHeatingPumpRunClass(3)"
:class="{ moveClass2: steamHeatingPumpRunClass(3) }"
/>
<!-- 采暖泵频率反馈 -->
<div
class="steamHeatingPump-hz1"
v-if="steamHeatingPumpHz(1) && steamHeatingPumpRunClass(1)"
>
{{ steamHeatingPumpHz1 }}Hz
</div>
<div
class="steamHeatingPump-hz2"
v-if="steamHeatingPumpHz(2) && steamHeatingPumpRunClass(2)"
>
{{ steamHeatingPumpHz2 }}Hz
</div>
<div
class="steamHeatingPump-hz3"
v-if="steamHeatingPumpHz(3) && steamHeatingPumpRunClass(3)"
>
{{ steamHeatingPumpHz3 }}Hz
</div>
<!-- 热量计供回水温度 -->
<div class="steamHeatingInTem">{{ steamHeatingInTem }}</div>
<div class="steamHeatingOutTem">{{ steamHeatingOutTem }}</div>
<!-- 供冷区进水阀 --> <!-- 供冷区进水阀 -->
<div class="coolingOut-vavle"> <div class="coolingOut-vavle">
<div class="water-flow-li"> <div class="water-flow-li">
@ -975,6 +1120,15 @@ export default {
hotInletBuild: [], // hotInletBuild: [], //
hotOutletGuest: [], // hotOutletGuest: [], //
hotInletGuest: [], // hotInletGuest: [], //
//
steamHeatingPumpHz1: "",
steamHeatingPumpHz2: "",
steamHeatingPumpHz3: "",
steamHeatingHzAndRun: [], //
steamHeatingFire: [], //
steamHeatingTem: [], //
steamHeatingInTem: "", //
steamHeatingOutTem: "", //
freezingManifold: [], // freezingManifold: [], //
isShowOn: false, //,falseOff,trueOn isShowOn: false, //,falseOff,trueOn
oneKeyButtonId: "", oneKeyButtonId: "",
@ -1071,6 +1225,7 @@ export default {
this.getPerformance(); this.getPerformance();
this.getOneKeyButton(); this.getOneKeyButton();
this.getMonitorList(); this.getMonitorList();
this.getSteamHeatingData();
this.getAlarnStatus(); this.getAlarnStatus();
this.getDayData(); this.getDayData();
@ -1081,6 +1236,7 @@ export default {
this.getPerformance(); this.getPerformance();
this.getOneKeyButton(); this.getOneKeyButton();
this.getMonitorList(); this.getMonitorList();
this.getSteamHeatingData();
this.getAlarnStatus(); this.getAlarnStatus();
this.getDayData(); this.getDayData();
}, 10000); }, 10000);
@ -1455,6 +1611,54 @@ export default {
} }
}); });
}, },
//
getSteamHeatingData() {
monitorList({ systemType: 3 }).then((res) => {
if (res.code === 200) {
console.log("设备监测列表返回", res);
//
this.steamHeatingHzAndRun = []; //
this.steamHeatingFire = []; //
this.steamHeatingTem = []; //
res.rows.forEach((row) => {
switch (row.name) {
case "11":
this.steamHeatingHzAndRun = this.processDeviceList(row.values);
console.log(
"裙蒸汽锅炉频率和运行状态",
this.steamHeatingHzAndRun
);
break;
case "25":
this.steamHeatingFire = this.processDeviceList(row.values);
console.log("裙蒸汽锅炉火力", this.steamHeatingFire);
break;
case "6":
this.steamHeatingTem = row.values;
console.log("裙蒸汽锅炉热量计供回水温度", this.steamHeatingTem);
this.steamHeatingTem.forEach((element) => {
if (
element.collectName.includes("回水温度") &&
element.paramType == "12"
) {
this.steamHeatingInTem = element.collectValue;
}
if (
element.collectName.includes("供水温度") &&
element.paramType == "12"
) {
this.steamHeatingOutTem = element.collectValue;
}
});
break;
default:
break;
}
});
}
});
},
// //
processDeviceList(values) { processDeviceList(values) {
const deviceList = []; const deviceList = [];
@ -2338,6 +2542,163 @@ export default {
const targetItem = arr.find((item) => item.paramType === targetType); const targetItem = arr.find((item) => item.paramType === targetType);
return targetItem ? targetItem.collectValue : 0; return targetItem ? targetItem.collectValue : 0;
}, },
//
steamHeatingPumpRunClass(index) {
// this.steamHeatingHzAndRun deviceName index
let targetDevice = null;
for (let i = 0; i < this.steamHeatingHzAndRun.length; i++) {
const device = this.steamHeatingHzAndRun[i];
const indexStr = index.toString();
const deviceName = device.deviceName.toString();
for (let j = 0; j < indexStr.length; j++) {
if (deviceName.includes(indexStr[j])) {
targetDevice = device;
break;
}
}
if (targetDevice) {
break;
}
}
// false
if (!targetDevice) {
return false;
}
// properties
const properties = targetDevice.properties;
// properties
if (!properties || properties.length === 0) {
return false;
}
// properties paramType === 1item.collectValue !== "0.00"便
for (let i = 0; i < properties.length; i++) {
const item = properties[i];
if (item.paramType === "1" && Number(item.collectValue) == !0) {
return true;
}
}
//
return false;
},
//
steamHeatingPumpHz(index) {
// this.steamHeatingHzAndRun deviceName index
let targetDevice = null;
for (let i = 0; i < this.steamHeatingHzAndRun.length; i++) {
const device = this.steamHeatingHzAndRun[i];
const indexStr = index.toString();
const deviceName = device.deviceName.toString();
for (let j = 0; j < indexStr.length; j++) {
if (deviceName.includes(indexStr[j])) {
targetDevice = device;
break;
}
}
if (targetDevice) {
break;
}
}
// false
if (!targetDevice) {
return false;
}
// properties
const properties = targetDevice.properties;
// properties
if (!properties || properties.length === 0) {
return false;
}
// properties paramType === 4
for (let i = 0; i < properties.length; i++) {
const item = properties[i];
if (item.paramType === "4") {
//
const propertyName = `steamHeatingPumpHz${index}`;
// 使
this[propertyName] = item.collectValue;
// this.steamHeatingPumpHz[index] = item.collectValue;
return true;
}
}
//
return false;
},
//
steamHeatingBoilerRunClass(index) {
// this.steamHeatingFire deviceName index
let targetDevice = null;
for (let i = 0; i < this.steamHeatingFire.length; i++) {
const device = this.steamHeatingFire[i];
const indexStr = index.toString();
const deviceName = device.deviceName.toString();
for (let j = 0; j < indexStr.length; j++) {
if (deviceName.includes(indexStr[j])) {
targetDevice = device;
break;
}
}
if (targetDevice) {
break;
}
}
// false
if (!targetDevice) {
return false;
}
// properties
const properties = targetDevice.properties;
// properties
if (!properties || properties.length === 0) {
return false;
}
// console.log("111", properties);
// properties paramType === 45item.collectValue !== "0.00"便
for (let i = 0; i < properties.length; i++) {
const item = properties[i];
if (
item.paramType === "45" &&
item.collectName.includes("火力") &&
Number(item.collectValue) !== 0
) {
return true;
}
}
//
return false;
},
//
getTemperature(values, targetName) {
// console.log("valuestargetName", values, targetName);
const targetItem = values.find((item) =>
item.collectName.includes(targetName)
);
// console.log("targetItem", targetItem.collectValue);
return targetItem ? targetItem.collectValue : "";
},
//
goBoilerDetail(item, val) {
// console.log("item", item);
// let hostId = item.properties[0].deviceLedgerId;
this.$router.push({
path: "/hotWaterBoilerDetails",
// query: {
// hostId: hostId,
// hostName: item.deviceName,
// isMagnetic: val,
// },
});
},
//
goPumpDetail() {
this.$router.push({
path: "/heatingPumpDetails",
});
},
// //
getAlarnStatus() { getAlarnStatus() {
let data = { let data = {
@ -2936,15 +3297,15 @@ export default {
z-index: 10; z-index: 10;
position: absolute; position: absolute;
top: 4.2rem; top: 4.2rem;
right: 5rem; right: 5.05rem;
font-size: 0.16rem; font-size: 0.16rem;
font-weight: bold; font-weight: bold;
} }
.freezingOutWater { .freezingOutWater {
z-index: 10; z-index: 10;
position: absolute; position: absolute;
top: 5.4rem; top: 5.43rem;
right: 4.9rem; right: 5.1rem;
font-size: 0.16rem; font-size: 0.16rem;
font-weight: bold; font-weight: bold;
} }
@ -3985,8 +4346,8 @@ export default {
.hotClass { .hotClass {
z-index: 10; z-index: 10;
position: absolute; position: absolute;
top: 4.3rem; top: 4.15rem;
right: 3.7rem; right: 3.5rem;
font-size: 0.16rem; font-size: 0.16rem;
color: #00ffff; color: #00ffff;
font-weight: bold; font-weight: bold;
@ -4053,6 +4414,214 @@ export default {
color: #ffffff; color: #ffffff;
margin-left: 0.1rem; margin-left: 0.1rem;
} }
.steamHeatingBoiler1 {
border-bottom: 1px solid rgba(0, 255, 255, 1);
z-index: 10;
font-size: 0.2rem;
font-weight: bold;
color: aqua;
position: absolute;
cursor: pointer;
top: 4.9rem;
left: 9.4rem;
transform: rotateX(50deg) rotateY(0deg) rotateZ(30deg); /* 分别在 X、Y、Z 轴上旋转 */
transform-origin: bottom center; /* 设置旋转的基点为底部中心 */
text-shadow: 0.02rem 0.02rem 0.04rem rgba(0, 0, 0, 0.9); /* 添加文字阴影增强立体感 */
}
.steamHeatingBoiler2 {
border-bottom: 1px solid rgba(0, 255, 255, 1);
z-index: 10;
font-size: 0.2rem;
font-weight: bold;
color: aqua;
position: absolute;
cursor: pointer;
top: 5.45rem;
left: 10.9rem;
transform: rotateX(50deg) rotateY(0deg) rotateZ(30deg); /* 分别在 X、Y、Z 轴上旋转 */
transform-origin: bottom center; /* 设置旋转的基点为底部中心 */
text-shadow: 0.02rem 0.02rem 0.04rem rgba(0, 0, 0, 0.9); /* 添加文字阴影增强立体感 */
}
.steamHeatingBoiler-main1 {
z-index: 100;
position: absolute;
top: 4.5rem;
left: 10.25rem;
width: 0.6rem;
height: 0.6rem;
// background-color: #007bff;
cursor: pointer;
opacity: 0.4;
transform-style: preserve-3d;
}
.steamHeatingBoiler-main2 {
z-index: 100;
position: absolute;
top: 5rem;
left: 11.6rem;
width: 0.6rem;
height: 0.6rem;
// background-color: #007bff;
cursor: pointer;
opacity: 0.4;
transform-style: preserve-3d;
}
.steamHeatingBoiler-img1 {
z-index: 10;
position: absolute;
top: 4.42rem;
left: 10.6rem;
width: 0.35rem;
height: 0.35rem;
transform-style: preserve-3d;
transform: translateX(-50%) rotateX(60deg) rotateZ(0deg);
}
.steamHeatingBoiler-img2 {
z-index: 10;
position: absolute;
top: 4.88rem;
left: 11.94rem;
width: 0.35rem;
height: 0.35rem;
transform-style: preserve-3d;
transform: translateX(-50%) rotateX(60deg) rotateZ(0deg);
}
.steamHeatingPump1 {
cursor: pointer;
z-index: 10;
font-size: 0.15rem;
font-weight: bold;
color: #46f1e3;
position: absolute;
top: 4.67rem;
left: 11.3rem;
}
.steamHeatingPump2 {
cursor: pointer;
z-index: 10;
font-size: 0.15rem;
font-weight: bold;
color: #46f1e3;
position: absolute;
top: 4.8rem;
left: 11.78rem;
}
.steamHeatingPump3 {
cursor: pointer;
z-index: 10;
font-size: 0.15rem;
font-weight: bold;
color: #46f1e3;
position: absolute;
top: 4.95rem;
left: 12.3rem;
}
.steamHeatingPump-main1 {
z-index: 100;
position: absolute;
top: 4.3rem;
left: 11.25rem;
width: 0.3rem;
height: 0.55rem;
// background-color: #007bff;
cursor: pointer;
opacity: 0.4;
transform-style: preserve-3d;
}
.steamHeatingPump-main2 {
z-index: 100;
position: absolute;
top: 4.39rem;
left: 11.75rem;
width: 0.3rem;
height: 0.55rem;
// background-color: #007bff;
cursor: pointer;
opacity: 0.4;
transform-style: preserve-3d;
}
.steamHeatingPump-main3 {
z-index: 100;
position: absolute;
top: 4.5rem;
left: 12.25rem;
width: 0.3rem;
height: 0.55rem;
// background-color: #007bff;
cursor: pointer;
opacity: 0.4;
transform-style: preserve-3d;
}
.steamHeatingPump-img1 {
z-index: 10;
position: absolute;
top: 4.23rem;
left: 11.4rem;
width: 0.35rem;
height: 0.35rem;
transform-style: preserve-3d;
transform: translateX(-50%) rotateX(60deg) rotateZ(0deg);
}
.steamHeatingPump-img2 {
z-index: 10;
position: absolute;
top: 4.4rem;
left: 11.9rem;
width: 0.35rem;
height: 0.35rem;
transform-style: preserve-3d;
transform: translateX(-50%) rotateX(60deg) rotateZ(0deg);
}
.steamHeatingPump-img3 {
z-index: 10;
position: absolute;
top: 4.55rem;
left: 12.4rem;
width: 0.35rem;
height: 0.35rem;
transform-style: preserve-3d;
transform: translateX(-50%) rotateX(60deg) rotateZ(0deg);
}
.steamHeatingPump-hz1 {
z-index: 10;
position: absolute;
top: 4.18rem;
left: 11.05rem;
font-size: 0.16rem;
font-weight: bold;
}
.steamHeatingPump-hz2 {
z-index: 10;
position: absolute;
top: 4.35rem;
left: 11.62rem;
font-size: 0.16rem;
font-weight: bold;
}
.steamHeatingPump-hz3 {
z-index: 10;
position: absolute;
top: 4.5rem;
left: 12.15rem;
font-size: 0.16rem;
font-weight: bold;
}
.steamHeatingInTem {
z-index: 10;
position: absolute;
top: 4.87rem;
right: 2.35rem;
font-size: 0.16rem;
font-weight: bold;
}
.steamHeatingOutTem {
z-index: 10;
position: absolute;
top: 4.7rem;
right: 2.95rem;
font-size: 0.16rem;
font-weight: bold;
}
} }
// @media (min-width: 1240px) and (max-width: 1440px) { // @media (min-width: 1240px) and (max-width: 1440px) {
// } // }

83
src/views/components/hotWater.vue

@ -1,28 +1,23 @@
<template> <template>
<div class="card-div"> <div class="card-div">
<div class="card-li room-temp"> <div
class="card-li room-temp"
v-for="(item, index) in temData"
:key="index"
>
<div class="card-header"> <div class="card-header">
<h2 class="card-title">回水平均温度</h2> <h2 class="card-title">{{ item.name }}</h2>
<div class="icon"> <div class="icon">
<i class="fas fa-home"></i> <i class="fas fa-home"></i>
</div> </div>
</div> </div>
<div class="thermometer"> <div class="thermometer">
<div class="temprogress" :style="{ height: temData1 * 2 + '%' }"></div> <div
class="temprogress"
:style="{ height: item.value * 2 + '%' }"
></div>
</div> </div>
<div class="temperature">{{temData1}}</div> <div class="temperature">{{ item.value }}</div>
</div>
<div class="card-li amb-temp">
<div class="card-header">
<h2 class="card-title">供水平均温度</h2>
<div class="icon">
<i class="fas fa-home"></i>
</div>
</div>
<div class="thermometer">
<div class="temprogress" :style="{ height: temData2 * 2 + '%' }"></div>
</div>
<div class="temperature">{{temData2}}</div>
</div> </div>
</div> </div>
</template> </template>
@ -39,18 +34,20 @@ export default {
return { return {
temData1: "", temData1: "",
temData2: "", temData2: "",
temData: [],
}; };
}, },
watch: { watch: {
subData: { subData: {
immediate: true, // immediate: true, //
handler(newVal) { handler(newVal) {
console.log("检测到传功来的数据", this.subData); console.log("检测到传过来的温度数据", this.subData);
if (Object.keys(newVal).length > 0) { if (Object.keys(newVal).length > 0) {
console.log("newval", newVal); console.log("newval", newVal);
let data = newVal; let data = newVal;
this.temData1 = ""; this.temData1 = "";
this.temData2 = ""; this.temData2 = "";
this.temData = newVal;
data.forEach((item) => { data.forEach((item) => {
if (item.name.includes("回水")) { if (item.name.includes("回水")) {
this.temData1 = parseInt(item.value); this.temData1 = parseInt(item.value);
@ -71,11 +68,12 @@ export default {
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
flex-wrap: wrap;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin: 0.1rem 0;
.card-li { .card-li {
width: 50%; width: 50%;
padding: 0.2rem 0;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
@ -83,7 +81,6 @@ export default {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-bottom: 0.1rem;
.card-title { .card-title {
font-size: 15px; font-size: 15px;
font-weight: 600; font-weight: 600;
@ -97,11 +94,11 @@ export default {
display: inline-block; display: inline-block;
} }
.thermometer { .thermometer {
height: 180px; height: 100px;
width: 40px; width: 25px;
background: #3d5581; background: #3d5581;
border-radius: 20px; border-radius: 20px;
margin: 0 auto 0.25rem; margin: 0 auto 0.1rem;
overflow: hidden; overflow: hidden;
box-shadow: inset 0 0 1rem rgba(0, 0, 0, 0.1); box-shadow: inset 0 0 1rem rgba(0, 0, 0, 0.1);
position: relative; position: relative;
@ -111,32 +108,36 @@ export default {
bottom: 0; bottom: 0;
width: 100%; width: 100%;
border-top-left-radius: 20px; border-top-left-radius: 20px;
border-top-right-radius:20px; border-top-right-radius: 20px;
background: linear-gradient(to top, #3498db, #2ecc71) !important; background: linear-gradient(to top, #3498db, #2ecc71) !important;
} }
} }
.card-li:nth-child(1),
.card-li:nth-child(2) {
padding-bottom: 15px;
}
} }
@media (min-width: 2000px) { @media (min-width: 2000px) {
.card-div { .card-div {
.card-li { .card-li {
.card-header { .card-header {
.card-title { .card-title {
font-size: 0.15rem !important; font-size: 0.15rem !important;
}
}
.temperature {
font-size: 0.2rem !important;
}
.thermometer {
height: 1.8rem !important;
width: 0.4rem !important;
border-radius: 0.2rem !important;
}
.temprogress {
border-top-left-radius: 0.2rem !important;
border-top-right-radius: 0.2rem !important;
} }
}
.temperature {
font-size: 0.2rem !important;
}
.thermometer {
height: 1.8rem !important;
width: 0.4rem !important;
border-radius: 0.2rem !important;
}
.temprogress {
border-top-left-radius: 0.2rem !important;
border-top-right-radius:0.2rem !important;
} }
} }
} }
}
</style> </style>

3
src/views/components/viewEnergy.vue

@ -291,6 +291,9 @@ export default {
.right-table { .right-table {
padding: 27px 15px 35px 15px; padding: 27px 15px 35px 15px;
} }
.choice {
margin-left: 0 !important;
}
.mr20 { .mr20 {
width: 92px; width: 92px;
padding: 2px; padding: 2px;

Loading…
Cancel
Save