Explorar o código

feat: 设备输出

Wzyyy98 %!s(int64=3) %!d(string=hai) anos
pai
achega
33bdcb2504

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

@@ -14,7 +14,7 @@ export const service = new Service<any>('');
 
 interface Props {
   value: Partial<ActionsDeviceProps> | any;
-  save: (data: any) => void;
+  save: (data: any, _options?: any) => void;
   cancel: () => void;
   name: number;
 }
@@ -49,6 +49,15 @@ export default observer((props: Props) => {
     },
   ];
 
+  // const handleOptions = ()=>{
+  //   const _options: any = {
+  //     name: '', // 名称
+  //     onlyName: false,
+  //     type: '', // 触发类型
+  //     action: DeviceModel.options.action,
+  //   };
+  // }
+
   const next = () => {
     if (
       (DeviceModel.current === 0 && DeviceModel.productId.length !== 0) ||
@@ -73,15 +82,37 @@ export default observer((props: Props) => {
       source: 'fixed',
       selectorValues: [
         {
-          value: DeviceModel.deviceDetail.id || DeviceModel.deviceDetail.id[0],
+          value: DeviceModel.deviceDetail.id,
           name: DeviceModel.deviceDetail.name,
         },
       ],
       productId: DeviceModel.productId[0],
       message: value,
     };
-    // console.log('device', item)
-    props.save(item);
+    console.log(item, value);
+
+    const _options: any = {
+      name: '', //设备名称
+      type: '', //类型
+      properties: '', //属性功能
+    };
+    _options.name = DeviceModel.deviceDetail.name;
+    const _type = value.device.message.messageType;
+    if (_type === 'INVOKE_FUNCTION') {
+      _options.type = '执行';
+      _options.properties = value.device.message.functionId;
+    }
+    if (_type === 'READ_PROPERTY') {
+      _options.type = '读取';
+      _options.properties = value.device.message.properties?.[0];
+    }
+    if (_type === 'WRITE_PROPERTY') {
+      _options.type = '设置';
+      _options.properties = Object.keys(value.device.message.properties)?.[0];
+    }
+    console.log(_options);
+    console.log('device', item);
+    props.save(item, _options);
   };
 
   useEffect(() => {

+ 2 - 0
src/pages/rule-engine/Scene/Save/action/DeviceOutput/model.ts

@@ -15,6 +15,7 @@ type ModelType = {
   productDetail: ProductItem | any;
   device: Partial<ActionsDeviceProps>;
   deviceDetail: any;
+  options: any;
 };
 
 const DeviceModel = model<ModelType>({
@@ -25,6 +26,7 @@ const DeviceModel = model<ModelType>({
   productDetail: {},
   device: {},
   deviceDetail: {},
+  options: {},
 });
 
 export default DeviceModel;

+ 4 - 3
src/pages/rule-engine/Scene/Save/action/Modal/add.tsx

@@ -7,7 +7,7 @@ import Device from '../DeviceOutput';
 
 interface Props {
   close: () => void;
-  save: (data: any) => void;
+  save: (data: any, options?: any) => void;
   data: Partial<ActionsType>;
   name: number;
 }
@@ -30,9 +30,10 @@ export default (props: Props) => {
         return (
           <Device
             value={props.data?.device}
-            save={(data: any) => {
+            save={(data: any, options: any) => {
               setActionType('');
-              props.save(data);
+              // console.log(data,options)
+              props.save(data, options);
             }}
             name={props.name}
             cancel={() => {