Sfoglia il codice sorgente

fix: 时间参数控件

100011797 3 anni fa
parent
commit
3224b37778

+ 30 - 13
src/pages/rule-engine/Scene/Save/action/DeviceOutput/actions/TypeModel.tsx

@@ -3,6 +3,7 @@ import { useEffect, useState } from 'react';
 import { DataNode } from 'antd/es/tree';
 import { Input, InputNumber, Tree } from 'antd';
 import MTimePicker from '../../../components/ParamsSelect/components/MTimePicker';
+import moment from 'moment';
 
 interface Props {
   value: any;
@@ -39,7 +40,10 @@ export default (props: Props) => {
       ],
     },
   ];
-  const [showValue, setShowValue] = useState<any>('');
+
+  useEffect(() => {
+    setValue(props.value);
+  }, [props.value]);
 
   const renderNode = (type: string) => {
     switch (type) {
@@ -51,8 +55,10 @@ export default (props: Props) => {
           <InputNumber
             value={value}
             onChange={(e: any) => {
-              setShowValue(e);
               setValue(e);
+              if (props.onChange) {
+                props.onChange(e);
+              }
             }}
             style={{ width: '100%' }}
             placeholder={'请输入'}
@@ -61,15 +67,28 @@ export default (props: Props) => {
       case 'date':
         return (
           <MTimePicker
-            value={value}
-            onChange={(time: any, timeString: string) => {
-              setShowValue(timeString);
-              setValue(time);
+            value={moment(value, 'HH:mm:ss')}
+            onChange={(_: any, timeString: string) => {
+              setValue(timeString);
+              if (props.onChange) {
+                props.onChange(timeString);
+              }
             }}
           />
         );
       default:
-        return <Input value={value} placeholder={'请输入' + name} />;
+        return (
+          <Input
+            value={value}
+            placeholder={'请输入' + name}
+            onChange={(e) => {
+              setValue(e.target.value);
+              if (props.onChange) {
+                props.onChange(e.target.value);
+              }
+            }}
+          />
+        );
     }
   };
 
@@ -89,17 +108,15 @@ export default (props: Props) => {
           defaultExpandAll
           onSelect={(selectedKeys) => {
             setValue(selectedKeys[0]);
-            setShowValue(selectedKeys[0]);
+            if (props.onChange) {
+              props.onChange(selectedKeys[0]);
+            }
           }}
         />
       ),
     },
   ];
 
-  useEffect(() => {
-    setShowValue(value);
-  }, [props.value]);
-
   return (
     <div>
       <ParamsSelect
@@ -109,7 +126,7 @@ export default (props: Props) => {
         }}
         tabKey={'manual'}
         itemList={itemList}
-        value={showValue}
+        value={value}
         onChange={(val: any) => {
           setValue(val);
         }}