Quellcode durchsuchen

代码同步,未调试完成服务端断开

yukai vor 2 Jahren
Ursprung
Commit
0e4b431a4c

+ 15 - 15
src/views/iot/scene/manage/component/actionItem.vue

@@ -11,7 +11,7 @@
         <div class="icon"></div>串行动作
       </div>
       <div class="product flex flex-warp">
-        <ActionSerialItem :serial="item.serial" :sourceData="sourceData" @saveData="saveData" ></ActionSerialItem>
+        <ActionSerialItem :index="index" :serial="item.serial" :sourceData="sourceData" @saveData="saveData" @delData="delData"></ActionSerialItem>
 
       
       </div>
@@ -76,20 +76,18 @@ const getOneDetail = () => {
 					addActionDetail();
 					// getOneDetail();
 				}
-       	originalSceneList.value = res;
 
-				const action = res.map((scene: any) => {
-					const parsedBodyJson = JSON.parse(scene.bodyjson);
-					return {
-						...parsedBodyJson
-					};
-				});
+       	originalSceneList.value = res;
 
+         const action = res.map(scene=> {
+              const parsedBodyJson = JSON.parse(scene.bodyjson);
+              return {
+                  serial: parsedBodyJson[0].serial,
+                  parallel: parsedBodyJson[0].parallel
+              };
+          });
         
-        // actionList.value=action;
-        console.log(action);
-
-
+        actionList.value=action;
 			})
 		};
 getOneDetail();    
@@ -106,8 +104,8 @@ const addActionDetail = () => {
 		});
 }
 //删除一条场景
