Merge remote-tracking branch 'origin/master'

master
魔神煜修罗皇 2 years ago
commit 63dd6e5fe6
  1. 6
      psdc-ui/src/api/bigview/bigview.js
  2. BIN
      psdc-ui/src/assets/images/3Dimg.png
  3. 0
      psdc-ui/src/assets/images/dcgl.png
  4. BIN
      psdc-ui/src/assets/images/footer.png
  5. 230
      psdc-ui/src/views/bigview/index.vue
  6. 296
      psdc-ui/src/views/control/manual/index.vue
  7. 4
      psdc-ui/src/views/emonitor/db/index.vue
  8. 53
      psdc-ui/src/views/emonitor/drgl/index.vue
  9. 6
      psdc-ui/src/views/emonitor/frdl/index.vue
  10. 6
      psdc-ui/src/views/emonitor/kqyrb/index.vue
  11. 5
      psdc-ui/src/views/emonitor/wdcgq/index.vue
  12. 6
      psdc-ui/src/views/emonitor/xrgl/index.vue
  13. 31
      psdc-ui/src/views/login.vue
  14. 2
      psdc-ui/vite.config.js

@ -0,0 +1,6 @@
import request from '@/utils/request'
//8个温度传感器接口
export function getTemperature() {
return request.get('/indexLook/8wd')
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 697 KiB

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

@ -10,9 +10,14 @@
<div class="title">电磁锅炉</div>
<div class="info_box">
<div class="dev_img">
<img src="../../assets/images/电磁锅炉.png" alt="">
<img src="../../assets/images/dcgl.png" alt="">
</div>
<div class="dev_data">
<p>当前状态<span class="now_tatus">开启</span></p>
<p>进水温度<span class="enter_t"><span>25</span></span></p>
<p>出水温度<span class="leave_t"><span>85</span></span></p>
<p>今日能耗<span class="today_tce"><span>23</span>kWh</span></p>
</div>
<div class="dev_data"></div>
</div>
<div class="chart_box">
<div class="dev_chart"></div>
@ -24,7 +29,12 @@
<div class="dev_img">
<img src="../../assets/images/蓄热锅炉.png" alt="">
</div>
<div class="dev_data"></div>
<div class="dev_data">
<p>当前状态<span class="now_tatus">开启</span></p>
<p>进水温度<span class="enter_t"><span>25</span></span></p>
<p>出水温度<span class="leave_t"><span>85</span></span></p>
<p>今日能耗<span class="today_tce"><span>23</span>kWh</span></p>
</div>
</div>
<div class="chart_box">
<div class="dev_chart"></div>
@ -33,21 +43,66 @@
</div>
<div class="middle">
<div class="middle_top">
<div class="important_data"></div>
<div class="my3D_img"></div>
<div class="important_data"></div>
<div class="now_power">
<div class="data">35kW</div>
<div class="bg_img"></div>
<div class="txt">当前功率</div>
</div>
<div class="my3D_img">
<img src="../../assets/images/3Dimg.png" alt="">
</div>
<div class="now_ele">
<div class="data">16446kWh</div>
<div class="bg_img"></div>
<div class="txt">总用电量</div>
</div>
</div>
<div class="middle_bottom">
<div class="chart_box bgimg"></div>
<div class="chart_box bgimg">
<div class="title">当前功率</div>
<div class="nowPower_chart"></div>
</div>
<div class="wendu_box">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item">
<div class="dev_name">温度传感器1</div>
<div class="line"></div>
<div class="data">26</div>
</div>
<div class="item">
<div class="dev_name">温度传感器2</div>
<div class="line"></div>
<div class="data">26</div>
</div>
<div class="item">
<div class="dev_name">温度传感器3</div>
<div class="line"></div>
<div class="data">26</div>
</div>
<div class="item">
<div class="dev_name">温度传感器4</div>
<div class="line"></div>
<div class="data">26</div>
</div>
<div class="item">
<div class="dev_name">温度传感器5</div>
<div class="line"></div>
<div class="data">26</div>
</div>
<div class="item">
<div class="dev_name">温度传感器6</div>
<div class="line"></div>
<div class="data">26</div>
</div>
<div class="item">
<div class="dev_name">温度传感器7</div>
<div class="line"></div>
<div class="data">26</div>
</div>
<div class="item">
<div class="dev_name">温度传感器8</div>
<div class="line"></div>
<div class="data">26</div>
</div>
</div>
</div>
</div>
@ -58,7 +113,12 @@
<div class="dev_img">
<img src="../../assets/images/空气源热泵.png" alt="">
</div>
<div class="dev_data"></div>
<div class="dev_data">
<p>当前状态<span class="now_tatus">开启</span></p>
<p>进水温度<span class="enter_t"><span>25</span></span></p>
<p>出水温度<span class="leave_t"><span>85</span></span></p>
<p>今日能耗<span class="today_tce"><span>23</span>kWh</span></p>
</div>
</div>
<div class="chart_box">
<div class="dev_chart"></div>
@ -70,7 +130,11 @@
<div class="dev_img">
<img src="../../assets/images/发热电缆.png" alt="">
</div>
<div class="dev_data"></div>
<div class="dev_data">
<p>当前状态<span class="now_tatus">开启</span></p>
<p>当前温度<span class="now_t"><span>25</span></span></p>
<p>今日能耗<span class="today_tce"><span>23</span>kWh</span></p>
</div>
</div>
<div class="chart_box">
<div class="dev_chart"></div>
@ -82,6 +146,17 @@
</template>
<script setup name="Index">
// import {ref,reactive} from 'vue'
import {getTemperature} from '../../api/bigview/bigview'
// getWendu();
// const wendi1 = ref(0)
// function getWendu(){
// getTemperature().then((res)=>{
// console.log(res.data.data)
// })
// }
@ -141,32 +216,93 @@
width: 50.5%;
height: 100%;
.middle_top{
position: relative;
display: flex;
justify-content: space-between;
flex-wrap: nowrap;
flex: 2;
width: 100%;
height: 67%;
padding-bottom: 20px;
.important_data{
width: 14%;
height: 100%;
border: 1px solid #fff;
.now_power{
position: absolute;
bottom: 20px;
left: 20px;
width: 112px;
height: 110px;
.data{
color: #F5901A;
font-size: 24px;
font-weight: bold;
text-align: center;
}
.bg_img{
width: 112px;
height: 62px;
background-image: url("../../assets/images/footer.png");
background-size: 100% 100%;
margin-top: -10px;
}
.txt{
color: #1AC4F5;
font-size: 15px;
font-weight: bold;
line-height: 30px;
text-align: center;
}
}
.now_ele{
position: absolute;
bottom: 20px;
right: 20px;
width: 112px;
height: 110px;
.data{
color: #128DFF;
font-size: 24px;
font-weight: bold;
text-align: center;
}
.bg_img{
width: 112px;
height: 62px;
background-image: url("../../assets/images/footer.png");
background-size: 100% 100%;
margin-top: -10px;
}
.txt{
color: #1AC4F5;
font-size: 15px;
font-weight: bold;
line-height: 30px;
text-align: center;
}
}
.my3D_img{
width: 72%;
width: 100%;
height: 100%;
border: 1px solid #fff;
padding: 20px 60px 0 60px;
img{
width: 100%;
height: 100%;
opacity: .85;
}
}
}
.middle_bottom{
display: flex;
justify-content: space-between;
flex-wrap: nowrap;
flex: 1;
height: 33%;
width: 100%;
.chart_box{
width: 49.5%;
height: 100%;
.nowPower_chart{
width: 100%;
height: 81%;
border: 1px solid #fff;
}
}
.wendu_box{
display: flex;
@ -177,10 +313,30 @@
.item{
width: 24%;
height: 48.5%;
background-color: #1ab394;
padding: 0 10px;
border: 1px solid #1085B6;
&:first-child{
margin-bottom: 8px;
}
.dev_name{
color: #19C3F4;
font-size: 14px;
text-align: center;
line-height: 50px;
}
.line{
width: 100%;
height: 1px;
background-image: url("../../assets/images/line.png");
background-size: 100% 100%;
}
.data{
color: #F5901A;
font-size: 26px;
font-weight: bold;
line-height: 80px;
text-align: center;
}
}
}
}
@ -222,7 +378,7 @@
.dev_img{
width: 50%;
height: 100%;
border: 1px solid #fff;
//border: 1px solid #fff;
img{
width: 100%;
height: 100%;
@ -231,7 +387,27 @@
.dev_data{
width: 50%;
height: 100%;
border: 1px solid #fff;
//border: 1px solid #fff;
margin-left: 10px;
p{
font-size: 16px;
line-height: 40px;
}
.now_tatus{
color: #14FF00;
}
.enter_t{
color: #F5901A;
}
.leave_t{
color: #F5901A;
}
.today_tce{
color: #128DFF;
}
.now_t{
color: #F5901A;
}
}
}
.chart_box{

@ -1,16 +1,310 @@
<template>
<div class="app-container home">
<h1>手动控制</h1>
<el-button type="primary" :icon="Download">策略导入</el-button>
<div class="dev_control_wrapper">
<div class="dev_control_item">
<div class="item_header">
<span>电热锅炉</span>
<el-switch v-model="value1" class="switch" style="--el-switch-on-color: #13ce66; --el-switch-off-color: #dddddd"/>
</div>
<div class="item_bottom">
<div class="item_bottom_img">
<img src="./src/assets/images/dcgl.png" alt="">
</div>
<div class="item_bottom_form">
<el-form :model="form1">
<el-form-item label="当前状态:"><span class="green">开启</span></el-form-item>
<el-form-item label="进水温度:"><el-input v-model="form1.enter" /></el-form-item>
<el-form-item label="出水温度:"><el-input v-model="form1.leave" /></el-form-item>
<div class="submit" @click="onSubmit1">确定</div>
</el-form>
</div>
</div>
</div>
<div class="dev_control_item">
<div class="item_header">
<span>空气源热泵</span>
<el-switch v-model="value2" class="switch" style="--el-switch-on-color: #13ce66; --el-switch-off-color: #dddddd"/>
</div>
<div class="item_bottom">
<div class="item_bottom_img">
<img src="./src/assets/images/空气源热泵.png" alt="">
</div>
<div class="item_bottom_form">
<el-form :model="form2">
<el-form-item label="当前状态:"><span class="red">关闭</span></el-form-item>
<el-form-item label="进水温度:"><el-input v-model="form2.enter" /></el-form-item>
<el-form-item label="出水温度:"><el-input v-model="form2.leave" /></el-form-item>
<div class="submit" @click="onSubmit2">确定</div>
</el-form>
</div>
</div>
</div>
<div class="dev_control_item">
<div class="item_header">
<span>发热电缆</span>
<el-switch v-model="value3" class="switch" style="--el-switch-on-color: #13ce66; --el-switch-off-color: #dddddd"/>
</div>
<div class="item_bottom">
<div class="item_bottom_img">
<img src="./src/assets/images/发热电缆.png" alt="">
</div>
<div class="item_bottom_form">
<el-form :model="form3">
<el-form-item label="当前状态:"><span class="red">关闭</span></el-form-item>
<el-form-item label="当前温度:"><el-input v-model="form3.now" /></el-form-item>
<div class="submit" @click="onSubmit3">确定</div>
</el-form>
</div>
</div>
</div>
<div class="dev_control_item">
<div class="item_header">
<span>风机盘管</span>
<el-switch v-model="value4" class="switch" style="--el-switch-on-color: #13ce66; --el-switch-off-color: #dddddd"/>
</div>
<div class="item_bottom">
<div class="item_bottom_img">
<img src="./src/assets/images/风机盘管.png" alt="">
</div>
<div class="item_bottom_form">
<el-form>
<el-form-item label="当前状态:"><span class="red">关闭</span></el-form-item>
</el-form>
</div>
</div>
</div>
<div class="dev_control_item">
<div class="item_header">
<span>水泵</span>
<el-switch v-model="value5" class="switch" style="--el-switch-on-color: #13ce66; --el-switch-off-color: #dddddd"/>
</div>
<div class="item_bottom">
<div class="item_bottom_img">
<img src="./src/assets/images/水泵.png" alt="">
</div>
<div class="item_bottom_form">
<el-form>
<el-form-item label="当前状态:"><span class="red">关闭</span></el-form-item>
</el-form>
</div>
</div>
</div>
<div class="dev_control_item">
<div class="item_header">
<span>蓄热锅炉</span>
<el-switch v-model="value6" class="switch" style="--el-switch-on-color: #13ce66; --el-switch-off-color: #dddddd"/>
</div>
<div class="item_bottom">
<div class="item_bottom_img">
<img src="./src/assets/images/蓄热锅炉.png" alt="">
</div>
<div class="item_bottom_form">
<el-form>
<el-form-item label="当前状态:"><span class="red">关闭</span></el-form-item>
</el-form>
</div>
</div>
</div>
<div class="dev_control_item">
<div class="item_header">
<span>沙盘</span>
<el-switch v-model="value7" class="switch" style="--el-switch-on-color: #13ce66; --el-switch-off-color: #dddddd"/>
</div>
<div class="item_bottom">
<div class="item_bottom_img">
<img src="./src/assets/images/沙盘.png" alt="">
</div>
<div class="item_bottom_form">
<el-form>
<el-form-item label="当前状态:"><span class="red">关闭</span></el-form-item>
</el-form>
</div>
</div>
</div>
</div>
<div class="dev_control_table">
<div class="control_header"><span>调控日志</span></div>
<div class="control_table">
<el-table v-loading="loading" :data="controlList" @selection-change="handleSelectionChange">
<el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
<el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
<el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[3].visible" width="120" />
<el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
<template #default="scope">
<el-switch
v-model="scope.row.status"
active-value="0"
inactive-value="1"
@change="handleStatusChange(scope.row)"
></el-switch>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[4].visible" width="160">
<template #default="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
</template>
<script setup name="Index">
import { Share,Download } from '@element-plus/icons-vue' //element
import { ref,reactive } from 'vue'
const value1 = ref(true)
const value2 = ref(false)
const value3 = ref(false)
const value4 = ref(false)
const value5 = ref(false)
const value6 = ref(false)
const value7 = ref(false)
const form1 = reactive({
enter:'',
leave:'',
})
const form2 = reactive({
enter:'',
leave:'',
})
const form3 = reactive({
now:'',
})
const onSubmit1 = () => {
console.log('确定')
}
const onSubmit2 = () => {
console.log('确定')
}
const onSubmit3 = () => {
console.log('确定')
}
</script>
<style scoped lang="scss">
.home {
height: calc(100vh - 118px);
.dev_control_wrapper{
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
width: 100%;
height: 50%;
overflow-y: auto;
.dev_control_item{
width: 24.46%;
height: 47%;
margin-right: 12px;
margin-bottom: 12px;
background-color: #2F3D8A;
overflow: hidden;
&:nth-child(4n){
margin-right: 0px;
}
.item_header{
width: 100%;
height: 20%;
background-color: #374590;
padding: 0 10px;
span{
font-size: 16px;
font-weight: bold;
line-height: 37px;
}
.switch{
float: right;
line-height: 37px;
height: 37px;
}
}
.item_bottom{
display: flex;
width: 100%;
height: 80%;
.item_bottom_img{
width: 40%;
height: 100%;
//border: 1px solid red;
padding: 10px;
img{
width: 100%;
height: 100%;
}
}
.item_bottom_form{
width: 60%;
height: 100%;
//border: 1px solid red;
padding: 0 10px 0 0;
.green{
color: #00ff07;
}
.red{
color: #ff0000;
}
.submit{
padding: 3px 15px;
border-radius: 2px;
background-color: #2F8EED;
float: right;
margin-top: 8px;
cursor: pointer;
&:hover{
background-color: #5ba2f3;
}
}
}
}
}
}
.dev_control_table{
width: 100%;
height: 50%;
background-color: #2F3D8A;
.control_header{
width: 100%;
height: 10%;
background-color: #374590;
padding: 0 10px;
span{
font-size: 16px;
font-weight: bold;
line-height: 37px;
}
}
.control_table{
width: 100%;
height: 90%;
border: 1px solid red;
}
}
}
::v-deep .el-button{
border-radius: 2px;
margin-bottom: 12px;
}
::v-deep .el-switch__core .el-switch__action{
top: 1px;
width: 17px;
height: 17px;
}
::v-deep .el-form-item--default{
margin-bottom: 3px;
}
::v-deep .el-input__inner{
color: #f3ffff;
}
</style>

@ -88,8 +88,8 @@ p{
.mid{
width: 100%;
height: 350px;
margin-top: 15px;
margin-bottom: 15px;
margin-top: 20px;
margin-bottom: 20px;
display: flex;
justify-content: space-between;
}

@ -42,7 +42,7 @@
<div class="bottom1-1">
日用电量
</div>
<div>
<div id="myEcharts" style="width: 100%; height: 86.7%">
pic
</div>
</div>
@ -74,8 +74,47 @@
</div>
</template>
<script setup name="Index">
<script name="Index">
import { onMounted } from "vue";
import * as echarts from 'echarts';
export default {
name: "drgl",
setup() {
onMounted(() => {//element,onMountedHook
let myChart = echarts.init(document.getElementById("myEcharts"));
//
myChart.setOption({
title: {},
tooltip: {},
xAxis: {
data: ["12-3", "12-4", "12-5", "12-6", "12-7", "12-8"],
},
yAxis: {
nameTextStyle: {
color: 'white'
},
show: true,
type: 'value',
axisLine: {
show: true,
}
},
series: [
{
name: "用户量",
type: "bar",
data: [5, 20, 36, 10, 10, 20],
},
],
});
window.onresize = function () {//
myChart.resize();
};
});
},
components: {},
mounted() {},
};
</script>
@ -87,7 +126,7 @@
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-bottom: 15px;
margin-bottom: 20px;
}
.card{
width: 24%;
@ -100,7 +139,7 @@
.bottom{
width: 100%;
height: 615px;
height: 640px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
@ -109,14 +148,14 @@
width: 49.35%;
height: 300px;
background-color: #2F3D8A;
margin-bottom: 15px;
margin-bottom: 20px;
}
p{
margin-bottom: 10px;
}
.bottom1-1{
width: 100%;
height: 40px;
height: 13.3%;
background-color: #374590;
padding-top: 10px;
padding-left: 10px;

@ -83,7 +83,7 @@
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-bottom: 15px;
margin-bottom: 20px;
}
.card{
width: 24%;
@ -96,7 +96,7 @@
.bottom{
width: 100%;
height: 615px;
height: 640px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
@ -105,7 +105,7 @@
width: 49.35%;
height: 300px;
background-color: #2F3D8A;
margin-bottom: 15px;
margin-bottom: 20px;
}
p{
margin-bottom: 10px;

@ -87,7 +87,7 @@
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-bottom: 15px;
margin-bottom: 20px;
}
.card{
width: 24%;
@ -100,7 +100,7 @@
.bottom{
width: 100%;
height: 615px;
height: 640px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
@ -109,7 +109,7 @@
width: 49.35%;
height: 300px;
background-color: #2F3D8A;
margin-bottom: 15px;
margin-bottom: 20px;
}
p{
margin-bottom: 10px;

@ -84,17 +84,16 @@ p{
}
.top{
width: 100%;
height: 235px;
height: 260px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-bottom: 15px;
}
.card{
width: 24%;
height: 110px;
background-color: #2F3D8A;
margin-bottom: 15px;
margin-bottom: 20px;
display: flex;
justify-content: space-around;
align-items: center;

@ -87,7 +87,7 @@
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-bottom: 15px;
margin-bottom: 20px;
}
.card{
width: 24%;
@ -100,7 +100,7 @@
.bottom{
width: 100%;
height: 615px;
height: 640px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
@ -109,7 +109,7 @@
width: 49.35%;
height: 300px;
background-color: #2F3D8A;
margin-bottom: 15px;
margin-bottom: 20px;
}
p{
margin-bottom: 10px;

@ -28,21 +28,21 @@
<template #prefix><svg-icon icon-class="password" class="el-input__icon input-icon" /></template>
</el-input>
</el-form-item>
<el-form-item prop="code" v-if="captchaEnabled">
<el-input
v-model="loginForm.code"
size="large"
auto-complete="off"
placeholder="验证码"
style="width: 63%"
@keyup.enter="handleLogin"
>
<template #prefix><svg-icon icon-class="validCode" class="el-input__icon input-icon" /></template>
</el-input>
<div class="login-code">
<img :src="codeUrl" @click="getCode" class="login-code-img"/>
</div>
</el-form-item>
<!-- <el-form-item prop="code" v-if="captchaEnabled">-->
<!-- <el-input-->
<!-- v-model="loginForm.code"-->
<!-- size="large"-->
<!-- auto-complete="off"-->
<!-- placeholder="验证码"-->
<!-- style="width: 63%"-->
<!-- @keyup.enter="handleLogin"-->
<!-- >-->
<!-- <template #prefix><svg-icon icon-class="validCode" class="el-input__icon input-icon" /></template>-->
<!-- </el-input>-->
<!-- <div class="login-code">-->
<!-- <img :src="codeUrl" @click="getCode" class="login-code-img"/>-->
<!-- </div>-->
<!-- </el-form-item>-->
<el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox>
<el-form-item style="width:100%;">
<el-button
@ -75,6 +75,7 @@ import { getCodeImg } from "@/api/login";
import Cookies from "js-cookie";
import { encrypt, decrypt } from "@/utils/jsencrypt";
import useUserStore from '@/store/modules/user'
import {ref} from "vue";
const userStore = useUserStore()
const router = useRouter();

@ -56,3 +56,5 @@ export default defineConfig(({ mode, command }) => {
}
}
})

Loading…
Cancel
Save