Browse Source

Merge branch 'develop' of http://120.55.44.4:10080/xujunjie/gt_client_pad into develop

ZhaoJun 1 year ago
parent
commit
cd83958993

+ 22 - 18
src/pages/HardwareController/AirConditioner.js

@@ -1,21 +1,26 @@
 import PageContent from '@/components/PageContent';
 import PageTitle from '@/components/PageTitle';
-import { queryConditionSnapshot } from '@/services/SmartOps';
+import { queryIotList } from '@/services/HardwareController';
 import { useParams, useRequest } from '@umijs/max';
+import { Spin } from 'antd';
 import styles from './index.less';
 
 const Work = (props) => {
   const { projectId } = useParams();
 
-  const { data, loading } = useRequest(queryConditionSnapshot, {
-    defaultParams: [{ project_id: projectId }],
-    initialData: {},
+  const { data, loading } = useRequest(queryIotList, {
+    defaultParams: [projectId],
   });
 
+  const getIconStatus = (status) => {
+    if (status == 1) return '';
+    if (status == 2) return styles.offline;
+    if (status == 3) return styles.error;
+  };
+
   return (
     <PageContent>
       <PageTitle>空调控制</PageTitle>
-      <div className={styles.desc}>当前空间&nbsp;&nbsp;温度:26 湿度:2.4%</div>
       <div className={`card-box ${styles.top}`}>
         <div className={styles.left}>
           <img
@@ -23,31 +28,30 @@ const Work = (props) => {
             src={require('@/assets/air-conditioner.png')}
           />
           <div>
-            <div className={styles.number}>23</div>
+            <div className={styles.number}>{data?.pagination?.total}</div>
             空调数量
           </div>
         </div>
         <div className={styles.right}>
           <div className={styles.row}>
-            <i className={styles.icon}></i> 在线:137
+            <i className={styles.icon}></i> 在线:{data?.online_count}
           </div>
           <div className={styles.row}>
-            <i className={`${styles.icon} ${styles.error}`}></i> 在线:137
+            <i className={`${styles.icon} ${styles.error}`}></i> 故障:{data?.fault_count}
           </div>
           <div className={styles.row}>
-            <i className={`${styles.icon} ${styles.offline}`}></i> 在线:137
+            <i className={`${styles.icon} ${styles.offline}`}></i> 离线:{data?.offline_count}
           </div>
         </div>
       </div>
-      <div className={`card-box ${styles.item}`}>
-        <i className={styles.icon}></i> 空调1
-      </div>
-      <div className={`card-box ${styles.item}`}>
-        <i className={styles.icon}></i> 空调2
-      </div>
-      <div className={`card-box ${styles.item}`}>
-        <i className={`${styles.icon} ${styles.error}`}></i> 空调3
-      </div>
+      <Spin spinning={loading}>
+        {data?.list?.map((item) => (
+          <div key={item.id} className={`card-box ${styles.item}`}>
+            <i className={`${styles.icon} ${getIconStatus(item.status)}`}></i>{' '}
+            {item.name}
+          </div>
+        ))}
+      </Spin>
     </PageContent>
   );
 };

+ 22 - 17
src/pages/HardwareController/Light.js

@@ -1,17 +1,23 @@
 import PageContent from '@/components/PageContent';
 import PageTitle from '@/components/PageTitle';
-import { queryConditionSnapshot } from '@/services/SmartOps';
+import { queryLightList } from '@/services/HardwareController';
 import { useParams, useRequest } from '@umijs/max';
+import { Spin } from 'antd';
 import styles from './index.less';
 
 const Work = (props) => {
   const { projectId } = useParams();
 
-  const { data, loading } = useRequest(queryConditionSnapshot, {
-    defaultParams: [{ project_id: projectId }],
-    initialData: {},
+  const { data, loading } = useRequest(queryLightList, {
+    defaultParams: [projectId],
   });
 
+  const getIconStatus = (status) => {
+    if (status == 1) return '';
+    if (status == 2) return styles.offline;
+    if (status == 3) return styles.error;
+  };
+
   return (
     <PageContent>
       <PageTitle>照明控制</PageTitle>
@@ -22,31 +28,30 @@ const Work = (props) => {
             src={require('@/assets/air-conditioner.png')}
           />
           <div>
-            <div className={styles.number}>23</div>
+            <div className={styles.number}>{data?.pagination?.total}</div>
             照明数量
           </div>
         </div>
         <div className={styles.right}>
           <div className={styles.row}>
-            <i className={styles.icon}></i> 在线:137
+            <i className={styles.icon}></i> 在线:{data?.online_count}
           </div>
           <div className={styles.row}>
-            <i className={`${styles.icon} ${styles.error}`}></i> 在线:137
+            <i className={`${styles.icon} ${styles.error}`}></i> 故障:{data?.fault_count}
           </div>
           <div className={styles.row}>
-            <i className={`${styles.icon} ${styles.offline}`}></i> 在线:137
+            <i className={`${styles.icon} ${styles.offline}`}></i> 离线:{data?.offline_count}
           </div>
         </div>
       </div>
-      <div className={`card-box ${styles.item}`}>
-        <i className={styles.icon}></i> 照明1
-      </div>
-      <div className={`card-box ${styles.item}`}>
-        <i className={styles.icon}></i> 照明2
-      </div>
-      <div className={`card-box ${styles.item}`}>
-        <i className={`${styles.icon} ${styles.error}`}></i> 照明3
-      </div>
+      <Spin spinning={loading}>
+        {data?.list?.map((item) => (
+          <div key={item.id} className={`card-box ${styles.item}`}>
+            <i className={`${styles.icon} ${getIconStatus(item.status)}`}></i>{' '}
+            {item.name}
+          </div>
+        ))}
+      </Spin>
     </PageContent>
   );
 };

+ 12 - 0
src/services/HardwareController.js

@@ -0,0 +1,12 @@
+import { request } from 'umi';
+
+export async function queryIotList(project_id) {
+  return request(`/api/iot/v1/aircon/list`, {
+    params: { project_id },
+  });
+}
+export async function queryLightList(project_id) {
+  return request(`/api/iot/v1/lamp/list`, {
+    params: { project_id },
+  });
+}