Ver código fonte

feat保温功能增加

wzh 1 ano atrás
pai
commit
45d9bfa816
2 arquivos alterados com 205 adições e 3 exclusões
  1. 39 1
      api/device/device.js
  2. 166 2
      pages/device/detail.vue

+ 39 - 1
api/device/device.js

@@ -228,4 +228,42 @@ export function unbind(userId) {
         url: '/iot/device/unbind/' + userId,
         method: 'delete'
     })
-}
+}
+
+
+// 添加保温
+export function saveBaowenSetting(baowen) {
+    return request({
+        url: '/iot/setting/',
+        method: 'post',
+        data:baowen
+    })
+}
+
+// 修改保温
+export function editBaowenSetting(baowen) {
+    return request({
+        url: '/iot/setting/',
+        method: 'put',
+        data:baowen
+    })
+}
+
+// 保温信息
+export function getBaoWen(baowen) {
+    return request({
+        url: '/iot/setting/getInfo',
+        method: 'post',
+        data:baowen
+    })
+}
+
+
+// 取消保温
+export function cancelBaowen(baowen) {
+    return request({
+        url: '/iot/setting/cancel',
+        method: 'post',
+        data:baowen
+    })
+}

+ 166 - 2
pages/device/detail.vue

@@ -717,6 +717,15 @@
               {{jiaozhunTemp}}℃<uni-icons type="forward" size="16"></uni-icons>
             </view>
           </view>
+          <view class="prop-item" @click="showBaowenProp" v-if="firstTab">
+            <view class="prop-item-image">
+              <image :src="imgUrl+'/setting/oper_temp.png'" style="width: 100%;height:100%;"/>
+            </view>
+            <view class="prop-item-left">保温设置</view>
+            <view class="prop-item-right" >
+             <uni-icons type="forward" size="16"></uni-icons>
+            </view>
+          </view>
           <view class="prop-item" v-if="firstTab && boardType == 5">
             <view class="prop-item-image">
               <image :src="imgUrl+'/setting/current_icon6.png'" style="width: 100%;height:100%;"/>
@@ -924,6 +933,52 @@
         </view>
       </view>
     </u-popup>
+
+    <u-popup :show="baowenPopDlg" @close="closeBaowenPopDlg" mode="center"  :closeable="true" :round="10">
+      <view style="position: relative;width: 400rpx;background: none;padding:30rpx;padding-top:60rpx;">
+        <view class="control_item" style="width: 100%">
+          <image :src="imgUrl+'/detail/bg_mid.png'" style="width: 100%;height:100%;position: absolute;top:0px;"/>
+          <view class="control_item_detail">
+            <view class="control_item_left" @click="subBaowenTime(1)" style="left: 18%;">-</view>
+            <view class="control_item_center">
+              <view style="position: absolute">
+                <u-input  customStyle="width:150rpx;border:0px;" disabledColor="white"   v-model="baowenTime"></u-input>
+              </view>
+            </view>
+            <view class="control_item_center_unit" :style="unitFixedStyle">分钟</view>
+            <view class="control_item_right" style="left: 80%;" @click="addBaowenTime(1)">+</view>
+          </view>
+          <view class="control_item_title">
+            保温时间
+          </view>
+        </view>
+
+        <view class="control_item" style="width: 100%">
+          <image :src="imgUrl+'/detail/bg_mid.png'" style="width: 100%;height:100%;position: absolute;top:0px;"/>
+          <view class="control_item_detail">
+            <view class="control_item_left" @click="subBaowenTemp(1)" style="left: 18%;">-</view>
+            <view class="control_item_center">
+              <view style="position: absolute">
+                <u-input  customStyle="width:150rpx;border:0px;" disabledColor="white"   v-model="baowenTemp"></u-input>
+              </view>
+            </view>
+            <view class="control_item_center_unit" :style="unitFixedStyle">℃</view>
+            <view class="control_item_right" style="left: 80%;" @click="addBaowenTemp(1)">+</view>
+          </view>
+          <view class="control_item_title">
+            保温温度
+          </view>
+        </view>
+
+        <view>
+          <button style="background: white;" @click="addBaowenSetting" v-if="!hasBaowen">确认添加</button>
+
+          <button style="background: white;" @click="editBaowenSetting" v-if="hasBaowen">确认保存</button>
+
+          <button style="background: white;" @click="delBaowenSetting" v-if="hasBaowen">取消保温</button>
+        </view>
+      </view>
+    </u-popup>
     <u-picker :show="showModelPicker" @cancel="closeModelPicker" @confirm="confirmMode" :columns="modeList" keyName="text"></u-picker>
 
   </view>
@@ -931,7 +986,7 @@
 </template>
 
 <script>
