Browse Source

fix: 选择关联场景联动的bug

100011797 3 years ago
parent
commit
3c284a64b9

+ 4 - 35
src/components/ProTableCard/CardItems/AlarmConfig.tsx

@@ -1,11 +1,9 @@
 import React from 'react';
-import { Ellipsis, PermissionButton, TableCard } from '@/components';
+import { Ellipsis, TableCard } from '@/components';
 import '@/style/common.less';
 import '../index.less';
 import { StatusColorEnum } from '@/components/BadgeStatus';
 import { Store } from 'jetlinks-store';
-import { getMenuPathByCode, MENUS_CODE } from '@/utils/menu';
-import { useHistory } from 'umi';
 
 export interface AlarmConfigProps extends ConfigurationItem {
   detail?: React.ReactNode;
@@ -16,7 +14,6 @@ export interface AlarmConfigProps extends ConfigurationItem {
 export const aliyunSms = require('/public/images/alarm/alarm-config.png');
 
 export default (props: AlarmConfigProps) => {
-  const history = useHistory();
   return (
     <TableCard
       actions={props.actions}
@@ -43,24 +40,9 @@ export default (props: AlarmConfigProps) => {
           <div className={'card-item-content'}>
             <div>
               <label>关联场景联动</label>
-              <div className={'ellipsis'}>
-                <PermissionButton
-                  type={'link'}
-                  isPermission={!!getMenuPathByCode(MENUS_CODE['rule-engine/Scene'])}
-                  style={{ padding: 0, height: 'auto' }}
-                  tooltip={{
-                    title: !!getMenuPathByCode(MENUS_CODE['rule-engine/Scene'])
-                      ? props?.sceneName
-                      : '没有权限,请联系管理员',
-                  }}
-                  onClick={() => {
-                    const url = getMenuPathByCode('rule-engine/Scene/Save');
-                    history.push(`${url}?id=${props.sceneId}`);
-                  }}
-                >
-                  {props?.sceneName || ''}
-                </PermissionButton>
-              </div>
+              <Ellipsis
+                title={(props?.scene || []).map((item: any) => item.name).join(',') || ''}
+              />
             </div>
             <div>
               <label>告警级别</label>
@@ -71,19 +53,6 @@ export default (props: AlarmConfigProps) => {
                   )?.title || props?.level
                 }
               />
-              {/*<div className={'ellipsis'}>*/}
-              {/*  <Tooltip*/}
-              {/*    title={*/}
-              {/*      (Store.get('default-level') || []).find(*/}
-              {/*        (item: any) => item?.level === props?.level,*/}
-              {/*      )?.title || props?.level*/}
-              {/*    }*/}
-              {/*  >*/}
-              {/*    {(Store.get('default-level') || []).find(*/}
-              {/*      (item: any) => item?.level === props?.level,*/}
-              {/*    )?.title || props?.level}*/}
-              {/*  </Tooltip>*/}
-              {/*</div>*/}
             </div>
           </div>
         </div>

+ 0 - 1
src/pages/Log/System/index.tsx

@@ -63,7 +63,6 @@ const System = () => {
       }),
       dataIndex: 'message',
       ellipsis: true,
-      width: 200,
     },
     {
       title: intl.formatMessage({

+ 11 - 9
src/pages/device/Instance/Detail/Running/Event/index.tsx

@@ -8,7 +8,7 @@ import moment from 'moment';
 import { Form, Modal } from 'antd';
 import { SearchOutlined } from '@ant-design/icons';
 import { useRef, useState } from 'react';
-import MonacoEditor from 'react-monaco-editor';
+import { JMonacoEditor } from '@/components/FMonacoEditor';
 
 interface Props {
   data: Partial<EventMetadata>;
@@ -46,14 +46,16 @@ const EventLog = (props: Props) => {
               title: '详情',
               width: 850,
               content: (
-                <Form.Item wrapperCol={{ span: 22 }} labelCol={{ span: 2 }} label={data.name}>
-                  <MonacoEditor
-                    height={350}
-                    theme="vs"
-                    language="json"
-                    value={JSON.stringify(record, null, 2)}
-                  />
-                </Form.Item>
+                <Form layout={'vertical'}>
+                  <Form.Item label={data.name}>
+                    <JMonacoEditor
+                      height={350}
+                      theme="vs"
+                      language="json"
+                      value={JSON.stringify(record, null, 2)}
+                    />
+                  </Form.Item>
+                </Form>
               ),
               okText: '关闭',
               onOk() {},

+ 1 - 1
src/pages/rule-engine/Alarm/Configuration/Save/Scene/Save/index.tsx

@@ -153,7 +153,7 @@ export default (props: Props) => {
                     {
                       column: 'triggerType',
                       termType: 'eq',
-                      value: props.type,
+                      value: props.type === 'other' ? undefined : 'device',
                     },
                   ],
                   type: 'and',

+ 11 - 0
src/pages/rule-engine/Alarm/Configuration/Save/Scene/index.less

@@ -0,0 +1,11 @@
+.alarm-scene-table {
+  :global {
+    .ant-card-body {
+      padding: 0;
+    }
+
+    .ant-pro-table-list-toolbar-container {
+      padding-top: 8px;
+    }
+  }
+}

+ 3 - 2
src/pages/rule-engine/Alarm/Configuration/Save/Scene/index.tsx

@@ -11,6 +11,7 @@ import Save from './Save';
 import { service } from '@/pages/rule-engine/Alarm/Configuration';
 import { onlyMessage } from '@/utils/util';
 import { Store } from 'jetlinks-store';
+import styles from './index.less';
 
 export default () => {
   const intl = useIntl();
@@ -83,7 +84,7 @@ export default () => {
   ];
 
   return (
-    <>
+    <div className={styles['alarm-scene-table']}>
       <ProTableCard<SceneItem>
         columns={columns}
         actionRef={actionRef}
@@ -189,6 +190,6 @@ export default () => {
           }}
         />
       )}
-    </>
+    </div>
   );
 };

+ 31 - 29
src/pages/rule-engine/Alarm/Configuration/index.tsx

@@ -17,7 +17,7 @@ import ProTableCard from '@/components/ProTableCard';
 import Service from '@/pages/rule-engine/Alarm/Configuration/service';
 import AlarmConfig from '@/components/ProTableCard/CardItems/AlarmConfig';
 import { Store } from 'jetlinks-store';
-import { getMenuPathByCode, MENUS_CODE } from '@/utils/menu';
+import { getMenuPathByCode } from '@/utils/menu';
 import { useHistory } from 'umi';
 import { onlyMessage } from '@/utils/util';
 import encodeQuery from '@/utils/encodeQuery';
@@ -104,33 +104,35 @@ const Configuration = () => {
       title: '关联场景联动',
       dataIndex: 'sceneId',
       width: 250,
-      render: (text: any, record: any) => (
-        <PermissionButton
-          type={'link'}
-          isPermission={!!getMenuPathByCode(MENUS_CODE['rule-engine/Scene'])}
-          style={{ padding: 0, height: 'auto' }}
-          tooltip={{
-            title: !!getMenuPathByCode(MENUS_CODE['rule-engine/Scene'])
-              ? text
-              : '没有权限,请联系管理员',
-          }}
-          onClick={() => {
-            const url = getMenuPathByCode('rule-engine/Scene/Save');
-            history.push(`${url}?id=${record.sceneId}`);
-          }}
-        >
-          <span
-            style={{
-              width: '200px',
-              overflow: 'hidden',
-              textAlign: 'left',
-              textOverflow: 'ellipsis',
-            }}
-          >
-            {record?.sceneName}
-          </span>
-        </PermissionButton>
-      ),
+      render: (text: any, record: any) =>
+        (record?.scene || []).map((item: any) => item?.name).join(',') || '',
+      // (
+      // <PermissionButton
+      //   type={'link'}
+      //   isPermission={!!getMenuPathByCode(MENUS_CODE['rule-engine/Scene'])}
+      //   style={{ padding: 0, height: 'auto' }}
+      //   tooltip={{
+      //     title: !!getMenuPathByCode(MENUS_CODE['rule-engine/Scene'])
+      //       ? text
+      //       : '没有权限,请联系管理员',
+      //   }}
+      //   onClick={() => {
+      //     const url = getMenuPathByCode('rule-engine/Scene/Save');
+      //     history.push(`${url}?id=${record.sceneId}`);
+      //   }}
+      // >
+      //   <span
+      //     style={{
+      //       width: '200px',
+      //       overflow: 'hidden',
+      //       textAlign: 'left',
+      //       textOverflow: 'ellipsis',
+      //     }}
+      //   >
+      //     {(record?.scene || []).map((item: any) => item?.name).join(',')}
+      //   </span>
+      // </PermissionButton>
+      // ),
       valueType: 'select',
       request: async () => {
         const res: any = await service.getScene(
@@ -312,7 +314,7 @@ const Configuration = () => {
         columns={columns}
         columnEmptyText={''}
         request={(params) =>
-          service.query({ ...params, sorts: [{ name: 'createTime', order: 'desc' }] })
+          service.queryList({ ...params, sorts: [{ name: 'createTime', order: 'desc' }] })
         }
         gridColumn={3}
         cardRender={(record) => (

+ 5 - 0
src/pages/rule-engine/Alarm/Configuration/service.ts

@@ -3,6 +3,11 @@ import { request } from 'umi';
 import SystemConst from '@/utils/const';
 
 class Service extends BaseService<ConfigItem> {
+  public queryList = (data: any) =>
+    request(`/${SystemConst.API_BASE}/alarm/config/detail/_query`, {
+      method: 'POST',
+      data,
+    });
   public getTargetTypes = () =>
     request(`/${SystemConst.API_BASE}/alarm/config/target-type/supports`, {
       method: 'GET',

+ 1 - 0
src/pages/rule-engine/Alarm/Configuration/typings.d.ts

@@ -4,6 +4,7 @@ type ConfigurationItem = {
   level: number;
   sceneName: string;
   sceneId: string;
+  scene?: any[];
   state: { text: string; value: string };
   description: string;
   id: string;

+ 1 - 1
src/pages/rule-engine/DashBoard/index.less

@@ -108,7 +108,7 @@
 
 .alarmRank {
   position: relative;
-  width: 300px;
+  width: 30%;
   padding-left: 48px;
 }