wzyyy 3 лет назад
Родитель
Сommit
04b01b97ef

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

@@ -28,7 +28,7 @@ export default (props: Props) => {
   const ref = useRef<any>('');
 
   useEffect(() => {
-    // console.log('props.value----',props.value,props.properties);
+    // console.log('props.value----', props.value);
     if (props.value) {
       if (props.properties && props.properties.length) {
         if (0 in props.value) {
@@ -37,8 +37,12 @@ export default (props: Props) => {
           setPropertiesValue(undefined);
         } else {
           Object.keys(props.value).forEach((key: string) => {
+            const it =
+              props.value[key].source === 'fixed'
+                ? props.value[key]?.value
+                : props.value[key]?.upperKey;
             setPropertiesId(key);
-            setPropertiesValue(props.value[key].value);
+            setPropertiesValue(it);
             setSource(props.value[key].source);
             const propertiesItem = props.properties.find((item: any) => item.id === key);
             if (propertiesItem) {
@@ -68,11 +72,17 @@ export default (props: Props) => {
           source: source,
         },
       };
+      const upperObj = {
+        [propertiesId || 0]: {
+          upperKey: propertiesValue,
+          source: source,
+        },
+      };
       //处理枚举外部回显
       if (ref.current) {
-        props.onChange(obj, textRef.current, ref.current);
+        props.onChange(source === 'upper' ? upperObj : obj, textRef.current, ref.current);
       } else {
-        props.onChange(obj, textRef.current);
+        props.onChange(source === 'upper' ? upperObj : obj, textRef.current);
       }
     }
   }, [propertiesValue, source]);
@@ -133,7 +143,7 @@ export default (props: Props) => {
               }
             }}
             onChange={(value, sources, text) => {
-              // console.log(value, sources);
+              console.log(value, sources);
               // console.log(text);
               ref.current = text;
               setPropertiesValue(value);

+ 17 - 2
src/pages/rule-engine/Scene/Save/action/DeviceOutput/actions/functionCall.tsx

@@ -25,7 +25,7 @@ export default (props: FunctionCallProps) => {
   const formRef = useRef<ProFormInstance<any>>();
 
   useEffect(() => {
-    console.log(props.value, props.functionData);
+    // console.log(props.value, props.functionData);
     if (props.functionData && props.functionData.length) {
       setEditableRowKeys(props.functionData.map((d) => d.id));
       if (props.value) {
@@ -56,6 +56,7 @@ export default (props: FunctionCallProps) => {
 
   const getItemNode = (record: any) => {
     const type = record.type;
+    // console.log('------', record)
     return (
       <TypeModel
         value={record.value}
@@ -65,6 +66,20 @@ export default (props: FunctionCallProps) => {
         branchGroup={props.branchGroup}
         thenName={props.thenName}
         format={record?.format}
+        onChange={(value, source) => {
+          record.source = source;
+          record.value = value;
+          record.upperKey = value;
+          // props.onChange(value)
+          // const arr = data.filter((item:any)=>item.id!==record.id)
+          // console.log('-----typeModel', arr, record,[record],data)
+          // formRef.current?.setFieldsValue({
+          //   table: [
+          //     ...arr,
+          //     record
+          //   ],
+          // });
+        }}
       />
     );
   };
@@ -100,7 +115,7 @@ export default (props: FunctionCallProps) => {
       submitter={false}
       onValuesChange={() => {
         const values = formRef.current?.getFieldsValue();
-        // console.log(values, 'values');
+        // console.log(values.table, 'values');
         if (props.onChange) {
           props.onChange(
             values.table.map((item: any) => ({

+ 6 - 3
src/pages/rule-engine/Scene/Save/action/DeviceOutput/actions/index.tsx

@@ -80,6 +80,8 @@ export default observer((props: Props) => {
             format: datum.valueType ? datum.valueType.format : undefined,
             options: datum.valueType ? datum.valueType.elements : undefined,
             value: undefined,
+            source: undefined,
+            upperKey: undefined,
           });
         }
         setFunctionList(array);
@@ -94,7 +96,6 @@ export default observer((props: Props) => {
     if (DeviceModel.message.functionId) {
       setFunctionId(DeviceModel.message.functionId);
     }
-    console.log('DeviceModel.message----------', DeviceModel.message);
   }, [DeviceModel.message]);
 
   useEffect(() => {
@@ -214,12 +215,14 @@ export default observer((props: Props) => {
               }}
               onChange={(value, text, valueLable) => {
                 const item = value[Object.keys(value)?.[0]]?.value;
-                // console.log(item);
+                const item1 = value[Object.keys(value)?.[0]]?.upperKey;
+                const source = value[Object.keys(value)?.[0]]?.source;
+                console.log(value);
                 DeviceModel.propertiesName = text;
                 if (valueLable) {
                   DeviceModel.propertiesValue = valueLable;
                 } else {
-                  DeviceModel.propertiesValue = item;
+                  DeviceModel.propertiesValue = source === 'fixed' ? item : item1;
                 }
               }}
               onRest={(value: any) => {

+ 1 - 1
src/pages/rule-engine/Scene/Save/terms/paramsItem.tsx

@@ -378,7 +378,7 @@ const ParamsItem = observer((props: ParamsItemProps) => {
               ValueRef.current.value = v;
               if (!!metricsOptions.length) {
                 if (DoubleFilter.includes(termType)) {
-                  labelCache.current[2] = { 0: v?.value[0], 1: v?.value[1] };
+                  labelCache.current[2] = { 0: v?.value?.[0], 1: v?.value[1] };
                 } else {
                   labelCache.current[2] = { 0: lb };
                 }

+ 5 - 0
src/pages/system/Apply/Save/index.less

@@ -48,6 +48,11 @@
       background-color: #fff;
       border-color: #1d39c4;
       box-shadow: none;
+      opacity: 1;
+    }
+
+    .ant-radio-button-wrapper-disabled {
+      opacity: 0.5;
     }
   }
 }