Преглед изворни кода

Merge pull request #772 from jetlinks/next-wzy

fix: 视频中心bug
hear пре 3 година
родитељ
комит
b829ea6132

+ 29 - 7
src/pages/media/Device/Channel/Save.tsx

@@ -1,5 +1,5 @@
 // Modal 弹窗,用于新增、修改数据
 // Modal 弹窗,用于新增、修改数据
-import { createForm } from '@formily/core';
+import { createForm, registerValidateRules } from '@formily/core';
 import { createSchemaField } from '@formily/react';
 import { createSchemaField } from '@formily/react';
 import { Form, FormGrid, FormItem, FormTab, Input, Select, Password } from '@formily/antd';
 import { Form, FormGrid, FormItem, FormTab, Input, Select, Password } from '@formily/antd';
 import { Modal } from 'antd';
 import { Modal } from 'antd';
@@ -40,6 +40,33 @@ const Save = (props: SaveModalProps) => {
     validateFirst: true,
     validateFirst: true,
   });
   });
 
 
+  registerValidateRules({
+    async isChanelId(value: string) {
+      if (!value) return '';
+      if (String(value).length > 64) {
+        return {
+          type: 'error',
+          message: '最多可输入64个字符',
+        };
+      } else {
+        const res = await service.isChannelId({
+          deviceId: props.deviceId,
+          channelId: value,
+        });
+        if (res.status === 200) {
+          const msg = res.result.passed
+            ? ''
+            : {
+                type: 'error',
+                message: '该ID已存在',
+              };
+          return msg;
+        }
+      }
+      return '';
+    },
+  });
+
   useEffect(() => {
   useEffect(() => {
     if (form && props.visible) {
     if (form && props.visible) {
       if (props.model === 'edit') {
       if (props.model === 'edit') {
@@ -88,12 +115,7 @@ const Save = (props: SaveModalProps) => {
               gridSpan: 1,
               gridSpan: 1,
               tooltip: '若不填写,系统将自动生成唯一ID',
               tooltip: '若不填写,系统将自动生成唯一ID',
             },
             },
-            'x-validator': [
-              {
-                max: 64,
-                message: '最多可输入64个字符',
-              },
-            ],
+            'x-validator': { isChanelId: true },
           },
           },
           name: {
           name: {
             type: 'string',
             type: 'string',

+ 7 - 0
src/pages/media/Device/Channel/service.ts

@@ -80,6 +80,13 @@ class Service extends BaseService<ChannelItem> {
   // 播放云端回放
   // 播放云端回放
   playbackStart = (recordId: string) =>
   playbackStart = (recordId: string) =>
     request(`${this.uri}/record/${recordId}.mp4`, { method: 'GET' });
     request(`${this.uri}/record/${recordId}.mp4`, { method: 'GET' });
+
+  // 检验通道ID唯一性
+  isChannelId = (params: any) =>
+    request(`${this.uri}/channel/channelId/_validate`, {
+      method: 'GET',
+      params,
+    });
 }
 }
 
 
 export default Service;
 export default Service;

+ 17 - 0
src/pages/system/Menu/Detail/buttons.tsx

@@ -320,6 +320,23 @@ export default (props: ButtonsProps) => {
                     callback();
                     callback();
                   },
                   },
                 },
                 },
+                // () => ({
+                //   async validator(_, value) {
+                //     if(!!id){
+
+                //     }
+                //     if (value) {
+                //       const validateId = id ? await isValidateId(value) : '';
+                //       if (validateId === '') {
+                //         return Promise.resolve();
+                //       } else {
+                //         return Promise.reject(new Error(`${validateId}`));
+                //       }
+                //     } else {
+                //       return Promise.reject(new Error('请输入卡号'));
+                //     }
+                //   },
+                // }),
               ]}
               ]}
             >
             >
               <Input disabled={!!(disabled || id)} placeholder={'请输入编码'} />
               <Input disabled={!!(disabled || id)} placeholder={'请输入编码'} />

+ 6 - 0
src/pages/system/Menu/service.ts

@@ -36,6 +36,12 @@ class Service extends BaseService<MenuItem> {
     request(`${SystemConst.API_BASE}/system/resources/permission`, {
     request(`${SystemConst.API_BASE}/system/resources/permission`, {
       method: 'GET',
       method: 'GET',
     });
     });
+  //判断编码唯一性
+  isCode = (params: any) =>
+    request(`${SystemConst.API_BASE}/menu/code/_validate`, {
+      method: 'GET',
+      params,
+    });
 }
 }
 
 
 export default Service;
 export default Service;