wzyyy 3 лет назад
Родитель
Сommit
c925ca6d80

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

@@ -68,14 +68,14 @@ export default (props: Props) => {
 
   registerValidateRules({
     testHost(val: string) {
-      if (val) return '';
-      if (!testIP(val) || !testIPv6(val) || !testDomain(val)) {
+      if (!(testIP(val) || testIPv6(val) || testDomain(val))) {
         return {
           type: 'error',
           message: '请输入正确格式的IP地址',
         };
+      } else {
+        return true;
       }
-      return '';
     },
   });
 
@@ -140,6 +140,7 @@ export default (props: Props) => {
             'x-decorator': 'FormItem',
             'x-decorator-props': {
               gridSpan: 2,
+              tooltip: '支持ipv4、ipv6、域名',
             },
             'x-component-props': {
               placeholder: '请输入Modbus主机IP',

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

@@ -28,22 +28,18 @@ const ChannelModel = model<{
 export default observer((props: Props) => {
   const intl = useIntl();
   const { minHeight } = useDomFullHeight(`.data-collect-channel`, 24);
-  const [param, setParam] = useState({});
+  const [param, setParam] = useState({ pageSize: 12, terms: [] });
   const { permission } = PermissionButton.usePermission('device/Instance');
   const [loading, setLoading] = useState<boolean>(true);
   const [dataSource, setDataSource] = useState<any>({
     data: [],
-    pageSize: 10,
+    pageSize: 12,
     pageIndex: 0,
     total: 0,
   });
 
   const columns: ProColumns<ChannelItem>[] = [
     {
-      title: 'ID',
-      dataIndex: 'id',
-    },
-    {
       title: '名称',
       dataIndex: 'name',
     },
@@ -72,7 +68,7 @@ export default observer((props: Props) => {
           status: 'enabled',
         },
         disabled: {
-          text: '禁用',
+          text: '异常',
           status: 'disabled',
         },
       },
@@ -185,7 +181,7 @@ export default observer((props: Props) => {
                         pageSize: size,
                       });
                     }}
-                    pageSizeOptions={[10, 20, 50, 100]}
+                    pageSizeOptions={[12, 24, 48, 96]}
                     pageSize={dataSource?.pageSize}
                     showTotal={(num) => {
                       const minSize = dataSource?.pageIndex * dataSource?.pageSize + 1;

+ 3 - 9
src/pages/link/DataCollect/components/Device/index.tsx

@@ -29,25 +29,19 @@ const CollectorModel = model<{
 
 export default observer((props: Props) => {
   const { minHeight } = useDomFullHeight(`.data-collect-collector`, 24);
-  const [param, setParam] = useState({
-    terms: [],
-  });
+  const [param, setParam] = useState({ pageSize: 12, terms: [] });
   const [loading, setLoading] = useState<boolean>(true);
   const intl = useIntl();
   const { permission } = PermissionButton.usePermission('device/Instance');
   const [dataSource, setDataSource] = useState<any>({
     data: [],
-    pageSize: 10,
+    pageSize: 12,
     pageIndex: 0,
     total: 0,
   });
 
   const columns: ProColumns<CollectorItem>[] = [
     {
-      title: 'ID',
-      dataIndex: 'id',
-    },
-    {
       title: '名称',
       dataIndex: 'name',
     },
@@ -271,7 +265,7 @@ export default observer((props: Props) => {
                         pageSize: size,
                       });
                     }}
-                    pageSizeOptions={[10, 20, 50, 100]}
+                    pageSizeOptions={[12, 24, 48, 96]}
                     pageSize={dataSource?.pageSize}
                     showTotal={(num) => {
                       const minSize = dataSource?.pageIndex * dataSource?.pageSize + 1;

+ 4 - 10
src/pages/link/DataCollect/components/Point/index.tsx

@@ -32,25 +32,19 @@ const PointModel = model<{
 export default observer((props: Props) => {
   const [subscribeTopic] = useSendWebsocketMessage();
   const { minHeight } = useDomFullHeight(`.data-collect-point`, 24);
-  const [param, setParam] = useState({
-    terms: [],
-  });
+  const [param, setParam] = useState({ pageSize: 12, terms: [] });
   const [loading, setLoading] = useState<boolean>(true);
   const { permission } = PermissionButton.usePermission('device/Instance');
   const [propertyValue, setPropertyValue] = useState<any>({});
   const [dataSource, setDataSource] = useState<any>({
     data: [],
-    pageSize: 10,
+    pageSize: 12,
     pageIndex: 0,
     total: 0,
   });
 
   const columns: ProColumns<PointItem>[] = [
     {
-      title: 'ID',
-      dataIndex: 'id',
-    },
-    {
       title: '名称',
       dataIndex: 'name',
     },
@@ -79,7 +73,7 @@ export default observer((props: Props) => {
           status: 'enabled',
         },
         disabled: {
-          text: '禁用',
+          text: '异常',
           status: 'disabled',
         },
       },
@@ -206,7 +200,7 @@ export default observer((props: Props) => {
                         pageSize: size,
                       });
                     }}
-                    pageSizeOptions={[10, 20, 50, 100]}
+                    pageSizeOptions={[12, 24, 48, 96]}
                     pageSize={dataSource?.pageSize}
                     showTotal={(num) => {
                       const minSize = dataSource?.pageIndex * dataSource?.pageSize + 1;

+ 13 - 10
src/pages/system/Menu/index.tsx

@@ -13,7 +13,7 @@ import {
 } from '@ant-design/icons';
 import { observer } from '@formily/react';
 import { model } from '@formily/reactive';
-import { useHistory } from 'umi';
+import { useHistory, useModel } from 'umi';
 import SearchComponent from '@/components/SearchComponent';
 import Service from './service';
 import type { MenuItem } from './typing';
@@ -44,6 +44,7 @@ export default observer(() => {
   const [param, setParam] = useState<any>({});
   const history = useHistory();
   const { permission } = PermissionButton.usePermission('system/Menu');
+  const { initialState } = useModel('@@initialState');
 
   const deleteItem = async (id: string) => {
     const response: any = await service.remove(id);
@@ -337,15 +338,17 @@ export default observer(() => {
               defaultMessage: '新增',
             })}
           </PermissionButton>,
-          <PermissionButton
-            style={{ marginLeft: 12 }}
-            isPermission={permission.setting}
-            onClick={() => {
-              history.push(getMenuPathByCode('system/Menu/Setting'));
-            }}
-          >
-            菜单配置
-          </PermissionButton>,
+          initialState?.currentUser?.user?.username === 'admin' && (
+            <PermissionButton
+              style={{ marginLeft: 12 }}
+              isPermission={true}
+              onClick={() => {
+                history.push(getMenuPathByCode('system/Menu/Setting'));
+              }}
+            >
+              菜单配置
+            </PermissionButton>
+          ),
         ]}
       />
     </PageContainer>

+ 1 - 0
src/pages/user/Login/user.d.ts

@@ -7,6 +7,7 @@ type LoginParam = {
 };
 
 type UserBase = {
+  username: boolean | string;
   avatar: string;
   createTime: number;
   description: string;

+ 1 - 1
src/utils/util.ts

@@ -108,7 +108,7 @@ export const testIPv6 = (str: string) => {
 };
 
 export const testDomain = (str: string) => {
-  const re = /^((?!-)[A-Za-z0-9-]{1,63}(?<!-)\\.)+[A-Za-z]{2,6}$/;
+  const re = /([0-9a-z-]{2,}\.[0-9a-z-]{2,3}\.[0-9a-z-]{2,3}|[0-9a-z-]{2,}\.[0-9a-z-]{2,3})$/i;
   return re.test(str);
 };