This commit is contained in:
邱贞招 2025-02-19 09:47:48 +08:00
parent b76441fe3a
commit 019eb184f3
3 changed files with 1986 additions and 494 deletions

View File

@ -197,14 +197,6 @@
v-hasPermi="['device:device:remove']"
>删除</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-alarm-clock"
@click="handleclock(scope.row)"
v-hasPermi="['device:device:remove']"
>定时</el-button
>
</template>
</el-table-column>
</el-table>
@ -323,229 +315,13 @@
<hr style="border-style: groove" />
<el-col :span="24">
<!-- 定时浇水 -->
<el-col :span="12" class="col-style">
<el-form-item
class="el-form-item"
label="定时"
label-width="60px"
prop="regularWatering"
><!-- 浇水规则json -->
<el-switch
v-model="form.regularWatering"
class="drawer-switch switch-margin"
active-color="#13ce66"
/>
</el-form-item>
<div class="fontdesc margin-40px">按照间隔时间进行定时浇水</div>
<div class="div1">
<span class="span1">启动时间</span>
<span class="span3"></span>
<el-input-number
class="span2"
size="mini"
v-model="form.regularWateringJsonObj.startMin"
></el-input-number>
<span class="span3"></span>
<el-input-number
class="span2"
size="mini"
v-model="form.regularWateringJsonObj.startHour"
></el-input-number>
</div>
<div class="div1">
<span class="span1">喷洒时间</span>
<span class="span3"></span>
<el-input-number
class="span2"
size="mini"
v-model="form.sprayTimeSec"
></el-input-number>
<span class="span3"></span>
<el-input-number
class="span2"
size="mini"
v-model="form.sprayTimeMin"
></el-input-number>
</div>
<div class="div1 font11">
<span
>单次浇水时间不可超过20分钟防止电机过度发热浇水量大可缩短浇水间隔时间</span
>
</div>
</el-col>
<!-- 智能土壤湿度 -->
<el-col :span="12" class="col-style">
<el-form-item
label="智能土壤湿度"
class="margin-40px el-form-item"
label-width="100px"
prop="soilMoistureOpen"
>
<el-switch
v-model="form.soilMoisture"
class="drawer-switch switch-margin"
active-color="#13ce66"
/>
</el-form-item>
<div class="fontdesc margin-40px">开启设备将自动调整土壤湿度</div>
<span class="margin-5px margin-40px">启动土壤湿度</span>
<el-slider
v-model="form.soilMoistureOpen"
class="margin-5px margin-40px"
>
</el-slider>
<span class="margin-5px margin-40px">停止土壤湿度</span>
<el-slider
v-model="form.soilMoistureClose"
class="margin-5px margin-40px"
>
</el-slider>
</el-col>
<!-- 脉冲模式 -->
<el-col :span="12" class="col-style">
<el-form-item
class="el-form-item"
label="脉冲模式"
prop="pulseMode"
>
<el-switch
v-model="form.pulseMode"
class="drawer-switch switch-margin"
active-color="#13ce66"
/>
</el-form-item>
<div class="fontdesc margin-40px">开启脉冲将会浇水停止相互循环</div>
<div class="div1">
<span class="span1">喷洒时间</span>
<span class="span3"></span>
<el-input-number
class="span2"
size="mini"
v-model="form.pulseModeParamObj.sprayTime"
></el-input-number>
</div>
<div class="div1">
<span class="span1">间隔时间</span>
<span class="span3"></span>
<el-input-number
class="span2"
size="mini"
v-model="form.pulseModeParamObj.intervalTime"
></el-input-number>
</div>
</el-col>
<!-- 水流强度 -->
<el-col :span="12" class="col-style">
<el-form-item
class="el-form-item"
label="水流强度"
label-width="90px"
prop="waterIntensity"
>
<el-switch
v-model="form.waterIntensitySwitch"
class="drawer-switch switch-margin"
active-color="#13ce66"
/>
</el-form-item>
<div class="fontdesc margin-40px">水流强度分为5档</div>
<div class="fontdesc margin-40px">当前水流强度分为{{form.waterIntensity}}</div>
<el-slider
:max="5"
v-model="form.waterIntensity"
:step="1"
:min="1"
show-stops
class="margin-40px switch-water"
>
</el-slider>
</el-col>
<!-- 日期选择 -->
<!-- <el-col :span="12" class="col-style">
<el-form-item
class="el-form-item"
label="浇水日期"
label-width="90px"
prop="waterIntensity"
></el-form-item>
<div class="fontdesc margin-40px">浇水循环日期</div>
<div class="day" style="padding-left: 20px">
<div class="title">
<span
v-for="(item, index) in daytext"
:key="index"
style="display: inline-block; margin-right: 22px"
>{{ item }}</span
>
</div>
<ul style="list-style: none; display: flex">
<li
v-for="(item, index) in weekady"
:key="index"
style="width: 40px; height: 40px"
:class="{ activeli: activeDays[index] }"
@click="btnweek(item, index)"
>
{{ item }}
</li>
</ul>
</div>
</el-col> -->
<!-- <el-col :span="12" style="width:50%,height:200px">
<div class="kongb"></div>
</el-col> -->
<!-- 息屏 -->
<el-col :span="12">
<el-form-item
label="息屏"
prop="screenRestTime"
class="margin-top20"
>
<el-select
v-model="form.screenRestTime"
placeholder="请选择息屏时间"
>
<el-option
v-for="dict in dict.type.as_screen_rest_time"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="手动浇水"
prop="wateringSwitch"
class="margin-top20"
>
<el-switch
v-model="wateringSwitch"
active-value="1"
inactive-value="0"
@change="handleWatering()"
class="drawer-switch switch-margin"
active-color="#13ce66"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-col>
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-col>
</el-form>
<div slot="footer" class="dialog-footer">
@ -553,216 +329,6 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 定时弹框 -->
<div class="dingshibox" v-if="dingshiflag">
<div
class="qx"
style="
text-align: right;
padding-top: 10px;
padding-right: 10px;
display: flex;
justify-content: space-between;
"
>
<el-button type="primary" style="margin-left: 10px" @click="addbtntj"
>添加定时</el-button
>
<a href="javascript:;" @click="btnqx">X</a>
</div>
<div class="list">
<ul>
<li v-for="(item, index) in list" :key="index">
<div class="lt" @click="editds(item, index)">
<div class="tltle" style="font-size: 24px">
{{ item.startTime }} <span style="font-size: 18px;color:#ccc">{{ item.mode == 1 ? '单次浇水' : '循环浇水' }}</span>
</div>
<span>{{ item.displayedDays[index] }}</span>
<span
style="
width: 2px;
height: 12px;
display: inline-block;
background-color: #ccc;
margin: 0 15px;
"
></span>
<span
>{{ item.minutes }}{{
item.seconds < 10 ? "0" + item.seconds : item.seconds
}}</span
>
</div>
<div class="rt">
<el-button
type="danger"
:plain="true"
@click="onCheckboxChange(item)"
> </el-button
>
</div>
</li>
</ul>
</div>
<div class="anniu">
<el-button type="primary" @click="btnqx"> </el-button>
<el-button @click="btnqx"> </el-button>
</div>
</div>
<!-- 新增定时 -->
<div class="adddingshi" v-if="addflag">
<el-form ref="form" :model="sizeForm" label-width="80px" size="mini">
<el-form-item label="启动时间">
<el-col :span="11">
<el-time-picker
placeholder="选择时间"
v-model="sizeForm.date1"
style="width: 200px"
></el-time-picker>
</el-col>
</el-form-item>
<el-form-item label="浇水时长">
<el-col :span="11">
<el-time-picker
placeholder="选择时间"
v-model="sizeForm.date2"
style="width: 200px"
></el-time-picker>
</el-col>
</el-form-item>
<el-form-item label="定时模式">
<el-select
v-model="sizeForm.region"
placeholder="请选择"
style="width: 200px"
>
<el-option label="单次浇水" value="1"></el-option>
<el-option label="循环浇水" value="2"></el-option>
</el-select>
</el-form-item>
<div class="circulate">
<div class="circulatetext">
<div class="">浇水循环日期</div> <div style="font-size: 18px;">全选: <input style="width:20px;height:20px;vertical-align: middle;" type="checkbox" v-model="checkedval" @change="inpqx"></div>
</div>
<div class="circulateday">
{{ dayyi }} {{ dayer }} {{ daysan }} {{ daysi }} {{ daywu }}
{{ dayliu }} {{ dayri }}
</div>
<div class="circulatelist">
<span @click="btnyi(index)" :class="yiindex == 1 ? 'active' : ''"
></span
>
<span @click="btner(index)" :class="erindex == 1 ? 'active' : ''"
></span
>
<span @click="btnsan(index)" :class="sanindex == 1 ? 'active' : ''"
></span
>
<span @click="btnsi(index)" :class="siindex == 1 ? 'active' : ''"
></span
>
<span @click="btnwu(index)" :class="wuindex == 1 ? 'active' : ''"
></span
>
<span @click="btnliu(index)" :class="liuindex == 1 ? 'active' : ''"
></span
>
<span @click="btnri(index)" :class="riindex == 1 ? 'active' : ''"
></span
>
</div>
</div>
<el-form-item size="large">
<el-button type="primary" :plain="true" @click="btnadd"
>确定添加</el-button
>
<el-button @click="addqutj">取消</el-button>
</el-form-item>
</el-form>
</div>
<!-- 新增定时结束 -->
<!-- 修改定时 -->
<div class="adddingshi" v-if="addflag2">
<div style="margin-bottom: 10px;">
<span style="margin-right: 10px;">启动时间</span>
<el-time-picker
v-model="value1"
:picker-options="{
selectableRange: '00:00:00 - 23:59:59'
}"
placeholder="请选择时间"></el-time-picker>
<!-- </el-time-picker>-->
</div>
<div style="margin-bottom: 10px;">
<span style="margin-right: 10px;">浇水时长</span>
<el-time-picker
v-model="value2"
:picker-options="{
selectableRange: '00:00:00 - 23:59:59'
}"
placeholder="请选择时间"></el-time-picker>
<!-- </el-time-picker>-->
</div>
<div style="margin-bottom: 20px;">
<span style="margin-right: 10px;" >定时模式</span>
<el-select v-model="value" placeholder="请选择" style="width: 220px;">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<el-form ref="form" :model="sizeForm" label-width="80px" size="mini">
<div class="circulate">
<div class="circulatetext">
<div class="">浇水循环日期</div><div style="font-size: 18px;">全选: <input style="width:20px;height:20px;vertical-align: middle;" type="checkbox" v-model="checkedval" @change="inpqx"></div>
</div>
<div class="circulateday">
{{ dayyi }} {{ dayer }} {{ daysan }} {{ daysi }} {{ daywu }}
{{ dayliu }} {{ dayri }}
</div>
<div class="circulatelist">
<span @click="btnyi(index)" :class="yiindex == 1 ? 'active' : ''"
></span
>
<span @click="btner(index)" :class="erindex == 1 ? 'active' : ''"
></span
>
<span @click="btnsan(index)" :class="sanindex == 1 ? 'active' : ''"
></span
>
<span @click="btnsi(index)" :class="siindex == 1 ? 'active' : ''"
></span
>
<span @click="btnwu(index)" :class="wuindex == 1 ? 'active' : ''"
></span
>
<span @click="btnliu(index)" :class="liuindex == 1 ? 'active' : ''"
></span
>
<span @click="btnri(index)" :class="riindex == 1 ? 'active' : ''"
></span
>
</div>
</div>
<el-form-item size="large">
<el-button type="primary" :plain="true" @click="btnedit" >确定修改</el-button
>
<el-button @click="addqutjedit">取消</el-button>
</el-form-item>
</el-form>
</div>
<!-- 修改定时结束 -->
<div class="mask" v-if="maskflag"></div>
</div>
</template>
@ -1295,25 +861,6 @@ export default {
//
reset() {
this.form = {
sprayTimeMin: null, //
sprayTimeSec: null, //
/**1.定时浇水开关*/
//json {"intervalTime":{"hour":1,"min":1},"sprayTime":{"min":1,"sec":1}}
regularWateringJsonObj: {
startHour: null,
startMin: null,
sprayTime: null,
},
regularWateringJson: null,
/**2.智能土壤湿度开关*/
soilMoisture: false,
/**3.脉冲模式开关*/
// {"sprayTime":1,"endTime":1}
pulseModeParamObj: {
sprayTime: null,
intervalTime: null,
},
pulseModeParam: null,
/**3.水流强度开关*/
waterIntensitySwitch: false,
@ -1445,20 +992,6 @@ export default {
this.getInitData();
getDevice(deviceId).then((response) => {
this.form = response.data;
/** 参数解析成对象*/
this.form.pulseModeParamObj = JSON.parse(this.form.pulseModeParam);
this.form.regularWateringJsonObj = JSON.parse(
this.form.regularWateringJson
);
const sprayTime = this.form.regularWateringJsonObj.sprayTime;
this.form.sprayTimeMin = Math.trunc(sprayTime / 60);
this.form.sprayTimeSec = sprayTime % 60;
this.form.regularWatering = JSON.parse(this.form.regularWatering);
this.form.pulseMode = JSON.parse(this.form.pulseMode);
this.form.soilMoisture = JSON.parse(this.form.soilMoisture);
this.form.waterIntensitySwitch = JSON.parse(
this.form.waterIntensitySwitch
);
this.open = true;
this.title = "修改设备";
});
@ -1480,25 +1013,6 @@ export default {
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.form.regularWateringJsonObj.sprayTime =
this.form.sprayTimeMin * 60 + this.form.sprayTimeSec;
// this.form.pulseModeParam = JSON.stringify(this.form.pulseModeParamObj);
// console.log(JSON.stringify(this.form.pulseModeParamObj.jg_sec));
if(JSON.stringify(this.form.pulseModeParamObj.sprayTime) && JSON.stringify(this.form.pulseModeParamObj.intervalTime)){
this.form.pulseModeParamObj.jg_sec = this.convertSecondsToString(JSON.stringify(this.form.pulseModeParamObj.sprayTime))
this.form.pulseModeParamObj.js_sec = this.convertSecondsToString(JSON.stringify(this.form.pulseModeParamObj.intervalTime))
this.form.pulseModeParam = JSON.stringify(this.form.pulseModeParamObj)
}else{
this.form.pulseModeParamObj.jg_sec = this.convertSecondsToString(JSON.stringify(this.form.pulseModeParamObj.jg_sec))
this.form.pulseModeParamObj.js_sec = this.convertSecondsToString(JSON.stringify(this.form.pulseModeParamObj.js_sec))
this.form.pulseModeParam = JSON.stringify(this.form.pulseModeParamObj)
}
this.form.regularWateringJson = JSON.stringify(
this.form.regularWateringJsonObj
);
this.form.week = this.weeknumber;
if (this.form.deviceId != null) {
updateDevice(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
@ -1559,7 +1073,6 @@ export default {
);
},
addqutj() {
// this.addlist = [];
this.addflag = false;
this.sizeForm.date1 = "";
this.sizeForm.date2 = "";

File diff suppressed because it is too large Load Diff

View File

@ -486,6 +486,9 @@ public class AsDeviceServiceImpl extends ServiceImpl<AsDeviceMapper, AsDevice> i
throw new ServiceException("该设备已经绑定用户,请先解绑!");
}
device.setUserId(asDevice.getUserId());
AsUser asUser = asUserService.selectUserById(asDevice.getUserId());
ServiceUtil.assertion(ObjectUtils.isEmpty(asUser), "用户不存在!");
device.setUserName(asUser.getUserName());
device.setBluetoothId(asDevice.getBluetoothId());
device.setBluetoothName(asDevice.getBluetoothName());
int i = asDeviceMapper.updateAsDevice(device);