Browse Source

fix: api配置及bug修复

wzyyy 3 years ago
parent
commit
c5d4f1f45d

+ 2 - 2
config/proxy.ts

@@ -17,8 +17,8 @@ export default {
       // 测试环境
       target: 'http://120.77.179.54:8844/',
       ws: 'ws://120.77.179.54:8844/',
-      // target: 'http://192.168.32.65:8844/',
-      // ws: 'ws://192.168.32.65:8844/',
+      // target: 'http://192.168.32.86:8844/',
+      // ws: 'ws://192.168.32.86:8844/',
       //v2环境
       // ws: 'ws://47.109.52.230:8844',
       // target: 'http://47.109.52.230:8844',

+ 66 - 22
src/pages/DataCollect/Channel/Save/index.tsx

@@ -19,15 +19,11 @@ interface Props {
 export default (props: Props) => {
   const [data, setData] = useState<Partial<ChannelItem>>(props.data);
   const [authTypeList, setAuthTypeList] = useState<any[]>([]);
+  const [providerList, setProviderList] = useState<any[]>([]);
+  const [securityModesList, setSecurityModesList] = useState<any[]>([]);
+  const [securityPolicyList, setSecurityPolicyList] = useState<any[]>([]);
 
-  useEffect(() => {
-    if (props.data?.id) {
-      service.queryChannelByID(props.data.id).then((resp) => {
-        if (resp.status === 200) {
-          setData(resp.result);
-        }
-      });
-    }
+  const getAuth = () => {
     service.queryAuthTypeList({}).then((resp) => {
       if (resp.status === 200) {
         setAuthTypeList(
@@ -40,6 +36,61 @@ export default (props: Props) => {
         );
       }
     });
+  };
+
+  const getSecurityModesList = async () => {
+    const res = await service.querySecurityModesList({});
+    if (res.status === 200) {
+      const list = res.result.map((item: any) => ({
+        label: item,
+        value: item,
+      }));
+      setSecurityModesList(list);
+    }
+  };
+
+  const getSecurityPolicyList = async () => {
+    const res = await service.querySecurityPolicyList({});
+    if (res.status === 200) {
+      const list = res.result.map((item: any) => ({
+        label: item,
+        value: item,
+      }));
+      setSecurityPolicyList(list);
+    }
+  };
+
+  const getProviders = () => {
+    service.getProviders().then((resp) => {
+      if (resp.status === 200) {
+        const list = [
+          { label: 'OPC UA', value: 'OPC_UA' },
+          { label: 'Modbus TCP', value: 'MODBUS_TCP' },
+        ];
+        const arr = resp.result
+          .filter((item: any) => item.id === 'modbus-tcp' || item.id === 'opc-ua')
+          .map((it: any) => (it.id === 'opc-ua' ? 'OPC_UA' : 'MODBUS_TCP'));
+        const providers = list.filter((item: any) => arr.includes(item.value));
+        setProviderList(providers);
+        if (arr.includes('OPC_UA')) {
+          getAuth();
+          getSecurityModesList();
+          getSecurityPolicyList();
+        }
+        // console.log('providers---',providers)
+      }
+    });
+  };
+
+  useEffect(() => {
+    if (props.data?.id) {
+      service.queryChannelByID(props.data.id).then((resp) => {
+        if (resp.status === 200) {
+          setData(resp.result);
+        }
+      });
+    }
+    getProviders();
   }, [props.data]);
 
   const form = createForm({
@@ -47,8 +98,8 @@ export default (props: Props) => {
     initialValues: data || {},
   });
 
-  const getSecurityPolicyList = () => service.querySecurityPolicyList({});
-  const getSecurityModesList = () => service.querySecurityModesList({});
+  // const getSecurityPolicyList = () => service.querySecurityPolicyList({});
+  // const getSecurityModesList = () => service.querySecurityModesList({});
   const getCertificateList = () => service.queryCertificateList({});
 
   const useAsyncDataSource = (services: (arg0: Field) => Promise<any>) => (field: Field) => {
@@ -138,16 +189,7 @@ export default (props: Props) => {
               placeholder: '请选择通讯协议',
             },
             'x-disabled': props.data?.id,
-            enum: [
-              { label: 'OPC UA', value: 'OPC_UA' },
-              { label: 'Modbus TCP', value: 'MODBUS_TCP' },
-            ],
-            'x-validator': [
-              {
-                required: true,
-                message: '请选择通讯协议',
-              },
-            ],
+            enum: providerList,
           },
           'configuration.host': {
             title: 'Modbus主机IP',
@@ -275,8 +317,9 @@ export default (props: Props) => {
                 message: '请选择安全策略',
               },
             ],
+            enum: securityPolicyList,
             'x-reactions': [
-              '{{useAsyncDataSource(getSecurityPolicyList)}}',
+              // '{{useAsyncDataSource(getSecurityPolicyList)}}',
               {
                 dependencies: ['..provider'],
                 fulfill: {
@@ -303,8 +346,9 @@ export default (props: Props) => {
                 message: '请选择安全模式',
               },
             ],
+            enum: securityModesList,
             'x-reactions': [
-              '{{useAsyncDataSource(getSecurityModesList)}}',
+              // '{{useAsyncDataSource(getSecurityModesList)}}',
               {
                 dependencies: ['..provider'],
                 fulfill: {

+ 10 - 4
src/pages/DataCollect/Dashboard/index.tsx

@@ -105,10 +105,11 @@ const DeviceBoard = () => {
           format: 'HH:mm',
         };
       default:
-        console.log('swich---');
         const time = dt.end - dt.start;
         const hour = 60 * 60 * 1000;
         const days = hour * 24;
+        const year = days * 365;
+        // console.log('month---',month);
         if (time <= hour) {
           return {
             limit: Math.abs(Math.ceil(time / (60 * 60))),
@@ -121,6 +122,12 @@ const DeviceBoard = () => {
             interval: '1h',
             format: 'HH:mm',
           };
+        } else if (time >= year) {
+          return {
+            limit: Math.abs(Math.ceil(time / days / 31)) + 1,
+            interval: '1M',
+            format: 'yyyy年-M月',
+          };
         } else {
           return {
             limit: Math.abs(Math.ceil(time / days)) + 1,
@@ -133,7 +140,6 @@ const DeviceBoard = () => {
 
   const getEcharts = async () => {
     const data = ref.current!.getValues();
-    console.log('data---', data);
     const res = await service.dashboard([
       {
         dashboard: 'collector',
@@ -167,8 +173,8 @@ const DeviceBoard = () => {
         grid: {
           top: '2%',
           bottom: '5%',
-          left: '65px',
-          right: 0,
+          left: '55px',
+          right: '2.5%',
         },
         series: [
           {

+ 4 - 0
src/pages/DataCollect/service.ts

@@ -174,6 +174,10 @@ class Service {
       method: 'GET',
       params: data,
     });
+  public getProviders = () =>
+    request(`/${SystemConst.API_BASE}/gateway/device/providers`, {
+      method: 'GET',
+    });
 }
 
 const service = new Service();

+ 7 - 0
src/pages/notice/Config/Debug/index.tsx

@@ -165,6 +165,13 @@ const Debug = observer(() => {
         required: true,
         'x-component': 'Select',
         'x-reactions': '{{useAsyncDataSource(getTemplate)}}',
+        'x-component-props': {
+          showSearch: true,
+          allowClear: true,
+          showArrow: true,
+          filterOption: (input: string, option: any) =>
+            option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0,
+        },
       },
       variableDefinitions: {
         title: '变量',

+ 1 - 1
src/pages/notice/Template/Detail/index.tsx

@@ -1590,7 +1590,7 @@ const Detail = observer(() => {
             message: '最多可输入500个字符',
           },
           {
-            require: true,
+            required: true,
             message: '请输入模版内容',
           },
         ],

+ 6 - 0
src/pages/rule-engine/Scene/Save/action/ListItem/FilterCondition.tsx

@@ -53,6 +53,7 @@ export default observer((props: FilterProps) => {
 
   const [deleteVisible, setDeleteVisible] = useState(false);
   const columnsRef = useRef<string[]>([]);
+  const oldLableRef = useRef<any>();
 
   const ValueRef = useRef<Partial<TermsType>>({
     column: '',
@@ -82,6 +83,7 @@ export default observer((props: FilterProps) => {
     (columnValue?: string) => {
       if (columnValue) {
         const labelOptions = columnOptionsMap.get(columnValue);
+        console.log('labelOptions------', labelOptions, props.data);
         if (labelOptions) {
           const _termTypeOptions: any[] =
             labelOptions?.termTypes?.map((tItem: any) => ({ title: tItem.name, key: tItem.id })) ||
@@ -140,6 +142,10 @@ export default observer((props: FilterProps) => {
 
   useEffect(() => {
     labelCache.current = props.label || [undefined, undefined, {}, 'and'];
+    console.log('labelCache.current-------', props.label);
+    if (props.label) {
+      oldLableRef.current = props.label;
+    }
   }, [props.label]);
 
   useEffect(() => {

+ 7 - 2
src/pages/rule-engine/Scene/Save/terms/paramsItem.tsx

@@ -90,8 +90,13 @@ export const handleOptionsLabel = (data: any, type?: string) => {
         const str = termsTypeKey[t].replace('_value', _value[0]).replace('_value2', _value[1]);
         return `${c} ${str} ${typeStr} `;
       } else if (DoubleFilter.includes(t) && !!range && _value.length === 1) {
-        console.log(_value, range);
-        const str = termsTypeKey[t].replace('_value和_value2', _value[0]);
+        console.log(_value, range, t);
+        let str;
+        if (t === 'in' || t === 'nin') {
+          str = termsTypeKey[t].replace('_value,_value2', _value[0]);
+        } else {
+          str = termsTypeKey[t].replace('_value和_value2', _value[0]);
+        }
         return `${c} ${str} ${typeStr} `;
       } else {
         const str = termsTypeKey[t].replace('_value', _value[0]);

+ 1 - 2
src/pages/system/Menu/Detail/edit.tsx

@@ -167,10 +167,9 @@ export default (props: EditProps) => {
                     rules={[
                       { required: true, message: '请输入编码' },
                       { max: 64, message: '最多可输入64个字符' },
-
                       () => ({
                         async validator(_, value) {
-                          if (value) {
+                          if (value && value.length < 64) {
                             const res = await service.isCode({ code: value, owner: 'iot' });
                             if (res.result.passed) {
                               return Promise.resolve();

+ 2 - 1
src/pages/system/Platforms/Api/base.tsx

@@ -17,6 +17,7 @@ export const ApiModel = model<{
   components: any;
   swagger: any;
   debugger: any;
+  key?: any;
 }>({
   data: [],
   baseUrl: '',
@@ -80,7 +81,7 @@ export default observer((props: ApiPageProps) => {
         }
       });
     } else {
-      console.log(props.code, 1111111);
+      // console.log(props.code, 1111111);
       service.getApiGranted(code!).then((resp: any) => {
         if (resp.status === 200) {
           setGrantKeys(resp.result);

+ 15 - 2
src/pages/system/Platforms/Api/basePage.tsx

@@ -123,6 +123,8 @@ export default (props: TableProps) => {
     grantCache.current = addGrant;
 
     setLoading(true);
+    // console.log('addGrant----',addGrant)
+    // console.log('addOperations----',addOperations)
     if (props.isOpenGranted === false) {
       // console.log(props.grantKeys)
       // console.log(addGrant,'add')
@@ -134,8 +136,12 @@ export default (props: TableProps) => {
         onlyMessage('操作成功');
       }
     } else {
-      const resp2 = await service.removeApiGrant(code!, { operations: removeOperations });
-      const resp = await service.addApiGrant(code!, { operations: addOperations });
+      const resp2 = await service.removeApiGrant(code!, {
+        operations: removeOperations.filter((item) => item.permissions),
+      });
+      const resp = await service.addApiGrant(code!, {
+        operations: addOperations.filter((item) => item.permissions),
+      });
       if (resp.status === 200 || resp2.status === 200) {
         getApiGrant();
         onlyMessage('操作成功');
@@ -144,6 +150,13 @@ export default (props: TableProps) => {
     setLoading(false);
   }, [selectKeys, location, dataSource, props.isOpenGranted]);
 
+  useEffect(() => {
+    console.log('GrantKeys-=========', GrantKeys);
+    if (GrantKeys) {
+      setSelectKeys(GrantKeys);
+    }
+  }, [GrantKeys]);
+
   return (
     <div className={'platforms-api-table'}>
       <Table<any>