SmartBeehive/page_user/user_set.vue
2024-07-05 14:07:28 +08:00

384 lines
9.4 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="page">
<u-navbar :title="title" :border-bottom="false" :background="bgc" title-color='#000' title-size='36'
:title-bold='true' height='45' id="navbar">
</u-navbar>
<view class="tit">
<image src="https://api.ccttiot.com/smartmeter/img/static/ufvwKG3vcJYtbkf0Oeij" mode=""></image>
除螨设置
</view>
<view class="tit1">
<image src="https://api.ccttiot.com/smartmeter/img/static/utZh1saVjZgOBz3orDkL" mode=""></image>
间隔时长
</view>
<view class="set_li">
每隔<view class="ipt_box"><input type="text" class="ips" v-model="miteInterval" placeholder=" "
placeholder-class="my-placeholder" /> </view>天/次 除螨工作
</view>
<view class="tit">
<image src="https://api.ccttiot.com/smartmeter/img/static/ufvwKG3vcJYtbkf0Oeij" mode=""></image>
保护设置
</view>
<view class="tit1">
<image src="https://api.ccttiot.com/smartmeter/img/static/utZh1saVjZgOBz3orDkL" mode=""></image>
电量保护(%
</view>
<view class="set_li">
电量少于<view class="ipt_box"><input type="text" class="ips" v-model="minPower" placeholder=" "
placeholder-class="my-placeholder" /> </view>加热板/风扇停止工作
</view>
<view class="tit1">
<image src="https://api.ccttiot.com/smartmeter/img/static/utZh1saVjZgOBz3orDkL" mode=""></image>
加热(℃)
</view>
<view class="set_li">
箱外温度低于<view class="ipt_box"><input type="text" class="ips" v-model="minHeat" placeholder=" "
placeholder-class="my-placeholder" /> </view>加热板工作
</view>
<view class="set_li">
箱内高于箱外<view class="ipt_box"><input type="text" class="ips" v-model="maxHeat" placeholder=" "
placeholder-class="my-placeholder" /> </view>加热板停止工作
</view>
<view class="tit1">
<image src="https://api.ccttiot.com/smartmeter/img/static/utZh1saVjZgOBz3orDkL" mode=""></image>
风扇(℃)
</view>
<view class="set_li">
箱内温度高于<view class="ipt_box"><input type="text" class="ips" v-model="maxFan" placeholder=" "
placeholder-class="my-placeholder" /> </view>风扇工作
</view>
<!-- <view class="set_li">
箱内温度降到<view class="ipt_box"><input type="text" class="ips" v-model="code" placeholder=" "
placeholder-class="my-placeholder" /> </view>风扇停止工作
</view> -->
<view class="set_li">
CO₂浓度高于<view class="ipt_box"><input type="text" class="ips" v-model="maxCo2" placeholder=" "
placeholder-class="my-placeholder" /> </view>风扇工作
</view>
<view class="set_li">
CO₂浓度低于<view class="ipt_box"><input type="text" class="ips" v-model="minCo2" placeholder=" "
placeholder-class="my-placeholder" /> </view>风扇停止工作
</view>
<view class="tit">
<image src="https://api.ccttiot.com/smartmeter/img/static/ufvwKG3vcJYtbkf0Oeij" mode=""></image>
震动通知
</view>
<view class="tit1">
<image src="https://api.ccttiot.com/smartmeter/img/static/utZh1saVjZgOBz3orDkL" mode=""></image>
单次震动
</view>
<view class="" style="padding-left: 50rpx;padding-top: 20rpx;box-sizing: border-box;">
<u-checkbox-group>
<u-checkbox active-color="#FFCC25" @change="checkboxChange(item.type)" v-model="item.checked"
v-for="(item, index) in list" :key="index" :name="item.name">{{item.name}}</u-checkbox>
</u-checkbox-group>
</view>
<view class="tit1">
<image src="https://api.ccttiot.com/smartmeter/img/static/utZh1saVjZgOBz3orDkL" mode=""></image>
持续震动
</view>
<view class="" style="padding-left: 50rpx;padding-top: 20rpx;box-sizing: border-box;">
<u-checkbox-group>
<u-checkbox active-color="#FFCC25" @change="checkboxChanges(item.type)" v-model="item.checked"
v-for="(item, index) in lists" :key="index" :name="item.name">{{item.name}}</u-checkbox>
</u-checkbox-group>
</view>
<view class="btn_box">
<view class="btns" @click="btncz">
重置
</view>
<view class="btn1" @click="btnbc">
保存
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: " #F4FAF8",
},
title: "设置",
code: '',
list: [{
name: '短信',
disabled: false,
checked: false,
type: 1
},
{
name: '电话',
disabled: false,
checked: false,
type: 2
},
{
name: '微信',
disabled: false,
checked: false,
type: 3
}
],
lists: [{
name: '短信',
disabled: false,
checked: false,
type: 1
},
{
name: '电话',
disabled: false,
checked: false,
type: 2
},
{
name: '微信',
disabled: false,
checked: false,
type: 3
}
],
value: [],
values: [],
miteInterval: '', //除螨间隔时间(天)
minPower: '', //电量保护最低电量%
minHeat: '', //加热板开始工作的最低箱外温度℃
maxHeat: '', //加热板停止工作的箱内外温差℃
maxFan: '', //风扇开始工作的最高箱内温度℃
minCo2: '', //风扇停止工作的最低二氧化碳浓度℃
maxCo2: '', //风扇开始工作的最高二氧化碳浓度℃
}
},
onLoad() {
this.getinfo()
},
onShow() {
},
methods: {
btncz(){
this.miteInterval = ''
this.minPower = ''
this.minHeat = ''
this.maxHeat = ''
this.maxFan = ''
this.minCo2 = ''
this.maxCo2 = ''
this.list.forEach(item => {
if (item.checked) {
item.checked = false;
}
})
this.lists.forEach(item => {
if (item.checked) {
item.checked = false;
}
})
},
checkboxChange(e) {
let index = this.value.indexOf(e)
if (index > -1) {
this.value.splice(index, 1)
} else {
this.value.push(e)
}
console.log(this.value)
},
checkboxChanges(e) {
let index = this.values.indexOf(e)
if (index > -1) {
this.values.splice(index, 1)
} else {
this.values.push(e)
}
},
// 获取设置
getinfo() {
this.$u.get(`farm/userSetting/my`).then(res => {
if (res.code == 200) {
this.miteInterval = res.data.miteInterval,
this.minPower = res.data.minPower,
this.minHeat = res.data.minHeat,
this.maxHeat = res.data.maxHeat,
this.maxFan = res.data.maxFan,
this.minCo2 = res.data.minCo2,
this.maxCo2 = res.data.maxCo2
this.list.forEach(item => {
if (res.data.singleNotice.includes(item.type.toString())) {
item.checked = true;
}
})
this.value = res.data.singleNotice
this.lists.forEach(item => {
if (res.data.multipleNotice.includes(item.type.toString())) {
item.checked = true;
}
})
this.values = res.data.multipleNotice
}
})
},
btnbc() {
let data = {
miteInterval: this.miteInterval,
minPower: this.minPower,
minHeat: this.minHeat,
maxHeat: this.maxHeat,
maxFan: this.maxFan,
minCo2: this.minCo2,
maxCo2: this.maxCo2,
singleNotice: this.value,
multipleNotice: this.values
}
this.$u.put(`farm/userSetting/user`, data).then(res => {
if (res.code == 200) {
uni.showToast({
title: '保存成功',
icon: 'success',
duration: 1000
})
}else if(res.code == 401){
uni.navigateTo({
url:'/pages/login/login'
})
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
}
})
}
}
}
</script>
<style lang="scss">
page {
background-color: #F4FAF8;
}
.page {
// position: relative;
width: 750rpx;
padding: 40rpx;
.btn_box {
margin-top: 136rpx;
display: flex;
flex-wrap: nowrap;
align-items: center;
.btns {
display: flex;
align-items: center;
justify-content: center;
width: 322rpx;
height: 88rpx;
background: #FFF5D6;
border-radius: 20rpx 20rpx 20rpx 20rpx;
border: 2rpx solid #FFC107;
font-weight: 500;
font-size: 32rpx;
color: #FFC107;
}
.btn1 {
display: flex;
align-items: center;
justify-content: center;
margin-left: 30rpx;
width: 322rpx;
height: 88rpx;
background: #FFCC25;
border-radius: 20rpx 20rpx 20rpx 20rpx;
font-weight: 500;
font-size: 32rpx;
color: #3D3D3D;
}
}
.tit {
display: flex;
flex-wrap: nowrap;
align-items: center;
image {
margin-right: 22rpx;
width: 52rpx;
height: 52rpx;
}
font-weight: 600;
font-size: 36rpx;
color: #3D3D3D;
}
.tit1 {
margin-top: 32rpx;
display: flex;
flex-wrap: nowrap;
align-items: center;
image {
margin-right: 18rpx;
width: 46rpx;
height: 46rpx;
}
font-weight: 400;
font-size: 32rpx;
color: #3D3D3D;
}
.set_li {
margin-top: 34rpx;
margin-left: 104rpx;
display: flex;
flex-wrap: nowrap;
align-items: center;
font-weight: 400;
font-size: 32rpx;
color: #808080;
.ipt_box {
display: flex;
align-items: center;
justify-content: center;
margin: 0 16rpx;
// width: 98rpx;
height: 88rpx;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 8rpx 0rpx rgba(0, 0, 0, 0.15);
border-radius: 20rpx 20rpx 20rpx 20rpx;
.ips {
margin-left: 15rpx;
width: 100rpx;
}
.my-placeholder {
font-weight: 400;
font-size: 32rpx;
color: #808080;
}
}
}
}
</style>