소스 검색

fix(network): network port

lind 4 년 전
부모
커밋
271e069472
1개의 변경된 파일7개의 추가작업 그리고 6개의 파일을 삭제
  1. 7 6
      src/pages/link/Type/Detail/index.tsx

+ 7 - 6
src/pages/link/Type/Detail/index.tsx

@@ -16,7 +16,7 @@ import {
 import type { ISchema } from '@formily/json-schema';
 import { useEffect, useMemo, useRef } from 'react';
 import type { Field } from '@formily/core';
-import { createForm, onFieldValueChange } from '@formily/core';
+import { createForm, onFieldReact, onFieldValueChange } from '@formily/core';
 import { Card, message } from 'antd';
 import styles from './index.less';
 import { useAsyncDataSource } from '@/utils/util';
@@ -43,9 +43,9 @@ const filterConfigByType = (data: any[], type: string) => {
     _temp = 'UDP';
   }
   // 只保留ports 包含type的数据
-  const _config = data.filter((item) => Object.keys(item.ports).includes(_temp));
+  const _config = data?.filter((item) => Object.keys(item.ports).includes(_temp));
   // 只保留ports的type数据
-  return _config.map((i) => {
+  return _config?.map((i) => {
     i.ports = i.ports[_temp];
     return i;
   });
@@ -121,12 +121,13 @@ const Save = observer(() => {
               state.dataSource = _host.map((item) => ({ label: item.host, value: item.host }));
             });
           });
-          onFieldValueChange('grid.configuration.panel1.layout2.host', (field, f1) => {
+          onFieldReact('grid.configuration.panel1.layout2.host', async (field, f1) => {
             const value = (field as Field).value;
             const type = (field.query('type').take() as Field).value;
-            const _port = filterConfigByType(_.cloneDeep(configRef.current), type);
+            const resp = await service.getResourcesCurrent();
+            const current = resp?.result;
+            const _port = filterConfigByType(_.cloneDeep(current), type);
             const _host = _port.find((item) => item.host === value);
-            console.log(_host, 'host');
             f1.setFieldState('grid.configuration.panel1.layout2.port', (state) => {
               state.dataSource = _host?.ports.map((p: any) => ({ label: p, value: p }));
             });