Browse Source

fix: 设备输出

wzyyy 3 năm trước cách đây
mục cha
commit
719e7266cc

+ 7 - 3
src/pages/rule-engine/Scene/Save/action/DeviceOutput/actions/TypeModel.tsx

@@ -20,7 +20,7 @@ interface Props {
 }
 
 export default (props: Props) => {
-  const [value, setValue] = useState<any>(props.value || '');
+  const [value, setValue] = useState<any>(props.value || undefined);
   const [visible, setVisible] = useState<boolean>(false);
   const [objVisiable, setObjVisable] = useState<boolean>(false);
   const [source, setSource] = useState<string>(props.source || 'fixed');
@@ -49,6 +49,7 @@ export default (props: Props) => {
 
   const onChange = (params: any) => {
     setValue(params);
+    setLabelValue(params);
     if (props.onChange) {
       props.onChange(params, source);
     }
@@ -86,6 +87,7 @@ export default (props: Props) => {
             placeholder={'请选择'}
             mode="multiple"
             onChange={(e) => {
+              console.log(e);
               onChange(e);
             }}
           />
@@ -147,6 +149,7 @@ export default (props: Props) => {
             value={moment(value, 'HH:mm:ss')}
             onChange={(_: any, timeString: string) => {
               setValue(timeString);
+              setLabelValue(timeString);
               if (props.onChange) {
                 props.onChange(timeString);
               }
@@ -160,6 +163,7 @@ export default (props: Props) => {
             placeholder={'请输入'}
             onChange={(e) => {
               setValue(e.target.value);
+              setLabelValue(e.target.value);
               if (props.onChange) {
                 props.onChange(e.target.value, source);
               }
@@ -185,7 +189,7 @@ export default (props: Props) => {
           defaultExpandAll
           fieldNames={{ title: 'name', key: 'id' }}
           onSelect={(selectedKeys, e) => {
-            console.log(e.node);
+            // console.log(e.node);
             setLabelValue(e.node.description);
             setValue(selectedKeys[0]);
             if (props.onChange) {
@@ -208,7 +212,7 @@ export default (props: Props) => {
         itemList={itemList}
         value={value}
         onChange={(val: any, tabKey: any) => {
-          console.log(val, tabKey);
+          // console.log(val, tabKey);
           setValue(val);
           setSource(tabKey);
           if (props.onChange) {

+ 1 - 1
src/pages/rule-engine/Scene/Save/action/DeviceOutput/actions/WriteProperty.tsx

@@ -48,7 +48,7 @@ export default (props: Props) => {
     } else {
       setPropertiesValue(undefined);
     }
-  }, [props.value, props.properties]);
+  }, [props.properties]);
 
   useEffect(() => {
     if (props.onChange && propertiesValue) {

+ 1 - 9
src/pages/rule-engine/Scene/Save/action/DeviceOutput/actions/functionCall.tsx

@@ -16,7 +16,6 @@ interface FunctionCallProps {
   value?: any;
   onChange?: (data: any) => void;
   name?: any;
-  productId?: string;
 }
 
 export default (props: FunctionCallProps) => {
@@ -27,7 +26,6 @@ export default (props: FunctionCallProps) => {
     if (props.functionData && props.functionData.length) {
       setEditableRowKeys(props.functionData.map((d) => d.id));
       if (props.value) {
-        // console.log(props.functionData, 11111111111);
         const tableData = props.functionData.map((item: any) => {
           const oldValue = props.value.find((oldItem: any) => oldItem.name === item.id);
           if (oldValue) {
@@ -53,12 +51,6 @@ export default (props: FunctionCallProps) => {
     }
   }, [props.value, props.functionData]);
 
-  useEffect(() => {
-    if (props.productId && props.onChange) {
-      props.onChange([]);
-    }
-  }, [props.productId]);
-
   const getItemNode = (record: any) => {
     const type = record.type;
     return <TypeModel value={record.value} type={type} record={record} name={props.name} />;
@@ -95,7 +87,7 @@ export default (props: FunctionCallProps) => {
       submitter={false}
       onValuesChange={() => {
         const values = formRef.current?.getFieldsValue();
-        console.log(values, 'values');
+        // console.log(values, 'values');
         if (props.onChange) {
           props.onChange(
             values.table.map((item: any) => ({

+ 16 - 11
src/pages/rule-engine/Scene/Save/action/DeviceOutput/actions/index.tsx

@@ -16,7 +16,7 @@ export default observer((props: Props) => {
   const [form] = Form.useForm();
   const [deviceMessageType, setDeviceMessageType] = useState('');
   const [properties, setProperties] = useState([]); // 物模型-属性
-  const [propertiesId, setPropertiesId] = useState<string | undefined>(''); // 物模型-属性ID,用于串行
+  // const [propertiesId, setPropertiesId] = useState<string | undefined>(''); // 物模型-属性ID,用于串行
   const [functionList, setFunctionList] = useState<any>([]); // 物模型-功能
   const [functionId, setFunctionId] = useState('');
   const [functions, setFunctions] = useState([]);
@@ -43,14 +43,12 @@ export default observer((props: Props) => {
   ];
 
   useEffect(() => {
-    // console.log(DeviceModel.message)
-    setDeviceMessageType(DeviceModel.message.messageType);
     if (DeviceModel.productDetail) {
       const metadata = JSON.parse(DeviceModel.productDetail?.metadata || '{}');
       setProperties(metadata.properties);
       setFunctions(metadata.functions);
     }
-  }, [DeviceModel.productDetail, functionId]);
+  }, [DeviceModel.productDetail]);
 
   useEffect(() => {
     if (functionId && functions.length !== 0) {
@@ -71,12 +69,21 @@ export default observer((props: Props) => {
           });
         }
         setFunctionList(array);
-        console.log(propertiesId, 'array');
       }
     }
   }, [functions, functionId]);
 
   useEffect(() => {
+    if (DeviceModel.message.messageType) {
+      setDeviceMessageType(DeviceModel.message.messageType);
+    }
+    if (DeviceModel.message.functionId) {
+      setFunctionId(DeviceModel.message.functionId);
+    }
+    // console.log(DeviceModel.message)
+  }, [DeviceModel.message]);
+
+  useEffect(() => {
     props.get(form);
   }, [form]);
 
@@ -93,12 +100,14 @@ export default observer((props: Props) => {
           name={['message', 'messageType']}
           label="动作类型"
           required
+          rules={[{ required: true, message: '请选择动作类型' }]}
           // initialValue="WRITE_PROPERTY"
         >
           <TopCard
             typeList={TypeList}
             onChange={(value: string) => {
               setDeviceMessageType(value);
+              console.log(value);
             }}
           />
         </Form.Item>
@@ -129,11 +138,7 @@ export default observer((props: Props) => {
                 name={['message', 'inputs']}
                 rules={[{ required: true, message: '请输入功能值' }]}
               >
-                <FunctionCall
-                  functionData={functionList}
-                  productId={DeviceModel.productId[0]}
-                  name={props.name}
-                />
+                <FunctionCall functionData={functionList} name={props.name} />
               </Form.Item>
             )}
           </>
@@ -144,7 +149,7 @@ export default observer((props: Props) => {
             label="读取属性"
             rules={[{ required: true, message: '请选择读取属性' }]}
           >
-            <ReadProperty properties={properties} propertiesChange={setPropertiesId} />
+            <ReadProperty properties={properties} />
           </Form.Item>
         )}
         {deviceMessageType === 'WRITE_PROPERTY' && (

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

@@ -132,7 +132,7 @@ export default observer((props: Props) => {
     <Modal
       title={'执行动作'}
       open
-      width={800}
+      width={860}
       onCancel={() => {
         props.cancel();
         DeviceModel.current = 0;

+ 2 - 1
src/pages/rule-engine/Scene/Save/action/ListItem/List.tsx

@@ -57,7 +57,8 @@ export default (props: ListProps) => {
       </AddButton>
       {visible && (
         <Modal
-          type={props.type}
+          // type={props.type}
+          parallel={props.parallel}
           name={props.actions.length + 1}
           data={{
             key: `${props.type}_${props.actions.length}`,

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

@@ -84,7 +84,6 @@ export default (props: Props) => {
           {...props.inputProps}
           value={props.labelValue ? props.labelValue : value}
           onChange={(e) => {
-            console.log(111111);
             setValue(e.target.value);
             props.onChange(value, tabKey);
           }}