xieyonghong 3 лет назад
Родитель
Сommit
af1fb4b9f8

+ 10 - 0
src/pages/notice/Config/Debug/index.tsx

@@ -19,6 +19,7 @@ import { useLocation } from 'umi';
 import { onlyMessage, useAsyncDataSource } from '@/utils/util';
 import { Store } from 'jetlinks-store';
 import FUpload from '@/components/Upload';
+import { FDatePicker } from '@/components';
 
 const Debug = observer(() => {
   const location = useLocation<{ id: string }>();
@@ -61,6 +62,15 @@ const Debug = observer(() => {
             switch (value) {
               case 'date':
                 // const a = variableRef.current?.find((i: any) => i.id === _id.value);
+                let dateFormat = 'YYYY-MM-DD HH:mm:ss';
+                if (variableRef.current) {
+                  const a = variableRef.current?.find((i: any) => i.id === _id.value);
+                  dateFormat = a?.format;
+                }
+                format.setComponent(FDatePicker, {
+                  showTime: true,
+                  format: dateFormat === 'timestamp' ? 'X' : dateFormat,
+                });
                 format.setComponent(DatePicker);
                 break;
               case 'string':

+ 18 - 10
src/pages/rule-engine/Scene/Save/action/VariableItems/builtIn.tsx

@@ -25,6 +25,7 @@ interface BuiltInProps {
   name: number;
   isEdit?: boolean;
   id?: string;
+  triggerRef?: any;
 }
 
 export default (props: BuiltInProps) => {
@@ -51,9 +52,12 @@ export default (props: BuiltInProps) => {
     }
   };
 
-  const sourceChangeEvent = () => {
+  const sourceChangeEvent = async () => {
     onChange(source, undefined);
     const data = props.form.getFieldsValue();
+    const triggerData = await props.triggerRef.getTriggerData();
+    console.log(triggerData);
+    data.terms = triggerData.trigger;
     const params = props.name - 1 >= 0 ? { action: props.name - 1 } : undefined;
     queryBuiltInParams(data, params).then((res: any) => {
       if (res.status === 200) {
@@ -67,15 +71,19 @@ export default (props: BuiltInProps) => {
   useEffect(() => {
     if (props.isEdit) {
       setIsEdit(false);
-      const data = props.form.getFieldsValue();
-      const params = props.name - 1 >= 0 ? { action: props.name - 1 } : undefined;
-      queryBuiltInParams(data, params).then((res: any) => {
-        if (res.status === 200) {
-          const actionParams = res.result.filter((item: any) => item.id === `action_${props.name}`);
-          const _data = BuiltInParamsHandleTreeData(props.name === 0 ? res.result : actionParams);
-          setBuiltInList(_data);
-        }
-      });
+      sourceChangeEvent();
+      // const data = props.form.getFieldsValue();
+      // const triggerData = props.triggerRef.getTriggerData();
+      // console.log(triggerData)
+      // data.terms = triggerData.trigger
+      // const params = props.name - 1 >= 0 ? { action: props.name - 1 } : undefined;
+      // queryBuiltInParams(data, params).then((res: any) => {
+      //   if (res.status === 200) {
+      //     const actionParams = res.result.filter((item: any) => item.id === `action_${props.name}`);
+      //     const _data = BuiltInParamsHandleTreeData(props.name === 0 ? res.result : actionParams);
+      //     setBuiltInList(_data);
+      //   }
+      // });
     }
     setTimeout(() => {
       setIsEdit(true);

+ 2 - 0
src/pages/rule-engine/Scene/Save/action/action.tsx

@@ -31,6 +31,7 @@ interface ActionProps {
   trigger?: any;
   parallel?: boolean;
   isEdit?: boolean;
+  triggerRef?: any;
 }
 
 export default observer((props: ActionProps) => {
@@ -344,6 +345,7 @@ export default observer((props: ActionProps) => {
           configId={configId}
           parallel={props.parallel}
           isEdit={props.isEdit}
+          triggerRef={props.triggerRef}
         />
       ) : null}
       {type1 === 'device' &&

+ 2 - 0
src/pages/rule-engine/Scene/Save/action/messageContent.tsx

@@ -19,6 +19,7 @@ interface MessageContentProps {
   trigger?: any;
   parallel?: boolean;
   isEdit?: boolean;
+  triggerRef?: any;
 }
 
 const rowGutter = 12;
@@ -157,6 +158,7 @@ export default (props: MessageContentProps) => {
                           trigger={props.trigger}
                           data={item}
                           isEdit={props.isEdit}
+                          triggerRef={props.triggerRef}
                         />
                       )}
                     </Form.Item>

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

@@ -348,6 +348,7 @@ export default () => {
                             name={name}
                             trigger={actionParams}
                             triggerType={triggerType}
+                            triggerRef={triggerRef.current}
                             onRemove={() => {
                               remove(name);
                               setActionDataCount(actionDataCount - 1);

+ 17 - 1
src/pages/rule-engine/Scene/TriggerTerm/index.tsx

@@ -160,7 +160,7 @@ const TriggerTerm = (props: Props, ref: any) => {
                 : treeValue[0];
             const source = (field as Field).value;
             const value = field.query(source === 'manual' ? '.value.0' : '.metric');
-
+            console.log(target, source);
             if (target) {
               if (source === 'manual') {
                 // 手动输入
@@ -187,6 +187,7 @@ const TriggerTerm = (props: Props, ref: any) => {
                 }
 
                 form1.setFieldState(value, (state) => {
+                  console.log(state, valueType);
                   state.componentType = valueTypeMap[valueType];
                   state.componentProps = {
                     style: {
@@ -273,6 +274,21 @@ const TriggerTerm = (props: Props, ref: any) => {
       });
       return Array.isArray(data?.trigger) ? data : undefined;
     },
+    getTriggerData: async () => {
+      const data: any = await form.submit().then((_data: any) => {
+        if (!Array.isArray(_data.trigger)) return;
+        _data.trigger?.map((item: { terms: any[] }) =>
+          item.terms.map((j) => {
+            if (j.value?.value?.length === 1) {
+              j.value.value = j.value.value[0];
+            }
+            return j;
+          }),
+        );
+        return _data;
+      });
+      return Array.isArray(data?.trigger) ? data : undefined;
+    },
   }));
   const SchemaField = createSchemaField({
     components: {