浇花器

This commit is contained in:
3321822538@qq.com 2025-02-20 11:29:45 +08:00
parent 516e9c3da9
commit f5b6a50aed
2 changed files with 517 additions and 349 deletions

View File

@ -1,57 +1,76 @@
<template> <template>
<view> <view>
<u-navbar :is-back="true" title='定时管理' title-color="#000" :border-bottom="false" :background="bgc" <u-navbar :is-back="true" title='定时管理' title-color="#000" :border-bottom="false" :background="bgc" id="navbar">
id="navbar">
</u-navbar> </u-navbar>
<image class="bj" src="https://api.ccttiot.com/smartmeter/img/static/urqUoIyCCEBykZ2oG8eO" mode=""></image> <image class="bj" src="https://api.ccttiot.com/smartmeter/img/static/urqUoIyCCEBykZ2oG8eO" mode=""></image>
<view class="" v-if="list.length > 0 || list != null"> <view class="" v-if="pre == 'WATER'">
<view class="list"> <view class="list" v-if="list.length > 0 || list != null">
<view class="list_val" v-for="(values, key, index) in list" :key="key"> <view class="list_val" v-for="(values, key, index) in list" :key="key">
<view class="lt" @click="btnitem(key,index,values)"> <view class="lt" @click="btnitem(key,index,values)">
<view class="one">{{ formattedTime(values[0], values[1]) }}</view> <view class="one">{{ formattedTime(values[0], values[1]) }}</view>
<view class="two">P{{ index + 1 }} <text></text> {{ formatTime(values[2]) }}</view> <view class="two">P{{ index + 1 }} <text></text> {{ formatTime(values[2]) }}</view>
</view> </view>
<view class="rt"> <view class="rt">
<u-switch v-model="values[3]" @change="btnchange(key,index,values)" active-color="#48893B" inactive-color="#BDBCBC"></u-switch> <u-switch v-model="values[3]" @change="btnchange(key,index,values)" active-color="#48893B"
</view> inactive-color="#BDBCBC"></u-switch>
</view> </view>
</view> </view>
</view>
<!-- 设置浇水时间弹窗 --> <!-- 设置浇水时间弹窗 -->
<view class="jiaoshui" v-if="timeflag"> <view class="jiaoshui" v-if="timeflag">
<view class="top"> <view class="top">
设置浇水 设置浇水
</view> </view>
<view class="ts"> <view class="ts">
距离下次浇水时间还有{{xctime}} 距离下次浇水时间还有{{xctime}}
</view> </view>
<view class="shifen" @click="show = true"> <view class="shifen" @click="show = true">
<text>{{hour}}</text> <text>{{minutekq}}</text> <text>{{hour}}</text> <text>{{minutekq}}</text>
</view> </view>
<view class="jssc"> <view class="jssc">
浇水时长 浇水时长
</view> </view>
<view class="shifen" @click="shows = true"> <view class="shifen" @click="shows = true">
<text>{{minute}}</text> <text>{{second}}</text> <text>{{minute}}</text> <text>{{second}}</text>
</view> </view>
<view class="anniu"> <view class="anniu">
<view class="qx" @click="btnqx"> <view class="qx" @click="btnqx">
取消 取消
</view> </view>
<view class="qd" @click="btnqd"> <view class="qd" @click="btnqd">
确定 确定
</view> </view>
</view> </view>
</view> </view>
<view class="mask" v-if="timeflag"></view> <view class="mask" v-if="timeflag"></view>
<!-- 定时时间 --> <!-- 定时时间 -->
<u-picker v-model="show" mode="time" :params="paramss" @confirm="confirm"></u-picker> <u-picker v-model="show" mode="time" :params="paramss" @confirm="confirm"></u-picker>
<!-- 定时时长 --> <!-- 定时时长 -->
<u-picker v-model="shows" mode="time" :params="params" @confirm="confirms"></u-picker> <u-picker v-model="shows" mode="time" :params="params" @confirm="confirms"></u-picker>
<view class="mask" style="z-index: 9999;" v-if="kgflag"></view> <view class="mask" style="z-index: 9999;" v-if="kgflag"></view>
</view> </view>
<view class="" style="width: 100%;padding-top: 80rpx;text-align: center;color: #000;font-size: 36rpx;">
<view class="choushuiben" v-else>
<view class="name">
<text>抽水泵启动时间/</text> <input type="text" v-model="shi"/>
</view>
<view class="name">
<text>抽水泵启动时间/</text><input type="text" v-model="fen"/>
</view>
<view class="name">
<text>抽水泵工作时长/</text><input type="text" v-model="miao"/>
</view>
<view class="name">
<text>抽水泵间隔时间/</text><input type="text" v-model="tian"/>
</view>
<view class="baocun" @click="btnbc">
保存
</view>
</view>
<view class="" v-if="pre == 'WATER'" style="width: 100%;padding-top: 80rpx;text-align: center;color: #000;font-size: 36rpx;">
没有更多定时浇水啦... 没有更多定时浇水啦...
</view> </view>
</view> </view>
@ -60,246 +79,301 @@
<script> <script>
var xBlufi = require("@/components/blufi/xBlufi.js") var xBlufi = require("@/components/blufi/xBlufi.js")
export default { export default {
data() { data() {
return { return {
bgc: { bgc: {
backgroundColor: "#fff", backgroundColor: "#fff",
}, },
active:1, active: 1,
flag:false, flag: false,
checked:false, checked: false,
timeflag:false, timeflag: false,
show: false, show: false,
params: { params: {
year: false, year: false,
month: false, month: false,
day: false, day: false,
hour: false, hour: false,
minute: true, minute: true,
second: true, second: true,
}, },
shows: false, shows: false,
paramss: { paramss: {
year: false, year: false,
month: false, month: false,
day: false, day: false,
hour: true, hour: true,
minute: true, minute: true,
second: false, second: false,
}, },
minute:'--', minute: '--',
second:'--', second: '--',
hour:'--', hour: '--',
minutekq:'--', minutekq: '--',
list:{}, list: {},
checkedStatus: {}, checkedStatus: {},
deviceindex:'', deviceindex: '',
devicemiao:'', devicemiao: '',
deviceflag:'', deviceflag: '',
devicehour:'', devicehour: '',
deviceminute:'', deviceminute: '',
kgflag:false, kgflag: false,
xctime:'' xctime: '',
} csbobj:{},
}, pre:'',
// shi:'',
onShareAppMessage: function() { fen:'',
return { miao:'',
title: '绿小能', tian:''
path: '/pages/index/index' }
} },
}, //
// onShareAppMessage: function() {
onShareTimeline: function() { return {
return { title: '绿小能',
title: '绿小能', path: '/pages/index/index'
query: '', }
path: '/pages/index/index' },
} //
}, onShareTimeline: function() {
onLoad(option) { return {
xBlufi.listenDeviceMsgEvent(true, this.funListenDeviceMsgEvent) title: '绿小能',
if(option.list){ // query: '',
path: '/pages/index/index'
}
},
onLoad(option) {
xBlufi.listenDeviceMsgEvent(true, this.funListenDeviceMsgEvent)
xBlufi.notifySendCustomData({
customData: "11get"
})
if (option.list.length > 0) { //
this.pre = option.pre
if (option.pre == 'WATER') {
this.list = JSON.parse(option.list) this.list = JSON.parse(option.list)
for (let key in this.list) { for (let key in this.list) {
if (this.list.hasOwnProperty(key)) { if (this.list.hasOwnProperty(key)) {
// //
let arr = this.list[key]; let arr = this.list[key];
// //
if (arr[arr.length - 1] === 0) { if (arr[arr.length - 1] === 0) {
arr[arr.length - 1] = false; arr[arr.length - 1] = false;
} else if (arr[arr.length - 1] === 1) { } else if (arr[arr.length - 1] === 1) {
arr[arr.length - 1] = true; arr[arr.length - 1] = true;
} }
} }
} }
console.log(this.list) console.log(this.list)
}else{ } else {
this.csbobj = JSON.parse(option.list)
this.shi = this.csbobj.hour
this.fen = this.csbobj.minute
this.miao = this.csbobj.second
this.tian = this.csbobj.day
}
} else {
xBlufi.notifySendCustomData({
customData: "11get"
})
}
},
onShow() {
},
methods: {
//
btnchange(key, index, values) {
this.kgflag = true
this.btnitem(key, index, values)
this.btnqx()
this.deviceindex = index
this.devicehour = values[0]
this.deviceminute = values[1]
this.devicemiao = values[2]
if (this.list.hasOwnProperty(key)) {
const array = this.list[key]
const lastIndex = array.length - 1
const lastElement = array[lastIndex]
const lastElements = array[lastIndex]
array[lastIndex] = !lastElement
if (lastElements) {
this.deviceflag = 0
} else {
this.deviceflag = 1
}
}
let cucun = '11num' + this.deviceindex + '@' + this.devicehour + '@' + this.deviceminute + '@' + this
.devicemiao + '@' + this.deviceflag + '@'
xBlufi.notifySendCustomData({
customData: cucun
})
setTimeout(() => {
this.kgflag = false
}, 1000)
},
//
btnitem(key, index, values) {
this.deviceindex = index
this.timeflag = true
this.hour = values[0]
this.minutekq = values[1]
const totalSeconds = values[2]
const minutes = Math.floor(totalSeconds / 60)
const seconds = totalSeconds % 60
const formattedMinutes = minutes < 10 ? '0' + minutes : minutes.toString()
const formattedSeconds = seconds < 10 ? '0' + seconds : seconds.toString()
this.minute = formattedMinutes
this.second = formattedSeconds
if (this.list.hasOwnProperty(key)) {
const array = this.list[key]
const lastElement = array[array.length - 1]
if (lastElement) {
this.deviceflag = 1
} else {
this.deviceflag = 0
}
}
},
formattedTime(minutes, seconds) {
//
const formattedMinutes = String(minutes).padStart(2, '0');
const formattedSeconds = String(seconds).padStart(2, '0');
//
return `${formattedMinutes}:${formattedSeconds}`;
},
formatTime(seconds) {
const minutes = Math.floor(seconds / 60);
const remainingSeconds = seconds % 60;
return `${minutes}${remainingSeconds < 10 ? '0' : ''}${remainingSeconds}`;
},
//
btnqx() {
this.timeflag = false
this.hour = '--'
this.minutekq = '--'
this.minute = '--'
this.second = '--'
},
//
btnqd() {
this.timeflag = false
this.hour = '--'
this.minutekq = '--'
this.minute = '--'
this.second = '--'
let cucun = '11num' + this.deviceindex + '@' + this.devicehour + '@' + this.deviceminute + '@' + this.devicemiao + '@' + this.deviceflag + '@'
xBlufi.notifySendCustomData({
customData: cucun
})
setTimeout(() => {
xBlufi.notifySendCustomData({ xBlufi.notifySendCustomData({
customData: "11get" customData: "11get"
}) })
} }, 1000)
}, },
onShow() { btnbc(){
if(this.shi >= 24){
}, uni.showToast({
methods:{ title: '最大值为23时',
// icon: 'none',
btnchange(key,index,values){ duration:2000
this.kgflag = true })
this.btnitem(key,index,values) }else if(this.fen >= 60){
this.btnqx() uni.showToast({
this.deviceindex = index title: '最大值为59分钟',
this.devicehour = values[0] icon: 'none',
this.deviceminute = values[1] duration:2000
this.devicemiao = values[2] })
if (this.list.hasOwnProperty(key)) { }else{
const array = this.list[key] this.timeflag = false
const lastIndex = array.length - 1 let cucun = '11num0' + '@' + this.shi + '@' + this.fen + '@' + this.miao + '@' + this.tian + '@'
const lastElement = array[lastIndex]
const lastElements = array[lastIndex]
array[lastIndex] = !lastElement
if (lastElements) {
this.deviceflag = 0
} else {
this.deviceflag = 1
}
}
let cucun = '11num' + this.deviceindex + '@' + this.devicehour + '@' + this.deviceminute + '@' + this.devicemiao + '@' + this.deviceflag + '@'
xBlufi.notifySendCustomData({ xBlufi.notifySendCustomData({
customData: cucun customData: cucun
}) })
setTimeout(()=>{ uni.showToast({
this.kgflag = false title: '保存成功',
},1000) icon: 'success',
}, duration:2000
//
btnitem(key,index,values){
this.deviceindex = index
this.timeflag = true
this.hour = values[0]
this.minutekq = values[1]
const totalSeconds = values[2]
const minutes = Math.floor(totalSeconds / 60)
const seconds = totalSeconds % 60
const formattedMinutes = minutes < 10 ? '0' + minutes : minutes.toString()
const formattedSeconds = seconds < 10 ? '0' + seconds : seconds.toString()
this.minute = formattedMinutes
this.second = formattedSeconds
if (this.list.hasOwnProperty(key)) {
const array = this.list[key]
const lastElement = array[array.length - 1]
if (lastElement) {
this.deviceflag = 1
} else {
this.deviceflag = 0
}
}
},
formattedTime(minutes, seconds) {
//
const formattedMinutes = String(minutes).padStart(2, '0');
const formattedSeconds = String(seconds).padStart(2, '0');
//
return `${formattedMinutes}:${formattedSeconds}`;
},
formatTime(seconds) {
const minutes = Math.floor(seconds / 60);
const remainingSeconds = seconds % 60;
return `${minutes}${remainingSeconds < 10 ? '0' : ''}${remainingSeconds}`;
},
//
btnqx(){
this.timeflag = false
this.hour = '--'
this.minutekq = '--'
this.minute = '--'
this.second = '--'
},
//
btnqd(){
this.timeflag = false
this.hour = '--'
this.minutekq = '--'
this.minute = '--'
this.second = '--'
let cucun = '11num' + this.deviceindex + '@' + this.devicehour + '@' + this.deviceminute + '@' + this.devicemiao + '@' + this.deviceflag + '@'
xBlufi.notifySendCustomData({
customData: cucun
}) })
setTimeout(()=> { setTimeout(() => {
xBlufi.notifySendCustomData({ xBlufi.notifySendCustomData({
customData: "11get" customData: "11get"
}) })
},1000) }, 1000)
}, }
// },
confirm(e){ //
this.hour = e.hour confirm(e) {
this.minutekq = e.minute this.hour = e.hour
this.devicehour = e.hour this.minutekq = e.minute
this.deviceminute = e.minute this.devicehour = e.hour
}, this.deviceminute = e.minute
// },
confirms(e){ //
this.minute = e.minute confirms(e) {
this.second = e.second this.minute = e.minute
this.devicemiao = Number(this.minute) * 60 + Number(this.second) this.second = e.second
console.log(this.devicemiao) this.devicemiao = Number(this.minute) * 60 + Number(this.second)
}, console.log(this.devicemiao)
},
funListenDeviceMsgEvent: function(options) { funListenDeviceMsgEvent: function(options) {
switch (options.type) { switch (options.type) {
case xBlufi.XBLUFI_TYPE.TYPE_STATUS_CONNECTED: case xBlufi.XBLUFI_TYPE.TYPE_STATUS_CONNECTED:
if (!options.result) { if (!options.result) {
} }
break; break;
case xBlufi.XBLUFI_TYPE.TYPE_RECIEVE_CUSTON_DATA: case xBlufi.XBLUFI_TYPE.TYPE_RECIEVE_CUSTON_DATA:
console.log("1收到设备发来的自定义数据结果", options.data) console.log("1收到设备发来的自定义数据结果", options.data)
const inputString = options.data.slice(0, -1) + ";" const inputString = options.data.slice(0, -1) + ";"
console.log(inputString,'12121212100') console.log(inputString, '12121212100')
if (this.pre == 'WATER') {
const pairs = inputString.split(';') const pairs = inputString.split(';')
const showObject = {} const showObject = {}
const pSetObjects = {} const pSetObjects = {}
pairs.forEach(pair => { pairs.forEach(pair => {
const [key, value] = pair.split(':') const [key, value] = pair.split(':')
if (key === 'show') { if (key === 'show') {
showObject.showArray = value.split(',').map(Number) showObject.showArray = value.split(',').map(Number)
} else if (key.startsWith('p_set')) { } else if (key.startsWith('p_set')) {
const numbers = value.split(',').map(Number) const numbers = value.split(',').map(Number)
pSetObjects[key] = numbers pSetObjects[key] = numbers
} }
}) })
this.list = pSetObjects // this.list = pSetObjects //
const ver_Data = this.list const ver_Data = this.list
function secondsToMinutesAndSeconds(seconds) { function secondsToMinutesAndSeconds(seconds) {
const minutes = Math.floor(seconds / 60) const minutes = Math.floor(seconds / 60)
const remainingSeconds = seconds % 60 const remainingSeconds = seconds % 60
return `${minutes}${remainingSeconds}` return `${minutes}${remainingSeconds}`
} }
// //
const now = new Date() const now = new Date()
// Date // Date
function timeArrayToDate(timeArray) { function timeArrayToDate(timeArray) {
const [hour, minute, second] = timeArray.slice(0, 3) const [hour, minute, second] = timeArray.slice(0, 3)
const date = new Date() const date = new Date()
date.setHours(hour, minute, second, 0) // 0 date.setHours(hour, minute, second, 0) // 0
return date return date
} }
// //
function timeDifference(date1, date2) { function timeDifference(date1, date2) {
const diffMs = Math.abs(date1 - date2) const diffMs = Math.abs(date1 - date2)
const diffSeconds = Math.floor(diffMs / 1000) const diffSeconds = Math.floor(diffMs / 1000)
const diffMinutes = Math.floor(diffSeconds / 60) const diffMinutes = Math.floor(diffSeconds / 60)
const diffHours = Math.floor(diffMinutes / 60) const diffHours = Math.floor(diffMinutes / 60)
const remainingMinutes = diffMinutes % 60 const remainingMinutes = diffMinutes % 60
return { hours: diffHours, minutes: remainingMinutes } return {
hours: diffHours,
minutes: remainingMinutes
}
} }
// ver_Data // ver_Data
let nextTimeDiff = null let nextTimeDiff = null
@ -308,55 +382,104 @@
let prevTime = null let prevTime = null
let nextWaterDuration = null // let nextWaterDuration = null //
for (const key in ver_Data) { for (const key in ver_Data) {
if (ver_Data.hasOwnProperty(key) && ver_Data[key][3] === 1) { if (ver_Data.hasOwnProperty(key) && ver_Data[key][3] === 1) {
const timeArray = ver_Data[key] const timeArray = ver_Data[key]
const timeDate = timeArrayToDate(timeArray) const timeDate = timeArrayToDate(timeArray)
// //
const diff = timeDifference(timeDate, now) const diff = timeDifference(timeDate, now)
// //
if (timeDate > now) { if (timeDate > now) {
if (!nextTime || diff.hours * 60 + diff.minutes < nextTimeDiff.hours * 60 + nextTimeDiff.minutes) { if (!nextTime || diff.hours * 60 + diff.minutes < nextTimeDiff.hours * 60 +
nextTimeDiff = diff nextTimeDiff.minutes) {
nextTime = timeDate nextTimeDiff = diff
nextWaterDuration = secondsToMinutesAndSeconds(timeArray[2]) // nextTime = timeDate
} nextWaterDuration = secondsToMinutesAndSeconds(timeArray[2]) //
} else { }
if (!prevTime || (now.getTime() - timeDate.getTime()) < (now.getTime() - prevTime.getTime())) { } else {
prevTimeDiff = timeDifference(now, timeDate) // if (!prevTime || (now.getTime() - timeDate.getTime()) < (now.getTime() -
prevTime = timeDate prevTime.getTime())) {
} prevTimeDiff = timeDifference(now, timeDate) //
} prevTime = timeDate
} }
}
}
} }
// //
this.xctime = `${nextTimeDiff.hours}${nextTimeDiff.minutes}` this.xctime = `${nextTimeDiff.hours}${nextTimeDiff.minutes}`
for (let key in this.list) { for (let key in this.list) {
if (this.list.hasOwnProperty(key)) { if (this.list.hasOwnProperty(key)) {
// //
let arr = this.list[key] let arr = this.list[key]
// //
if (arr[arr.length - 1] === 0) { if (arr[arr.length - 1] === 0) {
arr[arr.length - 1] = false arr[arr.length - 1] = false
} else if (arr[arr.length - 1] === 1) { } else if (arr[arr.length - 1] === 1) {
arr[arr.length - 1] = true arr[arr.length - 1] = true
} }
} }
} }
break } else {
} const input = options.data.slice(0, -1) + ";"
}, //
} const parts = input.replace(";", "").split(":")
//
const timeParts = parts[1].split(",")
//
this.csbobj = {
hour: parseInt(timeParts[0]), //
minute: parseInt(timeParts[1]), //
second: parseInt(timeParts[2]), //
day: parseInt(timeParts[3]) //
}
console.log(this.csbobj);
this.shi = this.csbobj.hour
this.fen = this.csbobj.minute
this.miao = this.csbobj.second
this.tian = this.csbobj.day
}
break
}
},
} }
}
</script> </script>
<style lang="less"> <style lang="less">
/deep/ .u-title{ /deep/ .u-title {
margin-bottom: 22rpx; margin-bottom: 22rpx;
} }
/deep/ .uicon-nav-back{
/deep/ .uicon-nav-back {
margin-bottom: 22rpx; margin-bottom: 22rpx;
} }
.jiaoshui{ .choushuiben{
.baocun{
margin: auto;
width: 630rpx;
height: 100rpx;
margin-top: 50rpx;
text-align: center;
line-height: 100rpx;
border-radius: 20rpx;
background-color: #7FAD76;
color: #fff;
font-size: 32rpx;
}
.name{
display: flex;
height: 100rpx;
line-height: 100rpx;
text{
width: 300rpx;
}
input{
border-bottom: 1px solid #ccc;
height: 100rpx;
line-height: 100rpx;
}
}
}
.jiaoshui {
position: fixed; position: fixed;
top: 366rpx; top: 366rpx;
left: 50%; left: 50%;
@ -366,7 +489,8 @@
background: #FFFFFF; background: #FFFFFF;
border-radius: 24rpx 24rpx 24rpx 24rpx; border-radius: 24rpx 24rpx 24rpx 24rpx;
z-index: 99; z-index: 99;
.top{
.top {
margin-top: 42rpx; margin-top: 42rpx;
width: 100%; width: 100%;
text-align: center; text-align: center;
@ -374,7 +498,8 @@
color: #3D3D3D; color: #3D3D3D;
font-weight: 600; font-weight: 600;
} }
.ts{
.ts {
margin-top: 30rpx; margin-top: 30rpx;
width: 100%; width: 100%;
text-align: center; text-align: center;
@ -382,7 +507,8 @@
color: #808080; color: #808080;
font-weight: 600; font-weight: 600;
} }
.shifen{
.shifen {
width: 512rpx; width: 512rpx;
height: 128rpx; height: 128rpx;
background: #F0F0F0; background: #F0F0F0;
@ -394,26 +520,30 @@
line-height: 128rpx; line-height: 128rpx;
padding: 0 102rpx; padding: 0 102rpx;
box-sizing: border-box; box-sizing: border-box;
text{
text {
font-size: 44rpx; font-size: 44rpx;
color: #3D3D3D; color: #3D3D3D;
font-weight: 600; font-weight: 600;
} }
} }
.jssc{
.jssc {
font-size: 32rpx; font-size: 32rpx;
color: #808080; color: #808080;
font-weight: 600; font-weight: 600;
margin-top: 58rpx; margin-top: 58rpx;
margin-left: 96rpx; margin-left: 96rpx;
} }
.anniu{
.anniu {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-top: 58rpx; margin-top: 58rpx;
padding: 0 44rpx; padding: 0 44rpx;
box-sizing: border-box; box-sizing: border-box;
.qx{
.qx {
width: 278rpx; width: 278rpx;
height: 80rpx; height: 80rpx;
border-radius: 10rpx 10rpx 10rpx 10rpx; border-radius: 10rpx 10rpx 10rpx 10rpx;
@ -424,7 +554,8 @@
line-height: 80rpx; line-height: 80rpx;
text-align: center; text-align: center;
} }
.qd{
.qd {
width: 278rpx; width: 278rpx;
height: 80rpx; height: 80rpx;
background: #7FAD76; background: #7FAD76;
@ -437,7 +568,8 @@
} }
} }
} }
.mask{
.mask {
width: 100%; width: 100%;
height: 100vh; height: 100vh;
background-color: #000; background-color: #000;
@ -447,12 +579,13 @@
left: 0; left: 0;
z-index: 98; z-index: 98;
} }
.list{
.list_val{ .list {
.list_val {
width: 678rpx; width: 678rpx;
height: 208rpx; height: 208rpx;
background: #FFFFFF; background: #FFFFFF;
box-shadow: 0rpx 10rpx 64rpx 0rpx rgba(0,0,0,0.08); box-shadow: 0rpx 10rpx 64rpx 0rpx rgba(0, 0, 0, 0.08);
border-radius: 20rpx; border-radius: 20rpx;
padding-top: 16rpx; padding-top: 16rpx;
padding-left: 42rpx; padding-left: 42rpx;
@ -461,18 +594,22 @@
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-top: 30rpx; margin-top: 30rpx;
.lt{
.lt {
width: 100%; width: 100%;
.one{
.one {
font-size: 72rpx; font-size: 72rpx;
color: #50565A; color: #50565A;
font-weight: 600; font-weight: 600;
} }
.two{
.two {
font-size: 32rpx; font-size: 32rpx;
color: #50565A; color: #50565A;
margin-top: 12rpx; margin-top: 12rpx;
text{
text {
display: inline-block; display: inline-block;
width: 1rpx; width: 1rpx;
height: 28rpx; height: 28rpx;
@ -482,19 +619,22 @@
} }
} }
} }
.rt{
.rt {
padding-top: 70rpx; padding-top: 70rpx;
box-sizing: border-box; box-sizing: border-box;
} }
} }
} }
page{
page {
width: 100%; width: 100%;
padding: 20rpx 30rpx; padding: 20rpx 30rpx;
box-sizing: border-box; box-sizing: border-box;
background-color: #fff; background-color: #fff;
} }
.bj{
.bj {
width: 100%; width: 100%;
height: 100vh; height: 100vh;
position: fixed; position: fixed;
@ -502,5 +642,4 @@
left: 0; left: 0;
z-index: -1; z-index: -1;
} }
</style> </style>

