Kaynağa Gözat

fix: 运行状态

sun-chaochao 3 yıl önce
ebeveyn
işleme
abcd9a3804

+ 21 - 36
src/pages/device/Instance/Detail/MetadataMap/EditableTable/index.tsx

@@ -1,10 +1,10 @@
 import React, { useContext, useEffect, useState } from 'react';
-import { Badge, Col, Form, Input, Pagination, Row, Select, Table, Tooltip } from 'antd';
+import { AutoComplete, Badge, Col, Form, Input, Pagination, Row, Table, Tooltip } from 'antd';
 import { service } from '@/pages/device/Instance';
 import './index.less';
 import { QuestionCircleOutlined } from '@ant-design/icons';
 import { onlyMessage } from '@/utils/util';
-// import { throttle } from 'lodash';
+// import { debounce } from 'lodash';
 
 const defaultImage = require('/public/images/metadata-map.png');
 
@@ -46,15 +46,17 @@ const EditableCell = ({
 }: EditableCellProps) => {
   const form: any = useContext(EditableContext);
   const [temp, setTemp] = useState<any>({});
+  const uuid = '使用物模型属性';
 
   const save = async () => {
     try {
       const values = await form.validateFields();
-      handleSave({
+      const dt = {
         ...record,
-        originalId: !!values?.originalId ? values?.originalId : record.metadataId,
-        customMapping: values?.originalId !== '',
-      });
+        originalId: values?.originalId === uuid ? '' : values?.originalId,
+        customMapping: values?.originalId !== uuid,
+      };
+      handleSave(dt);
     } catch (errInfo) {
       console.log('Save failed:', errInfo);
     }
@@ -62,7 +64,7 @@ const EditableCell = ({
 
   useEffect(() => {
     if (record) {
-      form.setFieldsValue({ [dataIndex]: record.customMapping ? record[dataIndex] : '' });
+      form.setFieldsValue({ [dataIndex]: record.customMapping ? record[dataIndex] : uuid });
       setTemp(properties.find((i) => i.id === record.originalId));
     }
   }, [record]);
@@ -72,41 +74,24 @@ const EditableCell = ({
   if (editable) {
     childNode = (
       <Form.Item style={{ margin: 0 }} name={dataIndex}>
-        {/* <AutoComplete onChange={throttle(save, 5000)}>
-          <AutoComplete.Option value={''}>使用物模型属性</AutoComplete.Option>
+        <AutoComplete
+          onBlur={() => {
+            save();
+          }}
+        >
+          <AutoComplete.Option value={uuid}>使用物模型属性</AutoComplete.Option>
           {record.customMapping && temp && (
             <AutoComplete.Option value={record.originalId}>
               {temp?.name}({temp?.id})
             </AutoComplete.Option>
           )}
-          {tempList.length > 0 &&
-            tempList.map((item: any) => (
-              <AutoComplete.Option key={item?.id} value={item?.id}>
-                {item?.name}({item?.id})
-              </AutoComplete.Option>
-            ))}
-        </AutoComplete> */}
-        <Select
-          onChange={save}
-          showSearch
-          optionFilterProp="children"
-          filterOption={(input: string, option: any) =>
-            (option?.children || '').toLowerCase()?.indexOf(input.toLowerCase()) >= 0
-          }
-        >
-          <Select.Option value={''}>使用物模型属性</Select.Option>
-          {record.customMapping && (
-            <Select.Option value={record.originalId}>
-              {temp?.name}({temp?.id})
-            </Select.Option>
-          )}
           {list.length > 0 &&
             list.map((item: any) => (
-              <Select.Option key={item?.id} value={item?.id}>
+              <AutoComplete.Option key={item?.id} value={item?.id}>
                 {item?.name}({item?.id})
-              </Select.Option>
+              </AutoComplete.Option>
             ))}
-        </Select>
+        </AutoComplete>
       </Form.Item>
     );
   }
@@ -119,7 +104,7 @@ interface Props {
 }
 
 const EditableTable = (props: Props) => {
-  const baseColumns = [
+  const baseColumns: any = [
     {
       title: '物模型属性',
       dataIndex: 'name',
@@ -203,7 +188,7 @@ const EditableTable = (props: Props) => {
           const t = data.find((item: any) => item?.originalId === i?.id);
           return !t || (t && !t.customMapping);
         });
-        setPmList(arr);
+        setPmList([...arr]);
       } else {
         setPmList([]);
       }
@@ -295,7 +280,7 @@ const EditableTable = (props: Props) => {
     }
   };
 
-  const columns = baseColumns.map((col) => {
+  const columns = baseColumns.map((col: any) => {
     if (!col.editable) {
       return col;
     }

+ 1 - 0
src/pages/device/Instance/Detail/Running/Property/index.tsx

@@ -237,6 +237,7 @@ const Property = (props: Props) => {
 
   useEffect(() => {
     if (dataSource.data.length > 0) {
+      setLoading1(true);
       getDashboard();
     } else {
       setLoading(false);

+ 12 - 8
src/pages/link/AccessConfig/Detail/Access/index.tsx

@@ -27,6 +27,7 @@ const Access = (props: Props) => {
   const [current, setCurrent] = useState<number>(0);
   const [networkList, setNetworkList] = useState<any[]>([]);
   const [procotolList, setProcotolList] = useState<any[]>([]);
+  const [allProcotolList, setAllProcotolList] = useState<any[]>([]);
   const [procotolCurrent, setProcotolCurrent] = useState<string>('');
   const [networkCurrent, setNetworkCurrent] = useState<string>('');
   const [config, setConfig] = useState<any>();
@@ -46,6 +47,7 @@ const Access = (props: Props) => {
     service.getProtocolList(ProcotoleMapping.get(id), params).then((resp) => {
       if (resp.status === 200) {
         setProcotolList(resp.result);
+        setAllProcotolList(resp.result);
       }
     });
   };
@@ -409,14 +411,16 @@ const Access = (props: Props) => {
                 allowClear
                 placeholder="请输入名称"
                 onSearch={(value: string) => {
-                  queryProcotolList(
-                    props.provider?.id,
-                    encodeQuery({
-                      terms: {
-                        name$LIKE: `%${value}%`,
-                      },
-                    }),
-                  );
+                  if (value) {
+                    const list = allProcotolList.filter((i) => {
+                      return (
+                        i?.name && i.name.toLocaleLowerCase().includes(value.toLocaleLowerCase())
+                      );
+                    });
+                    setProcotolList(list);
+                  } else {
+                    setProcotolList(allProcotolList);
+                  }
                 }}
                 style={{ width: 500, margin: '20px 0' }}
               />