-const delScenesDetail = (index: number) => {
-			let ids =props.scene_id;
+const delData = (index: number) => {
+			let ids =originalSceneList.value[index].id;
 			api.manage.delDetail(ids).then((res: any) => {
 				// getOneDetail();
 			});
@@ -115,7 +113,7 @@ const delScenesDetail = (index: number) => {
 
 //修改一条场景
 const saveData = (data: any) => {
-			let ids = props.scene_id;
+      let ids = originalSceneList.value[data.index].id;
 			api.manage.editDetail({ id: ids, bodyjson:actionList.value }).then((res: any) => {
 				  getOneDetail();
 			});
@@ -128,6 +126,8 @@ const addAction = () => {
     'serial':[],
     'parallel':[],
   });
+  addActionDetail();
+
 };
 const delAction = (index: number) => {
   actionList.value.splice(index, 1);

+ 34 - 14
src/views/iot/scene/manage/component/actionParallelItem.vue

@@ -17,12 +17,12 @@
             </el-option>
           </el-select>
         </el-form-item>
-        <DeviceOut :index="index" :sourceData="sourceData" v-if="item.actionType==='deviceOutput'" @SetSaveData="SetSaveData"></DeviceOut>
-        <SendNotice  :index="index" v-if="item.actionType==='sendNotice'"  @SetSaveData="SetSaveData"></SendNotice>
-        <CallWebService :index="index"  v-if="item.actionType==='callWebService'"  @SetSaveData="SetSaveData"></CallWebService>
-        <TriggerAlarm :index="index"  v-if="item.actionType==='triggerAlarm'"  @saveData="saveData"></TriggerAlarm>
-        <DelayExecution  :index="index" v-if="item.actionType==='delayExecution'"  @saveData="saveData"></DelayExecution>
-        <TriggerCustomEvent :index="index"  v-if="item.actionType==='triggerCustomEvent'"  @saveData="saveData"></TriggerCustomEvent>
+        <DeviceOut :index="index" :data="parallel[index]" :sourceData="sourceData" v-if="item.actionType==='deviceOutput' && parallel[index] && sourceData.length>0" @SetSaveData="SetSaveData"></DeviceOut>
+        <SendNotice  :index="index" :data="parallel[index]" v-if="item.actionType==='sendNotice'  && parallel[index]"  @SetSaveData="SetSaveData"></SendNotice>
+        <CallWebService :index="index" :data="parallel[index]"  v-if="item.actionType==='callWebService'  && parallel[index]"  @SetSaveData="SetSaveData"></CallWebService>
+        <TriggerAlarm :index="index" :data="parallel[index]"  v-if="item.actionType==='triggerAlarm'  && parallel[index]"  @SetSaveData="SetSaveData"></TriggerAlarm>
+        <DelayExecution  :index="index" :data="parallel[index]" v-if="item.actionType==='delayExecution'  && parallel[index]"  @SetSaveData="SetSaveData"></DelayExecution>
+        <TriggerCustomEvent :index="index" :data="parallel[index]"  v-if="item.actionType==='triggerCustomEvent'  && parallel[index]"  @SetSaveData="SetSaveData"></TriggerCustomEvent>
       </div>
     </div>
     <div>
@@ -44,7 +44,7 @@ import TriggerAlarm from './actionType/triggerAlarm.vue';
 import DelayExecution from './actionType/delayExecution.vue';
 import TriggerCustomEvent from './actionType/triggerCustomEvent.vue';
 const deviceListData = ref<testIValueType[]>([]);
-const emit = defineEmits(['addScenesDetail','delScenesDetail','saveData']);
+const emit = defineEmits(['addScenesDetail','delData','saveData']);
 
 interface IValueType {
   actionType?:string;
@@ -65,6 +65,10 @@ const props = defineProps({
     type: Array as PropType<testIValueType[]>,
     default: () => []
   },
+  index: {
+    type: Number ,
+    default: () => []
+  },
   sourceActionTypeData: {
     type: Array as PropType<testIValueType[]>,
     default: () => [{
@@ -88,21 +92,29 @@ const props = defineProps({
     }]
   }
 })
-const serialValue = ref(props.parallel);
+const parallelValue = ref(props.parallel);
 
 const saveData=()=>{
-  emit('saveData',props.parallel);
+  let newData={
+    index:props.index,
+    data:props.parallel,
+  }
+  emit('saveData',newData);
 }
 watch(() => props.parallel, (newSerial) => {
-  serialValue.value = newSerial;
+  parallelValue.value = newSerial;
 });
 
 
 
 
 const SetSaveData = (data:any) => {
-  serialValue.value[data.index] = data.data;
-  emit('saveData', serialValue.value);
+  parallelValue.value[data.index] = data.data;
+  let newData={
+    index:props.index,
+    data:parallelValue.value,
+  }
+  emit('saveData', newData);
 }
 const addScene = () => {
   props.parallel.push({
@@ -111,7 +123,15 @@ const addScene = () => {
 };
 const delScene = (index: number) => {
   props.parallel.splice(index, 1);
+  let newData={
+    index:props.index,
+    data:props.parallel,
+  }
+  emit('saveData',newData);
 }
+
+
+
 </script>
 <style scoped lang="scss">
 .type-item {
@@ -137,8 +157,8 @@ const delScene = (index: number) => {
 
   .biankang {
 
-    border: 1px solid #d6d6d6;
-    border-radius: 10px;
+    border-top: 1px solid #d6d6d6;
+    // border-radius: 10px;
   }
 
 

+ 31 - 11
src/views/iot/scene/manage/component/actionSerialItem.vue

@@ -17,12 +17,12 @@
             </el-option>
           </el-select>
         </el-form-item>
-        <DeviceOut :index="index" :sourceData="sourceData" v-if="item.actionType==='deviceOutput'" @SetSaveData="SetSaveData"></DeviceOut>
-        <SendNotice  :index="index" v-if="item.actionType==='sendNotice'"  @SetSaveData="SetSaveData"></SendNotice>
-        <CallWebService :index="index"  v-if="item.actionType==='callWebService'"  @SetSaveData="SetSaveData"></CallWebService>
-        <TriggerAlarm :index="index"  v-if="item.actionType==='triggerAlarm'"  @saveData="saveData"></TriggerAlarm>
-        <DelayExecution  :index="index" v-if="item.actionType==='delayExecution'"  @saveData="saveData"></DelayExecution>
-        <TriggerCustomEvent :index="index"  v-if="item.actionType==='triggerCustomEvent'"  @saveData="saveData"></TriggerCustomEvent>
+        <DeviceOut :index="index" :data="serial[index]" :sourceData="sourceData" v-if="item.actionType==='deviceOutput' && serial[index] && sourceData.length>0" @SetSaveData="SetSaveData"></DeviceOut>
+        <SendNotice  :index="index" :data="serial[index]" v-if="item.actionType==='sendNotice'  && serial[index]"  @SetSaveData="SetSaveData"></SendNotice>
+        <CallWebService :index="index" :data="serial[index]"  v-if="item.actionType==='callWebService'  && serial[index]"  @SetSaveData="SetSaveData"></CallWebService>
+        <TriggerAlarm :index="index" :data="serial[index]"  v-if="item.actionType==='triggerAlarm'  && serial[index]"  @SetSaveData="SetSaveData"></TriggerAlarm>
+        <DelayExecution  :index="index" :data="serial[index]" v-if="item.actionType==='delayExecution'  && serial[index]"  @SetSaveData="SetSaveData"></DelayExecution>
+        <TriggerCustomEvent :index="index" :data="serial[index]"  v-if="item.actionType==='triggerCustomEvent'  && serial[index]"  @SetSaveData="SetSaveData"></TriggerCustomEvent>
       </div>
     </div>
     <div>
@@ -44,7 +44,7 @@ import TriggerAlarm from './actionType/triggerAlarm.vue';
 import DelayExecution from './actionType/delayExecution.vue';
 import TriggerCustomEvent from './actionType/triggerCustomEvent.vue';
 const deviceListData = ref<testIValueType[]>([]);
-const emit = defineEmits(['addScenesDetail','delScenesDetail','saveData']);
+const emit = defineEmits(['addScenesDetail','delData','saveData']);
 
 interface IValueType {
   actionType?:string;
@@ -65,6 +65,10 @@ const props = defineProps({
     type: Array as PropType<testIValueType[]>,
     default: () => []
   },
+  index: {
+    type: Number ,
+    default: () => []
+  },
   sourceActionTypeData: {
     type: Array as PropType<testIValueType[]>,
     default: () => [{
@@ -91,7 +95,11 @@ const props = defineProps({
 const serialValue = ref(props.serial);
 
 const saveData=()=>{
-  emit('saveData',props.serial);
+  let newData={
+    index:props.index,
+    data:props.serial,
+  }
+  emit('saveData',newData);
 }
 watch(() => props.serial, (newSerial) => {
   serialValue.value = newSerial;
@@ -102,7 +110,11 @@ watch(() => props.serial, (newSerial) => {
 
 const SetSaveData = (data:any) => {
   serialValue.value[data.index] = data.data;
-  emit('saveData', serialValue.value);
+  let newData={
+    index:props.index,
+    data:serialValue.value,
+  }
+  emit('saveData', newData);
 }
 const addScene = () => {
   props.serial.push({
@@ -111,7 +123,15 @@ const addScene = () => {
 };
 const delScene = (index: number) => {
   props.serial.splice(index, 1);
+  let newData={
+    index:props.index,
+    data:props.serial,
+  }
+  emit('saveData',newData);
 }
+
+
+
 </script>
 <style scoped lang="scss">
 .type-item {
@@ -137,8 +157,8 @@ const delScene = (index: number) => {
 
   .biankang {
 
-    border: 1px solid #d6d6d6;
-    border-radius: 10px;
+    border-top: 1px solid #d6d6d6;
+    // border-radius: 10px;
   }
 
 

+ 10 - 2
src/views/iot/scene/manage/component/actionType/callWebService.vue

@@ -23,10 +23,14 @@
 </template>
 
 <script lang="ts" setup>
-import {  ref } from 'vue'
+import {  ref,onMounted } from 'vue'
 const emit = defineEmits(['SetSaveData']);
 
 const props = defineProps({
+  data: {
+    type: Object,
+    default: () => { }
+  },
   index:{
     type: Number,
     default: () => 0
@@ -54,7 +58,11 @@ const saveData = () => {
 
 }
 
-
+onMounted(() => {
+    if (props.data && props.data.callWebService) {
+      fromData.value.callWebService = { ...props.data.callWebService }
+    }
+});
 </script>
 <style scoped lang="scss">
 .form-item {

+ 10 - 1
src/views/iot/scene/manage/component/actionType/delayExecution.vue

@@ -7,10 +7,14 @@
 </template>
 
 <script lang="ts" setup>
-import {  ref } from 'vue'
+import {  ref,onMounted } from 'vue'
 const emit = defineEmits(['SetSaveData']);
 
 const props = defineProps({
+  data: {
+    type: Object,
+    default: () => { }
+  },
   index:{
     type: Number,
     default: () => 0
@@ -31,6 +35,11 @@ const saveData = () => {
   emit('SetSaveData',newdata);
 }
 
+onMounted(() => {
+    if (props.data && props.data.delayTime) {
+      fromData.value.delayTime = { ...props.data.delayTime }
+    }
+});
 
 </script>
 <style scoped lang="scss">

+ 145 - 125
src/views/iot/scene/manage/component/actionType/deviceOut.vue

@@ -1,84 +1,82 @@
 <template>
-          <el-form-item label="产品:" prop="productKey" class="form-item" style="margin-left: 50px;">
-            <el-select v-model="fromData.productKey" filterable placeholder="请选择产品"
-              @change="seletChange">
-              <el-option v-for="it in sourceData" :key="it.key" :label="it.name" :value="it.key">
-                <span style="float: left">{{ it.name }}</span>
-                <span style="float: right; font-size: 13px">{{ it.key }}</span>
-              </el-option>
-            </el-select>
-          </el-form-item>
-
-          <el-form-item label="设备:" prop="deviceKey" class="form-item">
-            <el-select v-model="fromData.deviceKey" filterable placeholder="请选择设备" @change="saveData">
-              <el-option v-for="it in deviceListData" :key="it.key" :label="it.name" :value="it.key">
-                <span style="float: left">{{ it.name }}</span>
-                <span style="float: right; font-size: 13px">{{ it.key }}</span>
-              </el-option>
-            </el-select>
-          </el-form-item>
-
-          <el-form-item label="触发类型:" prop="executeAction" class="form-item">
-            <el-select v-model="fromData.executeAction" filterable placeholder="请选择触发类型" @change="getAction">
-              <el-option v-for="it in sourceActionTypeData" :key="it.key" :label="it.name" :value="it.key">
-                <span style="float: left">{{ it.name }}</span>
-                <span style="float: right; font-size: 13px">{{ it.key }}</span>
-              </el-option>
-            </el-select>
-          </el-form-item>
-
-          <el-form-item label="功能调用" prop="type" class="form-item" v-if="fromData.executeAction=='functionCall'">
-            <el-select v-model="fromData.functionCall.functionName" filterable placeholder="请选择触发类型" @change="saveData">
-              <el-option v-for="it in functionCallList" :key="it.key" :label="it.name" :value="it.key">
-                <span style="float: left">{{ it.name }}</span>
-                <span style="float: right; font-size: 13px">{{ it.key }}</span>
-              </el-option>
-            </el-select>
-          </el-form-item>
-
-
-          <el-form-item label="参数" prop="type" class="form-item" v-if="fromData.executeAction=='functionCall'">
-                <el-input v-model="fromData.functionCall.parameter" placeholder="请输入参数" @input="saveData" />
-          </el-form-item>
-
-
-          
-          <el-form-item label="读取属性" prop="type" class="form-item" v-if="fromData.executeAction=='getProperties'">
-            <el-select v-model="fromData.getProperties" filterable multiple  placeholder="请选择读取属性" @change="saveData">
-              <el-option v-for="it in propertyCallList" :key="it.key" :label="it.name" :value="it.key">
-                <span style="float: left">{{ it.name }}</span>
-                <span style="float: right; font-size: 13px">{{ it.key }}</span>
-              </el-option>
-            </el-select>
-          </el-form-item>
-
-          <el-form-item label="设置属性" prop="type" class="form-item" v-if="fromData.executeAction=='setProperties'">
-            <el-select v-model="fromData.setProperties_temp" filterable multiple  placeholder="请选择设置属性" @change="setProperties">
-              <el-option v-for="it in propertyCallList" :key="it.key" :label="it.name" :value="it.key">
-                <span style="float: left">{{ it.name }}</span>
-                <span style="float: right; font-size: 13px">{{ it.key }}</span>
-              </el-option>
-            </el-select>
-          </el-form-item>
-          <div class="form-item" v-if="fromData.executeAction=='setProperties'">
-            <el-table :data="setPropertiesItem">
-                <el-table-column>
-                  <template #default="{row}">
-                    <span>{{row.name}}</span>
-                  </template>
-                </el-table-column>
-                <el-table-column >
-                  <template #default="{row}">
-                    <el-input v-model="row.value" @input="saveSetData"></el-input>
-                  </template>
-                </el-table-column>
-              </el-table>
-          </div>
-
+  <el-form-item label="产品:" prop="productKey" class="form-item" style="margin-left: 50px;">
+    <el-select v-model="fromData.productKey" filterable placeholder="请选择产品" @change="seletChange">
+      <el-option v-for="it in sourceData" :key="it.key" :label="it.name" :value="it.key">
+        <span style="float: left">{{ it.name }}</span>
+        <span style="float: right; font-size: 13px">{{ it.key }}</span>
+      </el-option>
+    </el-select>
+  </el-form-item>
+
+  <el-form-item label="设备:" prop="deviceKey" class="form-item">
+    <el-select v-model="fromData.deviceKey" filterable placeholder="请选择设备" @change="saveData">
+      <el-option v-for="it in deviceListData" :key="it.key" :label="it.name" :value="it.key">
+        <span style="float: left">{{ it.name }}</span>
+        <span style="float: right; font-size: 13px">{{ it.key }}</span>
+      </el-option>
+    </el-select>
+  </el-form-item>
+
+  <el-form-item label="触发类型:" prop="executeAction" class="form-item">
+    <el-select v-model="fromData.executeAction" filterable placeholder="请选择触发类型" @change="getAction">
+      <el-option v-for="it in sourceActionTypeData" :key="it.key" :label="it.name" :value="it.key">
+        <span style="float: left">{{ it.name }}</span>
+        <span style="float: right; font-size: 13px">{{ it.key }}</span>
+      </el-option>
+    </el-select>
+  </el-form-item>
+
+  <el-form-item label="功能调用" prop="type" class="form-item" v-if="fromData.executeAction == 'functionCall'">
+    <el-select v-model="fromData.functionCall.functionName" filterable placeholder="请选择触发类型" @change="saveData">
+      <el-option v-for="it in functionCallList" :key="it.key" :label="it.name" :value="it.key">
+        <span style="float: left">{{ it.name }}</span>
+        <span style="float: right; font-size: 13px">{{ it.key }}</span>
+      </el-option>
+    </el-select>
+  </el-form-item>
+
+
+  <el-form-item label="参数" prop="type" class="form-item" v-if="fromData.executeAction == 'functionCall'">
+    <el-input v-model="fromData.functionCall.parameter" placeholder="请输入参数" @input="saveData" />
+  </el-form-item>
+
+
+
+  <el-form-item label="读取属性" prop="type" class="form-item" v-if="fromData.executeAction == 'getProperties'">
+    <el-select v-model="fromData.getProperties" filterable multiple placeholder="请选择读取属性" @change="saveData">
+      <el-option v-for="it in propertyCallList" :key="it.key" :label="it.name" :value="it.key">
+        <span style="float: left">{{ it.name }}</span>
+        <span style="float: right; font-size: 13px">{{ it.key }}</span>
+      </el-option>
+    </el-select>
+  </el-form-item>
+
+  <el-form-item label="设置属性" prop="type" class="form-item" v-if="fromData.executeAction == 'setProperties'">
+    <el-select v-model="fromData.setProperties_temp" filterable multiple placeholder="请选择设置属性" @change="setProperties">
+      <el-option v-for="it in propertyCallList" :key="it.key" :label="it.name" :value="it.key">
+        <span style="float: left">{{ it.name }}</span>
+        <span style="float: right; font-size: 13px">{{ it.key }}</span>
+      </el-option>
+    </el-select>
+  </el-form-item>
+  <div class="form-item" v-if="fromData.executeAction == 'setProperties'">
+    <el-table :data="setPropertiesItem">
+      <el-table-column>
+        <template #default="{ row }">
+          <span>{{ row.name }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column>
+        <template #default="{ row }">
+          <el-input v-model="row.value" @input="saveSetData"></el-input>
+        </template>
+      </el-table-column>
+    </el-table>
+  </div>
 </template>
 
 <script lang="ts" setup>
-import { PropType, ref  } from 'vue'
+import { PropType, ref } from 'vue'
 import product from '/@/api/device';
 import datahub from '/@/api/datahub';
 const emit = defineEmits(['SetSaveData']);
@@ -93,10 +91,14 @@ const props = defineProps({
     type: Array as PropType<testIValueType[]>,
     default: () => []
   },
-  index:{
+  index: {
     type: Number,
     default: () => 0
   },
+  data: {
+    type: Object,
+    default: () => { }
+  },
   sourceActionTypeData: {
     type: Array as PropType<testIValueType[]>,
     default: () => [{
@@ -112,70 +114,70 @@ const props = defineProps({
   },
 })
 const deviceListData = ref<testIValueType[]>([]);
-const functionCallList=ref<testIValueType[]>([]);
-const propertyCallList=ref<testIValueType[]>([]);
-const productKey=ref();
-const setPropertiesItem=ref([]);
-const fromData=ref({
-  actionType: "deviceOutput", 
+const functionCallList = ref<testIValueType[]>([]);
+const propertyCallList = ref<testIValueType[]>([]);
+const productKey = ref();
+const setPropertiesItem = ref([]);
+const fromData = ref({
+  actionType: "deviceOutput",
   productKey: "",
   deviceKey: "",
-  executeAction:"",
+  executeAction: "",
   functionCall: {
     functionName: "",
     parameter: ""
   },
-  getProperties:{},
-  setProperties:[],
-  setProperties_temp:[],
+  getProperties: {},
+  setProperties: [],
+  setProperties_temp: [],
 })
 
 //获取类型数据
-const getAction=(val:string)=>{
-    switch(val){
-      case 'functionCall':
-        product.tabDeviceFucntion.getList({ key: productKey.value }).then((res: any) => {
-          functionCallList.value = res
-        })
+const getAction = (val: string) => {
+  switch (val) {
+    case 'functionCall':
+      product.tabDeviceFucntion.getList({ key: productKey.value }).then((res: any) => {
+        functionCallList.value = res
+      })
       break;
-      case 'getProperties':
-        datahub.node.getpropertyList({ key: productKey.value }).then((re: any) => {
-          propertyCallList.value=re;
-        });
-  
+    case 'getProperties':
+      datahub.node.getpropertyList({ key: productKey.value }).then((re: any) => {
+        propertyCallList.value = re;
+      });
+
       break;
-      case 'setProperties':
-        datahub.node.getpropertyList({ key: productKey.value }).then((re: any) => {
-          propertyCallList.value=re;
-        });
+    case 'setProperties':
+      datahub.node.getpropertyList({ key: productKey.value }).then((re: any) => {
+        propertyCallList.value = re;
+      });
       break;
-    }
-    saveData();
+  }
+  // saveData();
 }
 
-const saveSetData=()=>{
-  fromData.value.setProperties = setPropertiesItem.value; 
-  saveData();  
+const saveSetData = () => {
+  fromData.value.setProperties = setPropertiesItem.value;
+  saveData();
 
 }
-const setProperties=(val:any)=>{
-  setPropertiesItem.value = val.map((item:string) => {
-        return {
-          name: item,
-          value: ''
-        };
-      });
-
-       fromData.value.setProperties = setPropertiesItem.value;
-       saveData();  
+const setProperties = (val: any) => {
+  setPropertiesItem.value = val.map((item: string) => {
+    return {
+      name: item,
+      value: ''
+    };
+  });
+
+  fromData.value.setProperties = setPropertiesItem.value;
+  saveData();
 }
 
 const saveData = () => {
-  let newdata={
-    index:props.index,
-    data:fromData.value,
+  let newdata = {
+    index: props.index,
+    data: fromData.value,
   }
-  emit('SetSaveData',newdata);
+  emit('SetSaveData', newdata);
 }
 
 const getDeviceList = (_id: any) => {
@@ -183,8 +185,8 @@ const getDeviceList = (_id: any) => {
     deviceListData.value = res.device
   })
 }
-const seletChange = (val:string) => {
-  productKey.value=val;
+const seletChange = (val: string) => {
+  productKey.value = val;
   //根据产品key获取产品ID
   let info = props.sourceData?.find((pro: testIValueType) => pro.key === val);
   if (info) {
@@ -194,9 +196,27 @@ const seletChange = (val:string) => {
   }
   saveData();
 }
+
+
+const initData = () => {
+  let infoc = props.data;
+  if (infoc.productKey) {
+    productKey.value = infoc.productKey;
+    let info = props.sourceData?.find((pro: testIValueType) => pro.key === infoc.productKey);
+    if (info) {
+       getDeviceList(info.id)
+    }
+  }
+  getAction(infoc.executeAction);
+  fromData.value = infoc
+}
+
+initData();
+
+
 </script>
 <style scoped lang="scss">
-.form-item{
+.form-item {
   flex: 0 0 25%;
 
 }

+ 14 - 2
src/views/iot/scene/manage/component/actionType/sendNotice.vue

@@ -5,7 +5,7 @@
     </el-select>
   </el-form-item>
 
-  <el-form-item label="通知配置:" prop="deviceKey" class="form-item">
+  <el-form-item label="通知配置:" prop="name" class="form-item">
     <el-select v-model="fromData.notice.name" filterable placeholder="请选择通知配置" @change="getTemplist">
       <el-option v-for="item in sendGatewayData" :key="item.id" :label="item.title" :value="item.id" />
     </el-select>
@@ -30,7 +30,7 @@
 </template>
 
 <script lang="ts" setup>
-import { PropType, ref, getCurrentInstance } from 'vue'
+import { PropType, ref, getCurrentInstance,onMounted } from 'vue'
 import notice from '/@/api/notice';
 import { CirclePlus, Remove } from '@element-plus/icons-vue';
 const emit = defineEmits(['SetSaveData']);
@@ -49,6 +49,10 @@ const props = defineProps({
     type: Array as PropType<testIValueType[]>,
     default: () => []
   },
+  data: {
+    type: Object,
+    default: () => { }
+  },
   index:{
     type: Number,
     default: () => 0
@@ -102,6 +106,14 @@ const SetSaveData = () => {
   emit('SetSaveData',newdata);
 }
 
+onMounted(() => {
+    if (props.data && props.data.notice) {
+      fromData.value.notice = { ...props.data.notice }
+      let infoc = props.data;
+      seletChange(infoc.notice.types);
+      getTemplist(infoc.notice.notice);
+    }
+});
 </script>
 <style scoped lang="scss">
 .form-item {

+ 14 - 7
src/views/iot/scene/manage/component/actionType/triggerAlarm.vue

@@ -1,19 +1,23 @@
 <template>
   
-  <el-form-item label="告警级别:" prop="delayTime" class="form-item ml20">
-    <el-input v-model="fromData.delayTime" placeholder="请输入告警级别" @input="saveData" class="w100 " />
+  <el-form-item label="告警级别:" prop="alarmLevel" class="form-item ml20">
+    <el-input v-model="fromData.alarm.alarmLevel" placeholder="请输入告警级别" @input="saveData" class="w100 " />
   </el-form-item>
-  <el-form-item label="告警信息:" prop="delayTime" class="form-item ml20">
-    <el-input v-model="fromData.delayTime" placeholder="请输入告警信息" @input="saveData" class="w100 " />
+  <el-form-item label="告警信息:" prop="info" class="form-item ml20">
+    <el-input v-model="fromData.alarm.info" placeholder="请输入告警信息" @input="saveData" class="w100 " />
   </el-form-item>
 </template>
 
 <script lang="ts" setup>
-import {  ref } from 'vue'
+import {  ref,onMounted } from 'vue'
 
 const emit = defineEmits(['SetSaveData']);
 
 const props = defineProps({
+  data: {
+    type: Object,
+    default: () => { }
+  },
   index:{
     type: Number,
     default: () => 0
@@ -35,8 +39,11 @@ const saveData = () => {
   }
   emit('SetSaveData',newdata);
 }
-
-
+onMounted(() => {
+  if (props.data && props.data.alarm) {
+    fromData.value.alarm = { ...props.data.alarm }
+  }
+});
 </script>
 <style scoped lang="scss">
 .form-item {

+ 13 - 1
src/views/iot/scene/manage/component/actionType/triggerCustomEvent.vue

@@ -7,7 +7,7 @@
 </template>
 
 <script lang="ts" setup>
-import {ref} from 'vue';
+import {ref,onMounted} from 'vue';
 import api from '/@/api/scene';
 const emit = defineEmits(['SetSaveData']);
 
@@ -16,6 +16,10 @@ const props = defineProps({
     type: Number,
     default: () => 0
   },
+  data: {
+    type: Object,
+    default: () => { }
+  },
 })
 const fromData = ref({
   actionType: "triggerCustomEvent",
@@ -37,6 +41,8 @@ const getsceneList=()=>{
 		};
     api.manage.getList(param).then((res: any) => {
       sceneList.value=res.Data;
+      initData();
+
     });
 }
 getsceneList();
@@ -48,6 +54,12 @@ const saveData = () => {
   }
   emit('SetSaveData',newdata);
 }
+onMounted(() => {
+    if (props.data && props.data.executeAction) {
+      fromData.value.executeAction = { ...props.data.executeAction }
+    }
+});
+
 
 </script>
 

+ 4 - 0
src/views/system/application/edit.vue

@@ -51,6 +51,9 @@
 				</el-radio-group>
 			</el-form-item>
 		</el-form>
+		<el-form-item label="回调地址" prop="callbackUri">
+			<el-input v-model="formData.callbackUri" placeholder="请输入回调地址" />
+		</el-form-item>
 		<template #footer>
 			<div class="dialog-footer">
 				<el-button @click="showDialog = false">取消</el-button>
@@ -89,6 +92,7 @@ const baseForm = {
 	roleId: '',
 	desc: '',
 	status: 1,
+	callbackUri:''
 };
 const formData = reactive({
 	...baseForm,