From e801111351c21cd181189aab36e4cc9a7faf56a5 Mon Sep 17 00:00:00 2001 From: sam Date: Fri, 21 Feb 2025 01:19:10 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20inverters?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/(defaults)/sungrow/inverters/page.tsx | 97 +++++++++++++++++++ app/(defaults)/sungrow/sites/page.tsx | 16 +-- components/layouts/sidebar.tsx | 3 + .../tables/components-tables-simple.tsx | 11 +-- 4 files changed, 111 insertions(+), 16 deletions(-) create mode 100644 app/(defaults)/sungrow/inverters/page.tsx diff --git a/app/(defaults)/sungrow/inverters/page.tsx b/app/(defaults)/sungrow/inverters/page.tsx new file mode 100644 index 0000000..ee929f2 --- /dev/null +++ b/app/(defaults)/sungrow/inverters/page.tsx @@ -0,0 +1,97 @@ +"use client"; +import IconTrashLines from '@/components/icon/icon-trash-lines'; +import PanelCodeHighlight from '@/components/panel-code-highlight'; +import ComponentsTablesSimple from '@/components/tables/components-tables-simple'; +import { formatUnixTimestamp } from '@/utils/helpers'; +import Tippy from '@tippyjs/react'; +import axios from 'axios'; +import React, { useEffect, useState } from 'react' + +type Props = {} + +const SungrowInverters = (props: Props) => { + const [inverters, setInverters] = useState([]); + const [loading, setLoading] = useState(true); + + useEffect(() => { + const fetchData = async () => { + try { + const res = await axios.get("https://api-a.fomware.com.cn/asset/v1/list?type=2", { + headers: { + "Authorization": "Bearer " + process.env.NEXT_PUBLIC_CHINT_TOKEN + } + }) + console.log("res", res.data.data.devices) + setInverters(res.data.data.devices) + } catch (error) { + console.error("Error fetching data:", error); + } finally { + setLoading(false); + } + }; + + fetchData() + }, []) + + // inverter status 0: initial, 1: standby, 2: fault, 3: running, 5: offline, 9: shutdown, 10: unknown + + return ( +
+ {loading ?

Loading...

: ( + +
+ + + + + + + + + + + + + {inverters.map((data) => ( + + + + + + + + + + ))} + +
ModelSite NameStatusCreated AtUpdated AtAction
+
{data.model}
+
+
{data.siteName}
+
+
+ {data.statusLabel} +
+
{formatUnixTimestamp(data.createdAt)}{formatUnixTimestamp(data.updatedAt)} + + + +
+
+
+ )} +
+ ) +} + +export default SungrowInverters diff --git a/app/(defaults)/sungrow/sites/page.tsx b/app/(defaults)/sungrow/sites/page.tsx index 09b5b08..c8c9cf7 100644 --- a/app/(defaults)/sungrow/sites/page.tsx +++ b/app/(defaults)/sungrow/sites/page.tsx @@ -6,19 +6,19 @@ import axios from "axios"; import React, { useEffect, useState } from "react"; const SungrowAssets = () => { - const [devices, setDevices] = useState([]); + const [sites, setSites] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { const fetchData = async () => { try { - const res = await axios.get("https://api-a.fomware.com.cn/asset/v1/list", { + const res = await axios.get("https://api-a.fomware.com.cn/site/v1/list", { headers: { - "Authorization": "Bearer lIywwAMdrOdsRxuWvRoekdxrPtmIPkxA" + "Authorization": "Bearer " + process.env.NEXT_PUBLIC_CHINT_TOKEN } }) - console.log("res", res.data.data.devices) - setDevices(res.data.data.devices); + console.log("res", res.data.data.siteInfos) + setSites(res.data.data.siteInfos) } catch (error) { console.error("Error fetching data:", error); } finally { @@ -26,12 +26,12 @@ const SungrowAssets = () => { } }; - fetchData(); - }, []); + fetchData() + }, []) return (
- {loading ?

Loading...

: } + {loading ?

Loading...

: }
) } diff --git a/components/layouts/sidebar.tsx b/components/layouts/sidebar.tsx index 76fc531..2d11fe3 100644 --- a/components/layouts/sidebar.tsx +++ b/components/layouts/sidebar.tsx @@ -134,6 +134,9 @@ const Sidebar = () => {
  • Sites
  • +
  • + Inverters +
  • diff --git a/components/tables/components-tables-simple.tsx b/components/tables/components-tables-simple.tsx index 44b3610..46c7853 100644 --- a/components/tables/components-tables-simple.tsx +++ b/components/tables/components-tables-simple.tsx @@ -27,22 +27,17 @@ const ComponentsTablesSimple = ({ tableData = [] }: { tableData: any[] }) => { {tableData.map((data) => ( -
    {data.siteName}
    +
    {data.name}
    - {data.inverter.length} + {data.deviceQty.inverterQty} -
    +
    {data.statusLabel}
    {formatUnixTimestamp(data.createdAt)} {formatUnixTimestamp(data.updatedAt)} - - -