View File

@ -77,7 +77,7 @@
</view> </view>
</view> --> </view> -->
</view> </view>
<view class="deviceweek"> <view class="deviceweek" v-if="pre == 'WATER'">
<view class="weeklist"> <view class="weeklist">
<view class="kg" v-if="ver_data.p_set0[3] == 0"> <view class="kg" v-if="ver_data.p_set0[3] == 0">
OFF OFF
@ -193,10 +193,15 @@
</view> </view>
</view> </view>
</view> </view>
<view class="" v-else>
<view class="">抽水泵启动时间{{csbobj.hour == undefined ? '--' : csbobj.hour + '时'}}{{csbobj.minute == undefined ? '' : csbobj.minute + '分'}}</view>
<view class="">抽水泵工作时长/{{csbobj.second == undefined ? '--' : csbobj.second + '秒'}}</view>
<view class="">抽水泵间隔时间/{{csbobj.day == undefined ? '--' : csbobj.day + '天'}}</view>
</view>
</view> </view>
<!-- 开关选择 --> <!-- 开关选择 -->
<view class="switchbox"> <view class="switchbox">
<view class="switch_he"> <view class="switch_he" v-if="pre == 'WATER'">
<image src="https://api.ccttiot.com/smartmeter/img/static/u7NwkNOoQYYsvHVMkDlu" mode=""></image> <image src="https://api.ccttiot.com/smartmeter/img/static/u7NwkNOoQYYsvHVMkDlu" mode=""></image>
<view class="yushui"> <view class="yushui">
雨水感应 雨水感应
@ -206,7 +211,7 @@
inactive-color="#7FAD76" size="40"></u-switch> inactive-color="#7FAD76" size="40"></u-switch>
</view> </view>
</view> </view>
<view class="switch_he"> <view class="switch_he" v-if="pre == 'WATER'">
<image src="https://api.ccttiot.com/smartmeter/img/static/u7kd92ocUgDN052nhp4R" mode=""></image> <image src="https://api.ccttiot.com/smartmeter/img/static/u7kd92ocUgDN052nhp4R" mode=""></image>
<view class="yushui"> <view class="yushui">
儿童锁 <u-switch v-if="etchecked" v-model="two" @change="btnertong" inactive-color="#eee" 儿童锁 <u-switch v-if="etchecked" v-model="two" @change="btnertong" inactive-color="#eee"
@ -220,7 +225,7 @@
<!-- 定时 --> <!-- 定时 -->
<view class="dingshi_he" @click="btntime"> <view class="dingshi_he" @click="btntime">
<view class="naoz"> <view class="naoz">
<image src="https://api.ccttiot.com/smartmeter/img/static/uJPgzMejk9gaogWnCO9M" mode=""></image> 6 <image src="https://api.ccttiot.com/smartmeter/img/static/uJPgzMejk9gaogWnCO9M" mode=""></image> <text v-if="pre == 'WATER'">6组</text>
</view> </view>
<view class="dstime"> <view class="dstime">
定时管理 <image src="https://api.ccttiot.com/smartmeter/img/static/uagx3wGa7RYvqKqoSymy" mode=""> 定时管理 <image src="https://api.ccttiot.com/smartmeter/img/static/uagx3wGa7RYvqKqoSymy" mode="">
@ -241,13 +246,13 @@
</view> </view>
</view> </view>
<!-- 浇水日志 --> <!-- 浇水日志 -->
<view class="wateringlogbox" @click="btnjs"> <view class="wateringlogbox" v-if="pre == 'WATER'" @click="btnjs">
<view class="wateringlogtop"> <view class="wateringlogtop">
<image src="https://api.ccttiot.com/smartmeter/img/static/uGh3pRM7mMRSHdmvtzv3" mode=""></image> <image src="https://api.ccttiot.com/smartmeter/img/static/uGh3pRM7mMRSHdmvtzv3" mode=""></image>
浇水日志 浇水日志
</view> </view>
<view class="wateringlogbd"> <view class="wateringlogbd">
<view class="lt"> <view class="lt" >
<view class="">距离下次{{xctime}}</view> <view class="">距离下次{{xctime}}</view>
<view class="">下次浇水时长{{xctimesc}}</view> <view class="">下次浇水时长{{xctimesc}}</view>
<view class="">上次浇水{{sctimejs}}</view> <view class="">上次浇水{{sctimejs}}</view>
@ -363,7 +368,9 @@
devicesarr:[], devicesarr:[],
intervalId: null, intervalId: null,
imgflag:true, imgflag:true,
ver:'' ver:'',
pre:'',
csbobj:{}
} }
}, },
// //
@ -497,6 +504,7 @@
this.bjflag = false this.bjflag = false
this.devicelist = res.data this.devicelist = res.data
this.mac = res.data[0].mac this.mac = res.data[0].mac
this.pre = res.data[0].pre
this.deviceId = res.data[0].mac.match(/.{2}/g).reverse().join(':') this.deviceId = res.data[0].mac.match(/.{2}/g).reverse().join(':')
this.user = res.data[0] this.user = res.data[0]
this.shebid = res.data[0].deviceId this.shebid = res.data[0].deviceId
@ -683,7 +691,7 @@
}) })
}else{ }else{
uni.navigateTo({ uni.navigateTo({
url: '/page_user/dingshi?list=' + JSON.stringify(this.ver_data) url: '/page_user/dingshi?list=' + JSON.stringify(this.ver_data) + '&pre=' + this.pre
}) })
} }
}, },
@ -845,6 +853,7 @@
this.$u.get(`/app/getDeviceInfo/${this.shebid}`).then(res => { this.$u.get(`/app/getDeviceInfo/${this.shebid}`).then(res => {
if(res.code == 200){ if(res.code == 200){
this.mac = res.data.mac this.mac = res.data.mac
this.pre = res.data.pre
this.deviceId = res.data.mac.match(/.{2}/g).reverse().join(':') this.deviceId = res.data.mac.match(/.{2}/g).reverse().join(':')
this.user = res.data this.user = res.data
} }
@ -899,7 +908,11 @@
console.log("1收到设备发来的自定义数据结果", options.data,options.data.length) console.log("1收到设备发来的自定义数据结果", options.data,options.data.length)
this.datalist = options.data.slice(0, -1) + ";" this.datalist = options.data.slice(0, -1) + ";"
this.vardataflag = 3 this.vardataflag = 3
this.getchuli() if(this.pre == 'WATER'){
this.getchuli()
}else{
this.getcsbshuju()
}
break break
case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_START: case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_START:
if (!options.result) { if (!options.result) {
@ -929,7 +942,23 @@
console.log("定时器已清除"); console.log("定时器已清除");
} }
}, },
//
getcsbshuju(){
const input = this.datalist
//
const parts = input.replace(";", "").split(":")
//
const timeParts = parts[1].split(",")
//
this.csbobj = {
hour: parseInt(timeParts[0]), //
minute: parseInt(timeParts[1]), //
second: parseInt(timeParts[2]), //
day: parseInt(timeParts[3]) //
}
this.ver_data = this.csbobj
console.log(this.csbobj);
},
// //
getchuli() { getchuli() {
const inputString = this.datalist const inputString = this.datalist