anxiaoxia 3 yıl önce
ebeveyn
işleme
afd80ea0c2

+ 77 - 0
src/pages/Equipment/checLampStatus.js

@@ -0,0 +1,77 @@
+import { setallLampHttp } from '@/services/ant-design-pro/equipment';
+
+let endTime = null;
+let startTime = null;
+
+// 定时调用 查询指令接口
+export const checkChangeLightStatusSuccess = (paramsArr) => {
+  if (endTime - startTime >= 5000) {
+    message.error('网络故障,请重试');
+  } else {
+    setallLampHttp(paramsArr).then((res) => {
+      return judgeChangeResponeseSuccess(res);
+    });
+  }
+};
+
+//   检查开关指令下发状态
+export const judgeChangeResponeseSuccess = (response) => {
+  return new Promise((resolve, reject) => {
+    let result = response.content[0];
+    if (result.result === 'success') {
+      if (result.state === 200 && result.exeResult === 'success') {
+        resolve({ status: 'success', data: result });
+      } else if (result.state === 500) {
+        reject();
+      } else {
+        checkChangeLightStatusSuccess();
+        resolve({ status: 'processing', data: result });
+      }
+    } else {
+      reject();
+      console.log('judgeChangeResponeseSuccess-fail');
+    }
+  });
+};
+//  开关
+export  const setallLamps = (paramsArr,fn) => {
+//   let paramsArr = [];
+//   if (type == 'total') {
+//     lampArr.forEach((item) => {
+//       paramsArr.push({
+//         id: item.id,
+//         switch: val,
+//       });
+//     });
+//   } else {
+//     paramsArr.push({ id: id, switch: val });
+//   }
+  setallLampHttp(paramsArr)
+    .then((res) => {
+      startTime = Date.now(); // 开始计时'
+      return judgeChangeResponeseSuccess(res);
+    })
+    .then(
+      (res) => {
+        switch (res.status) {
+          case 'success':
+            fn();  // 查询灯设备
+            break;
+          case 'processing':
+            // 继续查询
+            endTime = Date.now();
+            setTimeout(() => {
+              let checkParams = paramsArr;
+              checkParams.forEach((item) => {
+                item.orderSeqNum = res.data.orderSeqNum;
+              });
+              checkChangeLightStatusSuccess(paramsArr);
+            }, 20);
+            break;
+        }
+      },
+      () => {
+        message.error('操作失败,请重试');
+      },
+    );
+};

+ 10 - 5
src/pages/Equipment/components/deviceModal/curtainEq/curtainBtn.jsx

@@ -1,6 +1,8 @@
 import React, { useState, useEffect, useCallback, useRef } from 'react';
 import commonStyles from '../common.less';
 import { equipImageMap } from '@/config/image.js';
