1
0

2 Коммитууд a302badcfa ... 0fa2983534

Эзэн SHA1 Мессеж Огноо
  ZhaoJun 0fa2983534 Merge branch 'develop' of http://120.55.44.4:10080/xujunjie/gt_client_pad into develop 1 жил өмнө
  ZhaoJun 5f24d2e9f3 fix: 样式问题修复 1 жил өмнө

+ 3 - 13
src/pages/Home/ChemCostComparison.js

@@ -64,14 +64,14 @@ const CostComparison = () => {
           className={`password-eye ${open ? 'open' : ''}`}
         ></div>
       </PageTitle>
-      <ChemCost open={open} showTheory />
+      <ChemCost open={open} showTip />
     </PageContent>
   );
 };
 
 export default CostComparison;
 
-export const ChemCost = ({ open, showTheory = false }) => {
+export const ChemCost = ({ open, showTip = false }) => {
   const { projectId } = useParams();
 
   const [chartData, setChartData] = useState([]);
@@ -309,17 +309,7 @@ export const ChemCost = ({ open, showTheory = false }) => {
 
   return (
     <div style={{ position: 'relative' }}>
-      <div
-        style={{
-          fontSize: '0.28rem',
-          position: 'absolute',
-          top: '-0.3rem',
-          right: '0.2rem',
-          display: `${showTheory ? '' : 'none'}`,
-        }}
-      >
-        {snapshot?.resultText}
-      </div>
+      {showTip && <div className={styles.pageTip}>{snapshot?.resultText}</div>}
       <div style={{ padding: '0.2rem 0rem' }}>
         <div className="card-box">
           <div className={styles.curEnergyCost}>

+ 5 - 15
src/pages/Home/EnergyCostComparison.js

@@ -51,14 +51,14 @@ const CostComparison = () => {
           className={`password-eye ${open ? 'open' : ''}`}
         />
       </PageTitle>
-      <EnergyCost open={open} />
+      <EnergyCost open={open} showTip />
     </PageContent>
   );
 };
 
 export default CostComparison;
 
-export const EnergyCost = ({ open, detailClick }) => {
+export const EnergyCost = ({ open, detailClick, showTip }) => {
   const { projectId } = useParams();
 
   const [chartData, setChartData] = useState([]);
@@ -288,17 +288,7 @@ export const EnergyCost = ({ open, detailClick }) => {
     <div
       style={{ padding: '0.2rem', position: 'relative', marginTop: '0.1rem' }}
     >
-      <div
-        style={{
-          fontSize: '0.28rem',
-          position: 'absolute',
-          top: '-0.6rem',
-          right: '0.3rem',
-          display: `${detailClick ? 'none' : ''}`,
-        }}
-      >
-        {snapshot?.resultText}
-      </div>
+      {showTip && <div className={styles.pageTip}>{snapshot?.resultText}</div>}
       <div className="card-box" style={{ padding: '0.1rem 0' }}>
         <LineChartOutlined
           style={{
@@ -333,7 +323,7 @@ export const EnergyCost = ({ open, detailClick }) => {
               {open ? getValue(snapshot?.elec || '') : '***'}
               <span className={styles.unit}>kWh</span>
             </div>
-            <div className={styles.name}>近一小时实际用电量</div>
+            <div className={styles.name}>近一小时用电量</div>
           </div>
           <div
             className={styles.item}
@@ -352,7 +342,7 @@ export const EnergyCost = ({ open, detailClick }) => {
               {open ? curElecUsed : '***'}
               <span className={styles.unit}>kWh</span>
             </div>
-            <div className={styles.name}>当月实际用电量</div>
+            <div className={styles.name}>当月用电量</div>
           </div>
         </div>
       </div>

+ 1 - 1
src/pages/Home/EnergyCostDetail.js

@@ -217,7 +217,7 @@ export const EnergyDetail = () => {
   const loading = useMemo(() => allFacLoading, [allFacLoading]);
   return (
     <Spin spinning={loading}>
-      <div className={styles.infoContainer}>
+      <div className={`${styles.infoContainer} card-box`}>
         <div>
           <SubTitle title="全厂概览" />
           <div style={{ display: 'flex' }}>

+ 89 - 62
src/pages/Home/QualityMng.js

@@ -11,7 +11,7 @@ import {
 import { queryConditionSnapshot } from '@/services/SmartOps';
 import { UnityAction } from '@/utils/utils';
 import { useParams, useRequest } from '@umijs/max';
-import { Empty, Spin, Table } from 'antd';
+import { Empty, Select, Spin, Table } from 'antd';
 import dayjs from 'dayjs';
 import { useEffect, useMemo, useRef, useState } from 'react';
 import SubTitle from '../SmartOps/components/SubTitle';
@@ -19,46 +19,22 @@ import { getValue } from './index';
 import styles from './index.less';
 
 function Quality() {
-  const { projectId } = useParams();
-  const { data } = useRequest(queryConditionSnapshot, {
-    defaultParams: [{ project_id: projectId }],
-    pollingInterval: 10 * 1000,
-  });
-  const status = useMemo(() => {
-    switch (data?.water_quality_status) {
-      case 1:
-        return '当前水质良好';
-      case 2:
-        return '当前水质较好';
-    }
-  }, [data?.water_quality_status]);
   return (
     <PageContent closeable={false}>
       <PageTitle onReturn={() => UnityAction.sendMsg('menuItem', '首页')}>
         水质监测
       </PageTitle>
-      <div className={styles.pageTip}>{status}</div>
-      <ul className={styles.pageTop}>
-        <li>
-          <div className={styles.pageTopValue}>{getValue(data?.dtds)}</div>
-          <div>外供水电导率(µs/cm)</div>
-        </li>
-        <li>
-          <div className={styles.pageTopValue}>{getValue(data?.dph)}</div>
-          <div>外供水(PH)</div>
-        </li>
-      </ul>
-      <WaterQuality />
+      <WaterQuality showTip />
     </PageContent>
   );
 }
 
 export default Quality;
 
-export const WaterQuality = () => {
+export const WaterQuality = ({ showTip = false }) => {
   const { projectId } = useParams();
   const [currentCode, setCode] = useState(null);
-  // const [processId, setProcessId] = useState(null);
+  const [processList, setProcessList] = useState([]);
 
   const timerRef = useRef({
     s_time: dayjs().subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss'),
@@ -78,10 +54,12 @@ export const WaterQuality = () => {
   useRequest(queryProcessSection, {
     defaultParams: [projectId],
     onSuccess(res) {
-      // setProcessId(res.data[0].id);
+      setProcessList(res);
       queryCodeList(res[0].id, 2, projectId * 1);
+      return res;
     },
   });
+
   const mainRes = useRequest(
     () => {
       return queryChartListByCode(
@@ -98,6 +76,21 @@ export const WaterQuality = () => {
       manual: true,
     },
   );
+
+  const { data: snapshot } = useRequest(queryConditionSnapshot, {
+    defaultParams: [{ project_id: projectId }],
+    pollingInterval: 10 * 1000,
+  });
+
+  const status = useMemo(() => {
+    switch (snapshot?.water_quality_status) {
+      case 1:
+        return '当前水质良好';
+      case 2:
+        return '当前水质较好';
+    }
+  }, [snapshot?.water_quality_status]);
+
   const column = useMemo(() => {
     if (!currentCode) return [];
     return [
@@ -141,42 +134,76 @@ export const WaterQuality = () => {
     const code = codeList.find((item) => item.metric == name);
     if (code) setCode(code);
   };
+
+  const handleProcessChange = (val) => {
+    queryCodeList(val, 2, projectId);
+  };
+
   return (
-    <div
-      className="card-box"
-      style={{ padding: '0.2rem', marginTop: '0.1rem' }}
-    >
-      <div className="tabs" style={{ marginBottom: '0.2rem' }}>
-        {codeList?.map((item) => (
-          <div
-            key={item.metric_code}
-            onClick={() => {
-              setCode(item);
-            }}
-            className={`tabs-item ${item == currentCode ? 'active' : ''}`}
-          >
-            {item.metric}
-          </div>
-        ))}
+    <div style={{ marginTop: '0.1rem', position: 'relative' }}>
+      {showTip && <div className={styles.pageTip}>{status}</div>}
+      <div className="card-box">
+        <ul className={styles.pageTop}>
+          <li>
+            <div className={styles.pageTopValue}>
+              {getValue(snapshot?.dtds)}
+            </div>
+            <div>外供水电导率(µs/cm)</div>
+          </li>
+          <li>
+            <div className={styles.pageTopValue}>{getValue(snapshot?.dph)}</div>
+            <div>外供水(PH)</div>
+          </li>
+        </ul>
       </div>
-      <SubTitle title="数据曲线" />
-      <Spin spinning={mainRes.loading}>
-        <div style={{ height: '5rem', marginTop: '0.2rem' }}>
-          {mainRes?.data ? (
-            <ChartModule {...chartProps} onChange={onChange} />
-          ) : (
-            <Empty />
-          )}
+      <div className="card-box" style={{ padding: '0.2rem' }}>
+        <div style={{ padding: '0.2rem 0' }}>
+          <Select
+            style={{ width: '2rem' }}
+            defaultValue="全厂概览"
+            options={processList?.map((item) => {
+              return {
+                value: item.id,
+                label: item.name,
+              };
+            })}
+            onChange={handleProcessChange}
+          />
+        </div>
+        {codeList?.length > 0 && (
+          <div className="tabs" style={{ marginBottom: '0.2rem' }}>
+            {codeList?.map((item) => (
+              <div
+                key={item.metric_code}
+                onClick={() => {
+                  setCode(item);
+                }}
+                className={`tabs-item ${item === currentCode ? 'active' : ''}`}
+              >
+                {item.metric}
+              </div>
+            ))}
+          </div>
+        )}
+        <SubTitle title="数据曲线" />
+        <Spin spinning={mainRes.loading}>
+          <div style={{ height: '5rem', marginTop: '0.2rem' }}>
+            {mainRes?.data ? (
+              <ChartModule {...chartProps} onChange={onChange} />
+            ) : (
+              <Empty />
+            )}
+          </div>
+        </Spin>
+        <div style={{ marginTop: '0.3rem' }}>
+          <SubTitle title="数据列表" />
+          <Table
+            columns={column}
+            style={{ marginTop: '0.2rem' }}
+            dataSource={mainRes?.data}
+            pagination={false}
+          />
         </div>
-      </Spin>
-      <div style={{ marginTop: '0.3rem' }}>
-        <SubTitle title="数据列表" />
-        <Table
-          columns={column}
-          style={{ marginTop: '0.2rem' }}
-          dataSource={mainRes?.data}
-          pagination={false}
-        />
       </div>
     </div>
   );

+ 5 - 9
src/pages/Home/WaterAmtMng.js

@@ -10,6 +10,7 @@ import { useParams, useRequest } from '@umijs/max';
 import { Button, DatePicker, Spin, Table } from 'antd';
 import dayjs from 'dayjs';
 import { useMemo, useState } from 'react';
+import SubTitle from '../SmartOps/components/SubTitle';
 import { getValue } from './index';
 import styles from './index.less';
 
@@ -128,7 +129,7 @@ export const WaterAmt = ({ showTip }) => {
       const [s_time, e_time] = date.map((time) =>
         dayjs(time).format('YYYY-MM-DD'),
       );
-
+      setFilter(date);
       run({
         s_time: dayjs(s_time).format('YYYY-MM-DD 00:00:00'),
         e_time: dayjs(e_time).format('YYYY-MM-DD 23:59:59'),
@@ -157,12 +158,14 @@ export const WaterAmt = ({ showTip }) => {
           </ul>
         </div>
         <div className="card-box" style={{ padding: '0.2rem ' }}>
+          <SubTitle title="数据曲线" />
           <div className={styles.timeSelectBox}>
             <div style={{ fontSize: '0.3rem' }}>
               <RangePicker
                 style={{ width: '4rem' }}
                 allowClear
                 value={filter}
+                inputReadOnly
                 onChange={(time) => {
                   onSearch(time);
                 }}
@@ -198,20 +201,13 @@ export const WaterAmt = ({ showTip }) => {
               </Button>
             </div>
           </div>
-          <div className="section-title">
-            <div className="section-line"></div>
-            数据曲线
-          </div>
           <Spin spinning={loading}>
             <div style={{ height: '5rem', marginTop: 20 }}>
               <ChartModule yName="水量(t)" xData={xData} dataList={dataList} />
             </div>
           </Spin>
           <div style={{ marginTop: 30 }}>
-            <div className="section-title">
-              <div className="section-line"></div>
-              数据列表
-            </div>
+            <SubTitle title="数据列表" />
             <Table
               loading={loading}
               columns={columns}

+ 3 - 3
src/pages/Home/index.less

@@ -385,9 +385,9 @@
 }
 .pageTip {
   position: absolute;
-  top: -0.3rem;
-  right: 0.5rem;
-  font-size: 0.24rem;
+  top: -0.6rem;
+  right: 0.3rem;
+  font-size: 0.28rem;
 }
 .pageTop {
   display: flex;

+ 11 - 2
src/pages/Home/manage.less

@@ -6,7 +6,7 @@
 }
 
 .infoContainer {
-  padding: 0.2rem 0;
+  padding: 0.2rem;
 }
 
 .infoContainer > * {
@@ -60,12 +60,21 @@
     // }
   }
 }
+
+.pageTip {
+  position: absolute;
+  top: -0.6rem;
+  right: 0.3rem;
+  font-size: 0.28rem;
+}
+
 .curEnergyCost {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   align-items: center;
-  margin: 0.1rem 0.4rem 0 0.4rem;
+  margin: 0rem 0.4rem 0 0.4rem;
+  padding: 0.3rem 0;
   .item {
     width: 50%;
     padding: 0.1rem;

+ 17 - 2
src/pages/SmartOps/HistoryRecord.js

@@ -60,8 +60,9 @@ const HistoryRecord = (props) => {
       title: '时间',
       dataIndex: 'CTime',
       key: 'CTime',
+      width: '20%',
       render: (text) => {
-        return dayjs(text).format('YYYY-MM-DD HH:mm') || '--';
+        return dayjs(text).format('MM-DD HH:mm') || '--';
       },
     },
     {
@@ -109,9 +110,23 @@ const HistoryRecord = (props) => {
         return text;
       },
     },
-
+    {
+      title: '预测分析',
+      key: 'Num4',
+      render: (text) => {
+        return 0;
+      },
+    },
+    {
+      title: '经营分析',
+      key: 'Num5',
+      render: (text) => {
+        return 0;
+      },
+    },
     {
       title: '操作',
+      width: '10%',
       render: (record) => (
         <a
           onClick={() => {

+ 0 - 1
src/pages/SmartOps/index.less

@@ -55,7 +55,6 @@
       }
     }
     .middle {
-      margin: 0 0.1rem;
       position: relative;
       .in {
         width: 2.12rem;

+ 3 - 5
src/pages/SmartOps/operationManage/CostAnalysis/CostAnalysis.js

@@ -148,8 +148,9 @@ const CostAnalysis = () => {
   return (
     <div className="card-box" style={{ padding: '0.2rem' }}>
       <div>
+        <SubTitle title={'数据曲线'} fontSize="0.26rem" />
         <div className={styles.timeBtn}>
-          <RangePicker onChange={handleTimeRangeChange} />
+          <RangePicker inputReadOnly onChange={handleTimeRangeChange} />
           <Button
             type="primary"
             shape="round"
@@ -178,14 +179,11 @@ const CostAnalysis = () => {
             近一个月
           </Button>
         </div>
-      </div>
-      <div>
-        <SubTitle title={'数据曲线'} fontSize="0.26rem" />
         <div style={{ height: '3.5rem', marginBottom: '0.1rem' }}>
           {data?.chartData && <ChartModule {...data.chartData} />}
         </div>
       </div>
-      <div>
+      <div style={{ marginTop: '0.2rem' }}>
         <SubTitle title={'数据列表'} fontSize="0.26rem" />
         <Table
           loading={loading}

+ 2 - 4
src/pages/SmartOps/operationManage/index.js

@@ -36,13 +36,11 @@ const OperationManage = () => {
       label: '能耗分析',
       key: '5',
       children: showEnergyDetail ? (
-        <div
-          className="card-box"
-          style={{ padding: '0.2rem', position: 'relative' }}
-        >
+        <div style={{ padding: '0.2rem', position: 'relative' }}>
           <Button
             style={{
               position: 'absolute',
+              top: '0.2rem',
               right: '0.2rem',
               fontSize: '0.26rem',
               height: '0.5rem',