Bläddra i källkod

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

ZhaoJun 1 år sedan
förälder
incheckning
6a8cbc1de7

+ 9 - 2
src/models/eqSelfInspection.js

@@ -194,20 +194,27 @@ export default {
         data.extendWarningAllData = arr;
         data.extendWarningData =
           arr?.filter((item) => item.Status === 2 || item.Status === 1) || [];
-        data.extendWarningNum = arr?.filter((item) => item.Status === 1)?.length || 0;
+        data.extendWarningNum =
+          arr?.filter((item) => item.Status === 1)?.length || 0;
 
+        //获取液位检测异常数量
+        const errorNum = data.FluidLevelList?.filter(
+          (item) => item.status == 1,
+        );
         let num = 0;
         if (data?.extendWarningData?.length > 0) num += 1;
         if (data?.sensorWaringNum > 0) num += 1;
         if (data?.dumuList?.length > 0) num += 1;
         if (data?.FaultAnalysis?.length > 0) num += 1;
+        if (errorNum?.length > 0) num += errorNum;
         data.warningTotalNum = num;
 
         data.patrolStatus = data?.extendWarningNum?.length > 0 ? 1 : 0;
         data.faultAnalysisStatus = data?.FaultAnalysis?.length > 0 ? 1 : 0;
         // data.secureStatus =
         //   data?.dumuList?.length > 0 || data?.sensorWaringNum > 0 ? 1 : 0;
-        data.secureStatus = data?.dumuList?.length > 0 ? 1 : 0;
+        data.secureStatus =
+          data?.dumuList?.length > 0 || errorNum?.length > 0 ? 1 : 0;
         let secureChild = [];
         let dumuStatus = 0;
         if (data?.dumuList?.length > 0) {

+ 195 - 0
src/pages/EqSelfInspection/components/Detail.js

@@ -174,6 +174,16 @@ function Detail(props) {
             userList={userList}
             title={<ModuleTitle title="环境异常" />}
           ></ReportCom>
+          {/* 液位异常 */}
+          <LiquidLevelCom
+            sendMessageToUnity={sendMessageToUnity}
+            select={select}
+            allData={data?.FluidLevelList}
+            key="liquid"
+            type={'liquid'}
+            userList={userList}
+            title={<ModuleTitle title="液位异常" />}
+          />
 
           {/* 安防检测异常 */}
           <ReportDumCom
@@ -761,6 +771,191 @@ function ReportCom(props) {
   );
 }
 
+export function LiquidTable(props) {
+  const { onClickItem, data = {}, items, select, type } = props;
+  const { ProjectId, Id } = data;
+  const [loading, setLoading] = useState(false);
+  const [currentItem, setCurrentItem] = useState({});
+
+  const columns = [
+    {
+      title: '设备名称',
+      width: '25%',
+      dataIndex: 'device_name',
+    },
+    {
+      title: '液位数',
+      width: '20%',
+      dataIndex: 'origin_value',
+    },
+    {
+      title: '差值',
+      width: '16%',
+      dataIndex: 'value',
+    },
+    {
+      title: '设定值范围',
+      width: '30%',
+      render: (record) => (
+        <ThresholdDetail
+          current={record.value || 0}
+          data={{
+            JsonNumThreshold: record?.json_num_threshold,
+            Type: record.type || 2,
+          }}
+        />
+      ),
+    },
+    {
+      title: '状态',
+      width: '13%',
+      dataIndex: 'status',
+      render: (status) => {
+        switch (status) {
+          case -1:
+          case 0:
+            return (
+              <div>
+                <i
+                  className={styles.iconStatus}
+                  style={{ background: '#12CEB3' }}
+                ></i>
+                正常
+              </div>
+            );
+          case 1:
+            return (
+              <div>
+                <i
+                  className={styles.iconStatus}
+                  style={{ background: '#FFE26D' }}
+                ></i>
+                异常
+              </div>
+            );
+          case 2:
+            return (
+              <div>
+                <i
+                  className={styles.iconStatus}
+                  style={{ background: '#FFE26D' }}
+                ></i>
+                警告
+              </div>
+            );
+        }
+      },
+    },
+  ];
+  const handleClickItem = (data) => {
+    onClickItem(`DeviceTable-${data.device_code}`, {
+      type: data.status,
+      deviceCode: data.device_code,
+    });
+  };
+
+  return (
+    <Table
+      columns={columns}
+      dataSource={items}
+      rowKey="device_code"
+      locale={{
+        emptyText: <Empty />,
+      }}
+      pagination={false}
+    />
+  );
+}
+
+function LiquidLevelCom(props) {
+  const { sendMessageToUnity, select, allData = [], type, title } = props;
+  const [activeKey, setActiveKey] = useState('1');
+
+  const errorData = useMemo(() => {
+    const errorData = allData?.filter((item) => item.status);
+    return errorData;
+  }, [allData]);
+
+  const handleTabsChange = (activeKey) => {
+    setActiveKey(activeKey);
+  };
+  return (
+    <div className={styles.detailCard}>
+      <div className={styles.tableTop}>
+        {title}
+        <TabsContent
+          defaultActiveKey="1"
+          onChange={handleTabsChange}
+          small={true}
+          items={[
+            {
+              key: '1',
+              label: `异常/警告(${errorData?.length || 0})`,
+              children: <div></div>,
+            },
+            {
+              key: '2',
+              label: `全部(${allData?.length || 0})`,
+              children: <div></div>,
+            },
+          ]}
+        ></TabsContent>
+      </div>
+
+      {activeKey == '1' && (
+        <LiquidTable
+          onClickItem={sendMessageToUnity}
+          select={select}
+          items={errorData}
+          key={type}
+          type={type}
+        />
+      )}
+      {activeKey == '2' && (
+        <LiquidTable
+          onClickItem={sendMessageToUnity}
+          select={select}
+          items={allData}
+          key={type}
+          type={type}
+        />
+      )}
+    </div>
+    // <div className={styles.detailCard}>
+    //   <Tabs
+    //     defaultActiveKey="1"
+    //     tabBarExtraContent={<div className={styles.tabBarExtraContent}>{title} </div>}
+    //     onChange={handleTabsChange}
+    //   >
+    //     <Tabs.TabPane tab={`异常/警告(${errorData.length || 0})`} key="1">
+    //       {activeKey == '1' && (
+    //         <LiquidTable
+    //           onClickItem={sendMessageToUnity}
+    //           select={select}
+    //           items={errorData}
+    //           key={type}
+    //           // data={data}
+    //           type={type}
+    //         />
+    //       )}
+    //     </Tabs.TabPane>
+    //     <Tabs.TabPane tab={`全部(${allData.length || 0})`} key="2">
+    //       {activeKey == '2' && (
+    //         <LiquidTable
+    //           onClickItem={sendMessageToUnity}
+    //           select={select}
+    //           items={allData}
+    //           // data={data}
+    //           key={type}
+    //           type={type}
+    //         />
+    //       )}
+    //     </Tabs.TabPane>
+    //   </Tabs>
+    // </div>
+  );
+}
+
 function ReportDumCom(props) {
   const { data = [], title } = props;
   const columns = [

+ 9 - 3
src/pages/SmartOps/components/VideoAnalysis.js

@@ -14,7 +14,7 @@ function VideoAnalysis(props) {
   const { videoNum, data, videoData, loading } = props;
   const [tab, setTab] = useState('1');
   const allCount = Object.values(videoData).reduce(
-    (total, item) => total + item?.length,
+    (total, item) => total + (item?.length || 0),
     0,
   );
 
@@ -200,7 +200,10 @@ function AllContent({ data = [], videoData = {} }) {
       render: (record) => (
         <ThresholdDetail
           current={record.value || 0}
-          data={{ JsonNumThreshold: record?.json_num_threshold, Type: 2 }}
+          data={{
+            JsonNumThreshold: record?.json_num_threshold,
+            Type: record.type || 2,
+          }}
           // onClick={() => onClickThreshold(record)}
         />
       ),
@@ -269,7 +272,10 @@ function AllContent({ data = [], videoData = {} }) {
       render: (record) => (
         <ThresholdDetail
           current={record.value || 0}
-          data={{ JsonNumThreshold: record?.json_num_threshold, Type: 2 }}
+          data={{
+            JsonNumThreshold: record?.json_num_threshold,
+            Type: record.type || 2,
+          }}
           // onClick={() => onClickThreshold(record)}
         />
       ),