+import { setEquipeHttp } from '@/services/ant-design-pro/equipment';
+
 const { curtain_close_icon_row, curtain_open_icon_row } = equipImageMap;
 
 export default ({ id, isTotal, preTime, changePreTime, changeCurtainTex, curtainArr }) => {
@@ -9,10 +11,10 @@ export default ({ id, isTotal, preTime, changePreTime, changeCurtainTex, curtain
   const [count, setCount] = useState();
   let setTimer = useRef(null);
   const sendData = (setType, id) => {
-    let paramsArr = [];
+    let arr = [];
     if (isTotal) {
       curtainArr.forEach((item) => {
-        paramsArr.push({
+        arr.push({
           equipmentCategory: 'CFSSES',
           infoCode: setType,
           value: 1,
@@ -27,15 +29,18 @@ export default ({ id, isTotal, preTime, changePreTime, changeCurtainTex, curtain
         infoCode: setType, // 窗帘开设定:EquipOnSet 窗帘关设定:EquipOffSet
         value: 1, // 窗帘 1 移动/停止
       };
-      paramsArr.push(params);
+      arr.push(params);
     }
-    console.log(paramsArr, 'paramsArrparamsArr');
+    console.log(arr, 'paramsArrparamsArr');
+    return arr;
   };
   const handleCurtain = (setType, id, index) => {
     const nowTime = Date.now();
     if (nowTime - preTime <= 2000) return; // 请求间隔 2秒
     changePreTime(Date.now());
-    sendData(setType, id);
+    const paramsArr = sendData(setType, id);
+    console.log(paramsArr, '1111');
+    setEquipeHttp(paramsArr);
     if (setType == 'EquipOffSet') {
       setDownFlag(true);
       setUpFlag(false);

+ 37 - 17
src/pages/Equipment/components/deviceModal/lampEq/index.jsx

@@ -4,14 +4,15 @@ import styles from './index.less';
 import commonStyles from '../common.less';
 import { equipImageMap } from '@/config/image.js';
 import AnSwitch from '../anSwitch';
-import { getLampHttp, getStatusHttp } from '@/services/ant-design-pro/equipment';
+import { getLampHttp, getStatusHttp, setallLampHttp } from '@/services/ant-design-pro/equipment';
+import { setallLamps } from '@/pages/Equipment/checLampStatus.js';
 const { lamp_open, lamp_close, expend_down, expend_up } = equipImageMap;
 export default ({ spaceId }) => {
   const [isMore, setIsMore] = useState(false);
   const [isOpen, setIsOpen] = useState(false); // 12 开, 10关
-  const [lampArr, setLampArr] = useState([]); // 12 开, 10关
-  const startTime = null;
-  const endTime = null;
+  const [lampArr, setLampArr] = useState([]);
+  let startTime = null;
+  let endTime = null;
   const startLightsStatusTimer = useRef(null);
   const getLamp = () => {
     // startLightsStatusTimer.current = setInterval(() => {
@@ -35,13 +36,28 @@ export default ({ spaceId }) => {
     clearInterval(startLightsStatusTimer.current);
     setFlagSvg(!flagSvg);
   }
+  const changeSwitch = (val, type, id) => {
+    let paramsArr = [];
+    if (type == 'total') {
+      lampArr.forEach((item) => {
+        paramsArr.push({
+          id: item.id,
+          switch: val,
+        });
+      });
+    } else {
+      paramsArr.push({ id: id, switch: val });
+    }
+    debugger;
+    setallLamps(paramsArr, getLamp);
+  };
+  /*
   // 定时调用 查询指令接口
   const checkChangeLightStatusSuccess = (paramsArr) => {
     if (endTime - startTime >= 5000) {
-      //   wx.hideLoading();
       message.error('网络故障,请重试');
     } else {
-      getStatusHttp(paramsArr).then((res) => {
+      setallLampHttp(paramsArr).then((res) => {
         return judgeChangeResponeseSuccess(res);
       });
     }
@@ -53,11 +69,14 @@ export default ({ spaceId }) => {
       if (result.result === 'success') {
         if (result.state === 200 && result.exeResult === 'success') {
           resolve({ status: 'success', data: result });
-        } else if (result.exeResult === 'processing:rcvd' || result.state === 202) {
-          resolve({ status: 'processing', data: result });
+        } else if (result.state === 500) {
+          reject();
         } else {
+          checkChangeLightStatusSuccess();
+          resolve({ status: 'processing', data: result });
         }
       } else {
+        reject();
         console.log('judgeChangeResponeseSuccess-fail');
       }
     });
@@ -75,26 +94,27 @@ export default ({ spaceId }) => {
     } else {
       paramsArr.push({ id: id, switch: val });
     }
-    console.log(paramsArr, 'paramsArr');
     setallLampHttp(paramsArr)
       .then((res) => {
         startTime = Date.now(); // 开始计时'
-        clearInterval(startLightsStatusTimer.current); // 灯设备
-        return judgeChangeResponeseSuccess(res, paramsArr);
+        return judgeChangeResponeseSuccess(res);
       })
       .then(
         (res) => {
           switch (res.status) {
             case 'success':
               getLamp();
+              break;
             case 'processing':
               // 继续查询
-              //   wx.showLoading({
-              //     title: '加载中...',
-              //     mark: true,
-              //   });
               endTime = Date.now();
-              checkChangeLightStatusSuccess(paramsArr);
+              setTimeout(() => {
+                let checkParams = paramsArr;
+                checkParams.forEach((item) => {
+                  item.orderSeqNum = res.data.orderSeqNum;
+                });
+                checkChangeLightStatusSuccess(paramsArr);
+              }, 20);
               break;
           }
         },
@@ -103,7 +123,7 @@ export default ({ spaceId }) => {
         },
       );
   };
-
+  */
   return (
     <div className={commonStyles.box}>
       <div className={commonStyles.content}>

+ 45 - 31
src/services/ant-design-pro/equipment.js

@@ -8,33 +8,32 @@ function commonParams() {
     //   &userId=9a1ecfbacb6b4f249bf2dd3ec7793ead`;
 }
 function getProjectId() {
-    return 'Pj1101080259'
+  return 'Pj1101080259';
 }
 
 //窗帘  设置设备
-// function setEquipeHttp(params) {
-//   return $http({
-//     serverSp: config.brsgServer.duoduoUrl,
-//     url: `/server/object/eqp/infocode/set?${commonParams()}`,
-//     method: 'POST',
-//     isNotShowErrorToast: true,
-//     errorSave: true,
-//     data: JSON.stringify(params),
-//   });
-// }
+export const setEquipeHttp = (params)=> {
+  return $http({
+    serverSp: config.brsgServer.duoduoUrl,
+    url: `/server/object/eqp/infocode/set?${commonParams()}`,
+    method: 'POST',
+    isNotShowErrorToast: true,
+    errorSave: true,
+    data: JSON.stringify(params),
+  });
+}
 
 //窗帘 获取设备
 export const getObjectDataEqpGroupHttp = (params) => {
-    return request(`/server/object/objectDataEqpGroup/query?${commonParams()}`, {
-        method: 'POST',
-        isNotShowErrorToast: true,
-        errorSave: true,
-        data: JSON.stringify({ ...params }),
-        headers: {
-            'Content-Type': 'application/json',
-        },
-    });
-};
+  return request(`/server/object/objectDataEqpGroup/query?${commonParams()}`, {
+    method: 'POST',
+    isNotShowErrorToast: true,
+    errorSave: true,
+    data: JSON.stringify(params),
+  });
+}
+
+
 
 // 灯的状态
 export const getLampHttp = (params) => {
@@ -48,19 +47,34 @@ export const getLampHttp = (params) => {
     });
 };
 
+
+// 批量 开关灯
+export const setallLampHttp = (params) => {
+  return request(`/server/light/onoff/set?${commonParams()}`, {
+    method: 'POST',
+    isNotShowErrorToast: true,
+    errorSave: true,
+    data: JSON.stringify(params),
+    headers: {
+      'Content-Type': 'application/json',
+    },
+  });
+};
+
 // 开关失败时 定时查询灯状态
 export const getStatusHttp = (params) => {
-    return request(`/server/light/onoff/setSatus?${commonParams()}`, {
-        method: 'POST',
-        isNotShowErrorToast: true,
-        errorSave: true,
-        data: JSON.stringify(params),
-        headers: {
-            'Content-Type': 'application/json',
-        },
-    });
+  return request(`/server/light/onoff/setSatus?${commonParams()}`, {
+    method: 'POST',
+    isNotShowErrorToast: true,
+    errorSave: true,
+    data: JSON.stringify(params),
+    headers: {
+      'Content-Type': 'application/json',
+    },
+  });
 };
 
+
 //  空调 - 调节文案/空调信息
 export const getFeedbackDocumentsHttp = (params) => {
     return request(`/server/custom/feedback/documents?${commonParams()}`, {
@@ -110,4 +124,4 @@ export const changeAllAirHttp = (body) => {
             'Content-Type': 'application/json',
         },
     });
-};
+};