瀏覽代碼

feat(metadata): metadata table

Lind 4 年之前
父節點
當前提交
2fd12423aa

+ 16 - 1
src/pages/device/Product/Detail/Metadata/Event/index.tsx

@@ -1,6 +1,9 @@
 import type { EventMetadata } from '@/pages/device/Product/typings';
 import type { ProColumns } from '@jetlinks/pro-table';
 import ProTable from '@jetlinks/pro-table';
+import { useEffect, useState } from 'react';
+import { useParams } from 'umi';
+import DB from '@/db';
 
 const Event = () => {
   const columns: ProColumns<EventMetadata>[] = [
@@ -28,6 +31,18 @@ const Event = () => {
     },
   ];
 
-  return <ProTable columns={columns} rowKey="id" search={false} />;
+  const param = useParams<{ id: string }>();
+
+  const [data, setData] = useState<EventMetadata[]>([]);
+
+  const initData = async () => {
+    const result = await DB.getDB().table(`${param.id}-events`).toArray();
+    setData(result);
+  };
+  useEffect(() => {
+    initData();
+    // setData(propertyTable);
+  }, [param]);
+  return <ProTable dataSource={data} size={'small'} columns={columns} rowKey="id" search={false} />;
 };
 export default Event;

+ 19 - 3
src/pages/device/Product/Detail/Metadata/Function/index.tsx

@@ -1,5 +1,9 @@
-import ProTable, { ProColumns } from '@jetlinks/pro-table';
-import { FunctionMetadata } from '@/pages/device/Product/typings';
+import type { ProColumns } from '@jetlinks/pro-table';
+import ProTable from '@jetlinks/pro-table';
+import type { FunctionMetadata } from '@/pages/device/Product/typings';
+import { useParams } from 'umi';
+import { useEffect, useState } from 'react';
+import DB from '@/db';
 
 const Function = () => {
   const columns: ProColumns<FunctionMetadata>[] = [
@@ -32,6 +36,18 @@ const Function = () => {
     },
   ];
 
-  return <ProTable columns={columns} rowKey="id" search={false} />;
+  const param = useParams<{ id: string }>();
+
+  const [data, setData] = useState<FunctionMetadata[]>([]);
+
+  const initData = async () => {
+    const result = await DB.getDB().table(`${param.id}-function`).toArray();
+    setData(result);
+  };
+  useEffect(() => {
+    initData();
+    // setData(propertyTable);
+  }, [param]);
+  return <ProTable size={'small'} dataSource={data} columns={columns} rowKey="id" search={false} />;
 };
 export default Function;

+ 16 - 1
src/pages/device/Product/Detail/Metadata/Property/index.tsx

@@ -1,6 +1,9 @@
 import type { ProColumns } from '@jetlinks/pro-table';
 import type { PropertyMetadata } from '@/pages/device/Product/typings';
 import ProTable from '@jetlinks/pro-table';
+import { useEffect, useState } from 'react';
+import DB from '@/db';
+import { useParams } from 'umi';
 
 const Property = () => {
   const columns: ProColumns<PropertyMetadata>[] = [
@@ -33,6 +36,18 @@ const Property = () => {
     },
   ];
 
-  return <ProTable columns={columns} rowKey="id" search={false} />;
+  const param = useParams<{ id: string }>();
+
+  const [data, setData] = useState<PropertyMetadata[]>([]);
+
+  const initData = async () => {
+    const result = await DB.getDB().table(`${param.id}-property`).toArray();
+    setData(result);
+  };
+  useEffect(() => {
+    initData();
+    // setData(propertyTable);
+  }, [param]);
+  return <ProTable size={'small'} dataSource={data} columns={columns} rowKey="id" search={false} />;
 };
 export default Property;

+ 15 - 1
src/pages/device/Product/Detail/Metadata/Tag/index.tsx

@@ -1,6 +1,9 @@
 import type { TagMetadata } from '@/pages/device/Product/typings';
 import type { ProColumns } from '@jetlinks/pro-table';
 import ProTable from '@jetlinks/pro-table';
+import { useParams } from 'umi';
+import { useEffect, useState } from 'react';
+import DB from '@/db';
 
 const Tag = () => {
   const columns: ProColumns<TagMetadata>[] = [
@@ -32,7 +35,18 @@ const Tag = () => {
       ellipsis: true,
     },
   ];
+  const param = useParams<{ id: string }>();
 
-  return <ProTable columns={columns} rowKey="id" search={false} />;
+  const [data, setData] = useState<TagMetadata[]>([]);
+
+  const initData = async () => {
+    const result = await DB.getDB().table(`${param.id}-tag`).toArray();
+    setData(result);
+  };
+  useEffect(() => {
+    initData();
+    // setData(propertyTable);
+  }, [param]);
+  return <ProTable dataSource={data} size={'small'} columns={columns} rowKey="id" search={false} />;
 };
 export default Tag;

+ 3 - 4
src/pages/device/Product/Detail/index.tsx

@@ -1,6 +1,6 @@
 import { PageContainer } from '@ant-design/pro-layout';
 import { history, useParams } from 'umi';
-import { Button, Card, Descriptions, message, Space, Tabs } from 'antd';
+import { Button, Card, Descriptions, Space, Tabs } from 'antd';
 import BaseInfo from '@/pages/device/Product/Detail/BaseInfo';
 import { observer } from '@formily/react';
 import { productModel, service, statusMap } from '@/pages/device/Product';
@@ -51,8 +51,8 @@ const ProductDetail = observer(() => {
             });
           })
           .catch((error) => {
-            console.log(error, 'error');
-            message.error(JSON.stringify(error));
+            console.error(error);
+            throw new Error('IndexDB add Data Error');
           });
       });
     }
@@ -138,7 +138,6 @@ const ProductDetail = observer(() => {
         </Button>,
       ]}
     >
-      {JSON.stringify(productModel.current)}
       <Card>
         <Tabs tabPosition="left" defaultActiveKey="base">
           <Tabs.TabPane