-import { getDetail,getDeviceStatus,cacheJsonThingsModel,reportError ,getDeviceRunTime,getLatestFirmware,bingDeviceDept,editDeviceName,getDevicePlan,addDevicePlan,delDevicePlan} from '@/api/device/device.js'
+import { getDetail,getDeviceStatus,cacheJsonThingsModel,reportError ,getDeviceRunTime,getLatestFirmware,bingDeviceDept,editDeviceName,getDevicePlan,addDevicePlan,delDevicePlan,saveBaowenSetting,getBaoWen,editBaowenSetting,cancelBaowen} from '@/api/device/device.js'
 import config from '@/config'
 export default {
   data(){
@@ -1065,8 +1120,13 @@ export default {
       devicePlanInfo:null,//设备后台预约任务
       devicePlanPopDlg:false,
       deviceYuyueIngPop:false,
+      baowenPopDlg:false,
       devicePlanTime:10,
       boardStyle:"",
+      baowenTime:10,
+      baowenTemp:100,
+      hasBaowen:false,
+      baowenId:0,
     }
   },
   onLoad: function(opt) {
@@ -1141,6 +1201,74 @@ export default {
     closeliuzhuanPop(){
       this.liuzhuanPopDlg = false;
     },
+    addBaowenTime(){
+      console.log("增加保温时间")
+      this.baowenTime++;
+    },
+    subBaowenTime(){
+      console.log("减少保温时间")
+      this.baowenTime--;
+     if(this.baowenTime < 0){
+       this.baowenTime = 0;
+     }
+    },
+    subBaowenTemp(){
+      this.baowenTemp--;
+      if(this.baowenTemp<0){
+        this.baowenTemp = 1;
+      }
+      console.log("减少保温温度")
+    },
+    addBaowenTemp(){
+      console.log("增加保温温度")
+      this.baowenTemp++;
+    },
+    closeBaowenPopDlg(){
+      this.baowenPopDlg = false;
+    },
+    addBaowenSetting(){
+      let self = this;
+      let obj = {};
+      obj.baowenTemp = this.baowenTemp;
+      obj.baowenTime = this.baowenTime;
+      obj.childId = this.childId;
+      obj.productId = this.deviceInfo.productId;
+      obj.status = 0;
+      obj.deviceNo = this.deviceInfo.serialNumber;
+
+      saveBaowenSetting(obj).then(res=>{
+        let code  = res.code;
+        if(code == 200){
+          self.$modal.showToast('添加成功')
+          this.closeBaowenPopDlg();
+        }else{
+          self.$modal.showToast('已经存在保温设置')
+        }
+      });
+    },
+    editBaowenSetting(){
+      let obj = {};
+      obj.baowenTemp = this.baowenTemp;
+      obj.baowenTime = this.baowenTime;
+      obj.childId = this.childId;
+      obj.productId = this.deviceInfo.productId;
+      obj.status = 0;
+      obj.id = this.baowenId;
+      obj.deviceNo = this.deviceInfo.serialNumber;
+      editBaowenSetting(obj).then(res=>{
+        this.closeBaowenPopDlg();
+      });
+    },
+    delBaowenSetting(){
+      let obj = {};
+      obj.id = this.baowenId;
+      obj.status = 1;
+      editBaowenSetting(obj).then(res=>{
+        this.hasBaowen = false;
+        this.baowenId = 0;
+        this.closeBaowenPopDlg();
+      });
+    },
     confirmLiuzhuannCurrent(){
       if(this.setTurnCurrent<200 || this.setTurnCurrent>400){
         this.notifyError("扭力范围为200-400")
@@ -1526,6 +1654,32 @@ export default {
         },
       })
     },
+    showBaowenProp(){
+      if(!this.jianyaoIng()){
+        this.$modal.showToast('必须煎药模式下才能设置')
+        return;
+      }
+
+      let obj = {};
+      obj.childId = this.childId;
+      obj.status =0;
+      obj.deviceNo = this.deviceInfo.serialNumber;
+      getBaoWen(obj).then(res=>{
+        let data = res.data;
+        if(data != null){
+          this.baowenTime = data.baowenTime;
+          this.baowenTemp = data.baowenTemp;
+          this.baowenId = data.id;
+          this.hasBaowen = true;
+        }else{
+          this.hasBaowen = false;
+          this.baowenId = 0;
+        }
+        this.baowenPopDlg = true;
+
+      });
+
+    },
     fixStyle(){
       let self  = this;
       wx.getSystemInfo({
@@ -2229,7 +2383,17 @@ export default {
       obj2.id = "AppointmentTime";
       obj2.shadow = 0;
       arr.push(obj2);
-      this.mqttPublish(2,this.deviceInfo,arr,true)
+      this.mqttPublish(2,this.deviceInfo,arr,true);
+
+      this.cancelBaowen();
+    },
+    cancelBaowen(){
+      let obj = {};
+      obj.childId = this.childId;
+      obj.productId = this.deviceInfo.productId;
+      obj.status = 0;
+      obj.deviceNo = this.deviceInfo.serialNumber;
+      cancelBaowen(obj);
     },
     decoctControlOnOffChange(){
       let obj = {};