Bläddra i källkod

fix: 修改数据采集

100011797 3 år sedan
förälder
incheckning
9ec3fc3cc4

+ 6 - 3
src/pages/device/Instance/Detail/Info/index.tsx

@@ -120,7 +120,9 @@ const Info = observer(() => {
               defaultMessage: '创建时间',
             })}
           >
-            {moment(InstanceModel.detail?.createTime).format('YYYY-MM-DD HH:mm:ss')}
+            {InstanceModel.detail?.createTime
+              ? moment(InstanceModel.detail?.createTime).format('YYYY-MM-DD HH:mm:ss')
+              : ''}
           </Descriptions.Item>
           <Descriptions.Item
             label={intl.formatMessage({
@@ -128,8 +130,9 @@ const Info = observer(() => {
               defaultMessage: '注册时间',
             })}
           >
-            {InstanceModel.detail?.registerTime &&
-              moment(InstanceModel.detail?.registerTime).format('YYYY-MM-DD HH:mm:ss')}
+            {InstanceModel.detail?.registerTime
+              ? moment(InstanceModel.detail?.registerTime).format('YYYY-MM-DD HH:mm:ss')
+              : ''}
           </Descriptions.Item>
           <Descriptions.Item
             label={intl.formatMessage({

+ 4 - 4
src/pages/init-home/components/data/save/index.tsx

@@ -94,11 +94,11 @@ const Save = (props: Props) => {
             'x-validator': [
               {
                 max: 65535,
-                message: '请输入1-65535之间的整数',
+                message: '请输入1-65535之间的整数',
               },
               {
                 min: 1,
-                message: '请输入1-65535之间的整数',
+                message: '请输入1-65535之间的整数',
               },
             ],
           },
@@ -139,11 +139,11 @@ const Save = (props: Props) => {
             'x-validator': [
               {
                 max: 65535,
-                message: '请输入1-65535之间的整数',
+                message: '请输入1-65535之间的整数',
               },
               {
                 min: 1,
-                message: '请输入1-65535之间的整数',
+                message: '请输入1-65535之间的整数',
               },
             ],
           },

+ 1 - 1
src/pages/link/DataCollect/DataGathering/index.tsx

@@ -22,7 +22,7 @@ const DataCollectModel = model<{
 
 export default observer(() => {
   const obj = {
-    channel: <Device type={false} id={DataCollectModel.id} />,
+    channel: <Device type={false} id={DataCollectModel.id} provider={DataCollectModel.provider} />,
     device: (
       <Point type={false} provider={DataCollectModel.provider} data={DataCollectModel.data} />
     ),

+ 49 - 4
src/pages/link/DataCollect/components/Channel/Save/index.tsx

@@ -1,12 +1,12 @@
 import { Button, Modal } from 'antd';
-import { createForm, Field } from '@formily/core';
+import { createForm, Field, registerValidateRules } from '@formily/core';
 import { createSchemaField } from '@formily/react';
 import React, { useEffect, useState } from 'react';
 import * as ICONS from '@ant-design/icons';
 import { Form, FormGrid, FormItem, Input, Select, NumberPicker, Password } from '@formily/antd';
 import type { ISchema } from '@formily/json-schema';
 import service from '@/pages/link/DataCollect/service';
-import { onlyMessage } from '@/utils/util';
+import { onlyMessage, testDomain, testIP, testIPv6 } from '@/utils/util';
 import { action } from '@formily/reactive';
 
 interface Props {
@@ -65,6 +65,19 @@ export default (props: Props) => {
     },
   });
 
+  registerValidateRules({
+    testHost(val: string) {
+      if (val) return '';
+      if (!testIP(val) || !testIPv6(val) || !testDomain(val)) {
+        return {
+          type: 'error',
+          message: '请输入正确格式的IP地址',
+        };
+      }
+      return '';
+    },
+  });
+
   const schema: ISchema = {
     type: 'object',
     properties: {
@@ -108,6 +121,7 @@ export default (props: Props) => {
             'x-component-props': {
               placeholder: '请选择通讯协议',
             },
+            'x-disabled': props.data?.id,
             enum: [
               { label: 'OPC_UA', value: 'OPC_UA' },
               { label: 'MODBUS_TCP', value: 'MODBUS_TCP' },
@@ -134,6 +148,9 @@ export default (props: Props) => {
                 required: true,
                 message: '请输入Modbus主机IP',
               },
+              {
+                testHost: true,
+              },
             ],
             'x-reactions': {
               dependencies: ['..provider'],
@@ -162,11 +179,11 @@ export default (props: Props) => {
               },
               {
                 max: 65535,
-                message: '请输入0-65535之间的整数',
+                message: '请输入0-65535之间的整数',
               },
               {
                 min: 0,
-                message: '请输入0-65535之间的整数',
+                message: '请输入0-65535之间的整数',
               },
             ],
             'x-reactions': {
@@ -231,6 +248,34 @@ export default (props: Props) => {
               },
             ],
           },
+          'configuration.authType': {
+            title: '权限认证',
+            'x-component': 'Select',
+            'x-decorator': 'FormItem',
+            'x-decorator-props': {
+              gridSpan: 2,
+            },
+            'x-component-props': {
+              placeholder: '请选择权限认证',
+            },
+            'x-validator': [
+              {
+                required: true,
+                message: '请选择权限认证',
+              },
+            ],
+            'x-reactions': [
+              '{{useAsyncDataSource(getSecurityPolicyList)}}',
+              {
+                dependencies: ['..provider'],
+                fulfill: {
+                  state: {
+                    visible: '{{$deps[0]==="OPC_UA"}}',
+                  },
+                },
+              },
+            ],
+          },
           'configuration.username': {
             title: '用户名',
             'x-component': 'Input',

+ 8 - 12
src/pages/link/DataCollect/components/Device/Save/index.tsx

@@ -13,6 +13,7 @@ interface Props {
   data: Partial<CollectorItem>;
   close: () => void;
   reload: () => void;
+  provider?: 'OPC_UA' | 'MODBUS_TCP';
 }
 
 export default (props: Props) => {
@@ -86,14 +87,7 @@ export default (props: Props) => {
             'x-component-props': {
               placeholder: '请输入从机地址',
             },
-            'x-reactions': {
-              dependencies: ['..provider'],
-              fulfill: {
-                state: {
-                  visible: '{{$deps[0]==="MODBUS_TCP"}}',
-                },
-              },
-            },
+            'x-visible': props.provider === 'MODBUS_TCP',
             'x-validator': [
               {
                 required: true,
@@ -101,11 +95,11 @@ export default (props: Props) => {
               },
               {
                 max: 255,
-                message: '请输入0-255之间的整数',
+                message: '请输入0-255之间的整数',
               },
               {
                 min: 0,
-                message: '请输入0-255之间的整数',
+                message: '请输入0-255之间的整数',
               },
             ],
           },
@@ -163,8 +157,10 @@ export default (props: Props) => {
           const obj = {
             ...value,
             provider: resp.result.provider,
-            channelId: resp.result.channelId,
-            configuration: {},
+            channelId: props.channelId,
+            configuration: {
+              ...value.configuration,
+            },
           };
           response = await service.saveCollector({ ...obj });
         }

+ 2 - 0
src/pages/link/DataCollect/components/Device/index.tsx

@@ -16,6 +16,7 @@ import Save from '@/pages/link/DataCollect/components/Device/Save/index';
 interface Props {
   type: boolean; // true: 综合查询  false: 数据采集
   id?: any;
+  provider?: 'OPC_UA' | 'MODBUS_TCP';
 }
 
 const CollectorModel = model<{
@@ -292,6 +293,7 @@ export default observer((props: Props) => {
         <Save
           data={CollectorModel.current}
           channelId={props.id}
+          provider={props.provider}
           close={() => {
             CollectorModel.visible = false;
           }}

+ 1 - 1
src/pages/link/DataCollect/components/Tree/index.tsx

@@ -75,7 +75,6 @@ export default observer((props: Props) => {
       <div style={{ margin: '16px 0' }}>
         <Button
           type="primary"
-          ghost
           style={{ width: '100%' }}
           icon={<PlusOutlined />}
           onClick={() => {
@@ -166,6 +165,7 @@ export default observer((props: Props) => {
           }}
           reload={() => {
             TreeModel.visible = false;
+            handleSearch(TreeModel.param);
           }}
         />
       )}

+ 4 - 4
src/pages/link/Type/Detail/index.tsx

@@ -337,11 +337,11 @@ const Save = observer(() => {
         'x-validator': [
           {
             max: 65535,
-            message: '请输入1-65535之间的整数',
+            message: '请输入1-65535之间的整数',
           },
           {
             min: 1,
-            message: '请输入1-65535之间的整数',
+            message: '请输入1-65535之间的整数',
           },
         ],
       },
@@ -404,11 +404,11 @@ const Save = observer(() => {
         'x-validator': [
           {
             max: 65535,
-            message: '请输入1-65535之间的整数',
+            message: '请输入1-65535之间的整数',
           },
           {
             min: 1,
-            message: '请输入1-65535之间的整数',
+            message: '请输入1-65535之间的整数',
           },
         ],
       },

+ 1 - 1
src/pages/media/Device/Channel/index.tsx

@@ -116,7 +116,7 @@ export default () => {
           status: 'online',
         },
         offline: {
-          text: '离线',
+          text: '未连接',
           status: 'offline',
         },
       },

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 11 - 0
src/utils/util.ts