wj 2 years ago
parent 4132fb04e4
commit a71bbd82e9
  1. 4
      psdc-ui/src/api/control/manual.js
  2. 6
      psdc-ui/src/api/control/timer.js
  3. BIN
      psdc-ui/src/assets/images/功率.png
  4. BIN
      psdc-ui/src/assets/images/温度.png
  5. BIN
      psdc-ui/src/assets/images/温度传感器.png
  6. BIN
      psdc-ui/src/assets/images/用电量.png
  7. 76
      psdc-ui/src/views/control/manual/index.vue
  8. 103
      psdc-ui/src/views/control/timer/index.vue

@ -7,4 +7,8 @@ export function getDevice() {
/** 获取调控日志列表*/ /** 获取调控日志列表*/
export function getControlLogList(data) { export function getControlLogList(data) {
return request.post('/control/manual/controlLogList',data) return request.post('/control/manual/controlLogList',data)
}
/** 获取策略列表*/
export function getStrategyList(data) {
return request.get('/control/manual/strategyList',data)
} }

@ -0,0 +1,6 @@
import request from '@/utils/request'
/** 获取定时控制列表*/
export function getList(data) {
return request.post('/control/timer/list',data)
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

@ -16,6 +16,7 @@
<el-form-item label="当前状态:"><span :class="{'green':item.deviceRunstatus === '开启','red':item.deviceRunstatus === '关闭'}">{{ item.deviceRunstatus }}</span></el-form-item> <el-form-item label="当前状态:"><span :class="{'green':item.deviceRunstatus === '开启','red':item.deviceRunstatus === '关闭'}">{{ item.deviceRunstatus }}</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.enter" /></el-form-item>
<el-form-item label="出水温度:"><el-input v-model="form1.leave" /></el-form-item> <el-form-item label="出水温度:"><el-input v-model="form1.leave" /></el-form-item>
<!-- <el-form-item label="当前温度:"><el-input v-model="form1.now" /></el-form-item>-->
<div class="submit" @click="onSubmit1">确定</div> <div class="submit" @click="onSubmit1">确定</div>
</el-form> </el-form>
</div> </div>
@ -151,8 +152,18 @@
<el-drawer v-model="drawerIshow"> <el-drawer v-model="drawerIshow">
<template #header><h4>策略导入</h4></template> <template #header><h4>策略导入</h4></template>
<template #default> <template #default>
<el-radio v-model="radio" label="策略1" size="large">策略1</el-radio> <el-radio v-for="(item,index) in celueList" :key="index" class="celueBox" v-model="radio" :label="item.sceneName" size="large">
<el-radio v-model="radio" label="策略2" size="large">策略2</el-radio> <span style="font-weight: bold; display: inline-block; margin-bottom: 20px;">{{ item.sceneName }}</span>
<div class="celueItem" v-for="items in item.data" :key="items.device_id">
<span>{{ items.device_name }}</span>
<div class="itemsValue">
<span class="txtInput" v-for="itemsValue in items.value" :key="itemsValue.sceneKey">
<span class="txt">{{ itemsValue.sceneContext }}</span>
<input type="text" :value="itemsValue.sceneValue" disabled/>
</span>
</div>
</div>
</el-radio>
</template> </template>
<template #footer> <template #footer>
<div style="flex: auto"> <div style="flex: auto">
@ -167,15 +178,19 @@
import { Download } from '@element-plus/icons-vue' //element import { Download } from '@element-plus/icons-vue' //element
import { ref,reactive,onMounted } from 'vue' import { ref,reactive,onMounted } from 'vue'
import { ElMessageBox } from 'element-plus' import { ElMessageBox } from 'element-plus'
import { getDevice,getControlLogList } from '@/api/control/manual' import { getDevice,getControlLogList,getStrategyList } from '@/api/control/manual'
onMounted(()=>{ onMounted(()=>{
getDeviceFun(); getDeviceFun();
getControlLogListFun(); getControlLogListFun();
getStrategyListFun()
}) })
/** 获取所有设备*/ /** 获取所有设备*/
const deviceArr = ref([]) const deviceArr = ref([])
const isShow1 = ref(true)
const isShow2 = ref(true)
const isShow3 = ref(true)
function getDeviceFun(){ function getDeviceFun(){
getDevice().then((res)=>{ getDevice().then((res)=>{
console.log(res.data) console.log(res.data)
@ -201,6 +216,7 @@ const value7 = ref(false)
const form1 = reactive({ const form1 = reactive({
enter:'', enter:'',
leave:'', leave:'',
now:''
}) })
const form2 = reactive({ const form2 = reactive({
enter:'', enter:'',
@ -254,10 +270,18 @@ function getControlLogListFun(){
/** 策略导入处理*/ /** 策略导入处理*/
const drawerIshow = ref(false) const drawerIshow = ref(false)
const radio = ref() const radio = ref()
const celueList = ref([])
function getStrategyListFun(){
getStrategyList().then((res)=>{
celueList.value = res.data
console.log(res.data)
})
}
function confirmClick() { function confirmClick() {
ElMessageBox.confirm(`确定执行 ${radio.value} ?`).then(() => { ElMessageBox.confirm(`确定执行 ${radio.value} ?`).then(() => {
drawerIshow.value = false; drawerIshow.value = false;
}) console.log('确定')
})
} }
@ -363,6 +387,43 @@ function confirmClick() {
} }
} }
.celueBox{
width: 100%;
height: auto;
padding: 10px;
margin-bottom: 12px;
border: 1px solid #ddd;
&:hover{
border: 1px solid #409EFF;
}
.celueItem{
display: flex;
justify-content: space-between;
flex-wrap: nowrap;
padding: 10px 0;
border-bottom: 1px solid #dddddd50;
.itemsValue{
display: flex;
justify-content: flex-start;
flex-wrap: nowrap;
width: 80%;
.txtInput{
margin-right: 10px;
.txt{
display: inline-block;
width: 80px;
text-align: right;
}
input{
padding: 3px 3px;
width: 100px;
border: 1px solid #ddd;
}
}
}
}
}
::v-deep .el-button{ ::v-deep .el-button{
border-radius: 2px; border-radius: 2px;
margin-bottom: 12px; margin-bottom: 12px;
@ -396,5 +457,12 @@ function confirmClick() {
::v-deep .el-table--fit{ ::v-deep .el-table--fit{
background-color: #2D3D88; background-color: #2D3D88;
} }
::v-deep .el-radio{
display: inline-block;
}
::v-deep .el-drawer__body{
overflow-x: hidden;
overflow-y: auto;
}
</style> </style>

@ -16,7 +16,14 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="有效日期" style="width: 308px;"> <el-form-item label="有效日期" style="width: 308px;">
<el-date-picker v-model="dateRange" value-format="YYYY-MM-DD" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker> <el-date-picker v-model="dateRange"
value-format="YYYY-MM-DD"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
@click="seletDate"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
@ -31,8 +38,8 @@
<div class="dev_control_table"> <div class="dev_control_table">
<el-table :data="timingList" height="500px"> <el-table :data="timingList" height="500px">
<el-table-column label="序号" align="center" width="50"/> <el-table-column label="序号" align="center" width="50"/>
<el-table-column label="指令内容" align="center" prop="content" width="700"/> <el-table-column label="指令内容" align="center" prop="controlValue" width="700"/>
<el-table-column label="执行时间" align="center" prop="time"/> <el-table-column label="执行时间" align="center" prop="createTime"/>
<el-table-column label="有效日期" align="center" prop="dateRange"/> <el-table-column label="有效日期" align="center" prop="dateRange"/>
<el-table-column label="有效星期" align="center" prop="week"/> <el-table-column label="有效星期" align="center" prop="week"/>
<el-table-column label="操作" align="center" prop="handle"> <el-table-column label="操作" align="center" prop="handle">
@ -49,7 +56,7 @@
:disabled="disabled" :disabled="disabled"
:background="background" :background="background"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
:total="timingList.length" :total="total"
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange"/> @current-change="handleCurrentChange"/>
</div> </div>
@ -107,46 +114,93 @@
<script setup name="Index"> <script setup name="Index">
import {Delete} from '@element-plus/icons-vue' import {Delete} from '@element-plus/icons-vue'
import {ref,reactive,watch} from "vue"; import {ref,reactive,watch,onMounted} from "vue";
import { getList } from '@/api/control/timer'
/** 页面加载时*/
onMounted(()=>{
formattedDateFun()
getListFun()
})
/** 格式化日期*/
const YYYYMMDD = ref();
const timer = ref()
function formattedDateFun(){
let date = new Date()
let year = date.getFullYear()
let month = (date.getMonth()+1).toString().padStart(2, '0');
let day = date.getDate().toString().padStart(2, '0');
let hours = date.getHours()
let minutes = date.getMinutes()
let seconds = date.getSeconds()
YYYYMMDD.value = `${year}-${month}-${day}`
timer.value = `${hours}:${minutes}:${seconds}`
console.log(YYYYMMDD.value)
console.log(timer.value)
}
/** 筛选处理 */ /** 筛选处理 */
//
const dateRange = ref([]); const dateRange = ref([]);
const startDate = ref()
const endDate = ref()
const wacthSelectDate = watch(()=> dateRange.value,(val) =>{
console.log(val[0])
startDate.value = val[0]
console.log(val[1])
endDate.value = val[1]
})
const data = reactive({ const data = reactive({
queryParams: { queryParams: {
week: '', week: '',
time: '', time: '',
} }
}); });
//
function seletDate(){
console.log('选择的日期',dateRange.value)
}
// //
function handleQuery(){ function handleQuery(){
getListFun()
} }
// //
function resetQuery(){ function resetQuery(){
dateRange.value = [] dateRange.value = [];
getListFun()
} }
/** 数据表格处理 */ /** 数据表格处理 */
const timingList = reactive([ const timingList = ref([])
{
content:'11',
time:'22',
dateRange:'44',
week:'55',
},
{
content:'11',
time:'22',
dateRange:'44',
week:'55',
}
])
const currentPage = ref(1) const currentPage = ref(1)
const pageSize = ref(5) const pageSize = ref(5)
const total = ref()
const small = ref(false) const small = ref(false)
const background = ref(false) const background = ref(false)
const disabled = ref(false) const disabled = ref(false)
function getListFun(){
getList({
"timerId":null,
"deviceId":null,
"controlContext":null,
"timerStatus":null,
"createStart":startDate.value,
"createEnd": endDate.value,
"pageNum": currentPage.value,
"pageSize": pageSize.value
}).then((res)=>{
total.value = res.total
timingList.value = res.rows
})
}
const handleSizeChange = (val) => { const handleSizeChange = (val) => {
console.log(`${val}`) console.log(`${val}`)
} }
@ -236,5 +290,14 @@ const { queryParams } = toRefs(data);
::v-deep .el-form-item__content{ ::v-deep .el-form-item__content{
//display: flex; //display: flex;
} }
::v-deep .el-input__inner{
color: #f3ffff;
}
::v-deep .el-date-editor .el-range-input{
color: #f3ffff;
}
::v-deep .el-scrollbar__wrap.el-scrollbar__wrap--hidden-default{
background-color: rgba(47,61,138);
}
</style> </style>

Loading…
Cancel
Save