xujunjie 1 سال پیش
والد
کامیت
0d07232202
5فایلهای تغییر یافته به همراه158 افزوده شده و 5 حذف شده
  1. 16 0
      src/global.less
  2. 33 0
      src/pages/HardwareController/index.js
  3. 19 5
      src/pages/Home/index.js
  4. 66 0
      src/pages/Menu/index.js
  5. 24 0
      src/pages/Menu/index.less

+ 16 - 0
src/global.less

@@ -123,3 +123,19 @@ input[type='reset'] {
     background-image: url('@/assets/icon-eye2.png');
   }
 }
+*::-webkit-scrollbar {
+  width: 6px;
+  height: 6px;
+}
+
+*::-webkit-scrollbar-thumb {
+  background-color: #999;
+}
+
+*::-webkit-scrollbar-thumb:hover {
+  background-color: #666;
+}
+
+*::-webkit-scrollbar-track {
+  background-color: #eee;
+}

+ 33 - 0
src/pages/HardwareController/index.js

@@ -0,0 +1,33 @@
+import PageContent from '@/components/PageContent';
+import PageTitle from '@/components/PageTitle';
+import { history, useParams } from '@umijs/max';
+import styles from './index.less';
+
+const HardwareController = (props) => {
+  const { projectId } = useParams();
+
+  return (
+    <PageContent>
+      <PageTitle>智能管控</PageTitle>
+
+      <div className={`card-box ${styles.item}`}>工艺监控</div>
+      <div
+        className={`card-box ${styles.item}`}
+        onClick={() =>
+          history.push(`/hardware-controller/air-conditioner/${projectId}`)
+        }
+      >
+        空调监控
+      </div>
+      <div
+        className={`card-box ${styles.item}`}
+        onClick={() => history.push(`/hardware-controller/light/${projectId}`)}
+      >
+        照明监控
+      </div>
+      <div className={`card-box ${styles.item}`}>室内定位</div>
+    </PageContent>
+  );
+};
+
+export default HardwareController;

+ 19 - 5
src/pages/Home/index.js

@@ -1,6 +1,8 @@
-import { queryConditionSnapshot, queryEnergy } from '@/services/SmartOps';
+import { getComparisonData } from '@/services/OperationManagement';
+import { queryConditionSnapshot } from '@/services/SmartOps';
 import { LoadingOutlined } from '@ant-design/icons';
 import { connect, history, useParams, useRequest } from '@umijs/max';
+import dayjs from 'dayjs';
 import { useEffect } from 'react';
 import CircleScore from '../Smart/components/CircleScore';
 import styles from './index.less';
@@ -176,9 +178,21 @@ const Electric = (props) => {
 // 药耗监测
 const Medicine = () => {
   const { projectId } = useParams();
+  const time = dayjs().format('YYYY-MM');
 
-  const { data } = useRequest(queryEnergy, {
-    defaultParams: [Number(projectId)],
+  const { data } = useRequest(getComparisonData, {
+    defaultParams: [
+      {
+        project_id: projectId,
+        start: time,
+        end: time,
+        type: 1,
+        flag: 1,
+      },
+    ],
+    formatResult(res) {
+      return res[0];
+    },
   });
   return (
     <Box
@@ -187,8 +201,8 @@ const Medicine = () => {
     >
       <ul>
         <li>
-          <div className={styles.value}>{data?.medicine}kg</div>
-          <div className={styles.name}>总药耗</div>
+          <div className={styles.value}>{data?.value?.toFixed(2) || '-'}元</div>
+          <div className={styles.name}>当月吨水药成本</div>
         </li>
       </ul>
     </Box>

+ 66 - 0
src/pages/Menu/index.js

@@ -0,0 +1,66 @@
+import { useParams } from '@umijs/max';
+import { useState } from 'react';
+import styles from './index.less';
+
+const menuList = [
+  {
+    name: '首页',
+    path: (projectId) => `/home/${projectId}`,
+  },
+  {
+    name: '工况管理',
+    path: (projectId) => `/smart/work/${projectId}`,
+  },
+  {
+    name: '系统自检',
+    path: (projectId) => `/self-inspection/${projectId}`,
+  },
+  {
+    name: '设备管理',
+    path: (projectId) => `/device/${projectId}`,
+  },
+  {
+    name: '安全管理',
+    path: (projectId) => ``,
+  },
+  {
+    name: '任务管理',
+    path: (projectId) => `/task-manage/${projectId}`,
+  },
+  {
+    name: '智能监控',
+    path: (projectId) => `/hardware-controller/${projectId}`,
+  },
+  {
+    name: '数字孪生',
+  },
+];
+
+function Menu() {
+  const { projectId } = useParams();
+  const [active, setActive] = useState('首页');
+  const handleClick = (item) => {
+    setActive(item.name);
+    const path = item?.path(projectId);
+    // history.push(path);
+    console.log(path);
+  };
+
+  return (
+    <div className={styles.menu}>
+      {menuList.map((item) => (
+        <div
+          key={item.name}
+          className={`${styles.menuItem} ${
+            active == item.name ? styles.active : ''
+          }`}
+          onClick={() => handleClick(item)}
+        >
+          {item.name}
+        </div>
+      ))}
+    </div>
+  );
+}
+
+export default Menu;

+ 24 - 0
src/pages/Menu/index.less

@@ -0,0 +1,24 @@
+.menu {
+  display: flex;
+  align-items: center;
+  width: max-content;
+  overflow-x: auto;
+  height: calc(100vh - 6px);
+}
+.menuItem {
+  padding: 20px;
+  color: #333;
+  font-size: 28px;
+  cursor: pointer;
+
+  &.active {
+    color: #000;
+    font-weight: bold;
+  }
+}
+
+:global {
+  #root {
+    min-height: auto;
+  }
+}