sun-chaochao пре 3 година
родитељ
комит
aaa64faa18

+ 0 - 15
src/pages/link/AccessConfig/Detail/Provider/index.less

@@ -27,18 +27,3 @@
   white-space: nowrap;
   text-overflow: ellipsis;
 }
-
-.title {
-  width: 100%;
-  margin-bottom: 10px;
-  overflow: hidden;
-  font-weight: 800;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-}
-
-.title::before {
-  margin-right: 10px;
-  background-color: #2810ff;
-  content: '|';
-}

+ 3 - 2
src/pages/link/AccessConfig/Detail/Provider/index.tsx

@@ -1,3 +1,4 @@
+import { TitleComponent } from '@/components';
 import { Button, Card, Col, Row } from 'antd';
 import { useEffect, useState } from 'react';
 import styles from './index.less';
@@ -28,7 +29,7 @@ const Provider = (props: Props) => {
   return (
     <>
       <Card>
-        <div className={styles.title}>自定义设备接入</div>
+        <TitleComponent data={'自定义设备接入'} />
         <Row gutter={[16, 16]}>
           {dataSource.map((item) => (
             <Col key={item.name} span={12}>
@@ -70,7 +71,7 @@ const Provider = (props: Props) => {
         </Row>
       </Card>
       <Card style={{ marginTop: 20 }}>
-        <div className={styles.title}>视频类设备接入</div>
+        <TitleComponent data={'视频类设备接入'} />
         <Row gutter={[16, 16]}>
           {mediaSource.map((item) => (
             <Col key={item.name} span={12}>

+ 1 - 2
src/pages/rule-engine/Alarm/Config/index.tsx

@@ -1,5 +1,5 @@
 import { PageContainer } from '@ant-design/pro-layout';
-import { Button, Card, Col, Divider, message, Row, Table, Tooltip } from 'antd';
+import { Button, Card, Col, Divider, message, Row, Table, Tooltip, Image } from 'antd';
 import TitleComponent from '@/components/TitleComponent';
 import { createSchemaField } from '@formily/react';
 import { ArrayItems, Form, FormButtonGroup, FormGrid, FormItem, Input } from '@formily/antd';
@@ -10,7 +10,6 @@ import FLevelInput from '@/components/FLevelInput';
 import type { IOConfigItem } from '@/pages/rule-engine/Alarm/Config/typing';
 import Service from '@/pages/rule-engine/Alarm/Config/service';
 import styles from './index.less';
-import { Image } from 'antd';
 import ReactMarkdown from 'react-markdown';
 import { QuestionCircleOutlined } from '@ant-design/icons';
 

+ 1 - 1
src/pages/rule-engine/Scene/Save/components/TimeSelect/index.tsx

@@ -74,7 +74,7 @@ export default (props: TimeSelect) => {
   useEffect(() => {
     document.body.onclick = (e) => {
       const elem: any = e.target;
-      const isSelectDom = elem && elem.className.includes('time-select');
+      const isSelectDom = elem && elem.className?.includes?.('time-select');
 
       if (!isSelectDom) {
         setVisible(false);

+ 43 - 5
src/pages/rule-engine/Scene/TriggerTerm/index.tsx

@@ -30,6 +30,7 @@ import { useAsyncDataSource } from '@/utils/util';
 import { Store } from 'jetlinks-store';
 import { treeFilter } from '@/utils/tree';
 import FInputGroup from '@/components/FInputGroup';
+import { Button } from 'antd';
 
 const service = new Service('scene');
 
@@ -46,11 +47,40 @@ const TriggerTerm = (props: Props, ref: any) => {
     service.getParseTerm(props.params).then((data) => {
       Store.set('trigger-parse-term', data);
       parseTermRef.current = data;
-      return data.map((item: any) => ({
-        column: item.column,
-        name: item.name,
-        children: item.children,
-      }));
+      const handleName = (_data: any): any => (
+        <Space>
+          {_data.name}
+          <div style={{ color: 'grey', marginLeft: '5px' }}>{_data.description}</div>
+        </Space>
+      );
+      const handleChildrenName = (_data: any[]): any[] => {
+        if (_data?.length > 0) {
+          return _data.map((it) => {
+            if (it.children) {
+              return {
+                ...it,
+                key: it.column,
+                name: handleName(it),
+                disabled: true,
+                children: handleChildrenName(it.children),
+              };
+            }
+            return { ...it, key: it.column, name: handleName(it) };
+          });
+        } else {
+          return [];
+        }
+      };
+      return data.map((item: any) => {
+        const disabled = item.children?.length > 0;
+        return {
+          column: item.column,
+          key: item.column,
+          name: handleName(item),
+          disabled: disabled,
+          children: handleChildrenName(item.children),
+        };
+      });
     });
 
   const form = useMemo(
@@ -227,6 +257,7 @@ const TriggerTerm = (props: Props, ref: any) => {
                         'x-component-props': {
                           placeholder: '请选择参数',
                           fieldNames: { value: 'column', label: 'name', options: 'children' },
+                          // treeNodeLabelProp: 'name',
                         },
                         'x-reactions': '{{useAsyncDataSource(getParseTerm)}}',
                       },
@@ -320,6 +351,13 @@ const TriggerTerm = (props: Props, ref: any) => {
   return (
     <Form form={form} layout="vertical" className={styles.form}>
       <SchemaField schema={schema} scope={{ useAsyncDataSource, getParseTerm }} />
+      <Button
+        onClick={async () => {
+          console.log(await form.submit(), '保存');
+        }}
+      >
+        保存
+      </Button>
     </Form>
   );
 };