|
@@ -1179,6 +1179,7 @@ export function dealDataBeforeOpen(data){
|
|
|
// 老格式
|
|
|
if (event.name === 'valueUpdate') {
|
|
|
if (event.where && event.where.key) {
|
|
|
+ /*
|
|
|
if (!pen.realTimes) {
|
|
|
pen.realTimes = [];
|
|
|
}
|
|
@@ -1215,6 +1216,52 @@ export function dealDataBeforeOpen(data){
|
|
|
});
|
|
|
}
|
|
|
pen.events.splice(i, 1);
|
|
|
+ i--;*/
|
|
|
+
|
|
|
+ //new
|
|
|
+ if (!pen.triggers) {
|
|
|
+ pen.triggers = [];
|
|
|
+ }
|
|
|
+ let trigger = {
|
|
|
+ name: '状态1',
|
|
|
+ conditionType: 'and',
|
|
|
+
|
|
|
+ conditions: [
|
|
|
+ {
|
|
|
+ type: event.where?.type === 'custom' ? 'fn' : '',
|
|
|
+ key: event.where?.key,
|
|
|
+ operator: event.where?.comparison,
|
|
|
+ value: event.where?.value,
|
|
|
+ fnJs: event.where?.fnJs,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ actions: [
|
|
|
+ {
|
|
|
+ action: event.action,
|
|
|
+ value: event.value,
|
|
|
+ params: event.params,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ };
|
|
|
+ let index = pen.triggers.findIndex(
|
|
|
+ (el) => el.temKey === event.where.key
|
|
|
+ );
|
|
|
+ if(index !== -1){
|
|
|
+ const state = pen.triggers[index].status;
|
|
|
+ const idx = state.findIndex((el)=>el.conditions?.length&&el.conditions[0].key === trigger.conditions[0].key&&el.conditions[0].operator === trigger.conditions[0].operator&&el.conditions[0].value === trigger.conditions[0].value);
|
|
|
+ if(idx!==-1){
|
|
|
+ state[idx].actions.push(...deepClone(trigger.actions));
|
|
|
+ }else{
|
|
|
+ pen.triggers[index].status.push(trigger);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ pen.triggers.push({
|
|
|
+ temKey:event.where?.key,
|
|
|
+ name:`场景状态${i+1}`,
|
|
|
+ status:[trigger]
|
|
|
+ });
|
|
|
+ }
|
|
|
+ pen.events.splice(i, 1);
|
|
|
i--;
|
|
|
} else {
|
|
|
//TODO 没有选择触发条件的情况
|
|
@@ -1275,5 +1322,34 @@ export function dealDataBeforeOpen(data){
|
|
|
// });
|
|
|
}
|
|
|
}
|
|
|
+ //状态格式转换
|
|
|
+ if(!(pen.triggers?.length) && pen.realTimes?.length){
|
|
|
+ pen.triggers = [];
|
|
|
+ pen.realTimes.forEach((realTime,index)=>{
|
|
|
+ const delIdx = [];
|
|
|
+ realTime.triggers?.forEach((trigger,_idx)=>{
|
|
|
+ if(trigger.conditions?.length){
|
|
|
+ trigger.conditions.forEach((condition,_idx)=>{
|
|
|
+ condition.key = realTime.key;
|
|
|
+ });
|
|
|
+ if(trigger.conditions?.length === 1){
|
|
|
+ const _idx2 = realTime.triggers.findIndex((el)=>el.conditions?.length&&el.conditions[0].key === trigger.conditions[0].key&&el.conditions[0].operator === trigger.conditions[0].operator&&el.conditions[0].value === trigger.conditions[0].value);
|
|
|
+ if(_idx !== _idx2){
|
|
|
+ realTime.triggers[_idx2].actions.push(...deepClone(realTime.triggers[_idx].actions));
|
|
|
+ delIdx.push(_idx);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ delIdx.forEach((idx,index)=>{
|
|
|
+ realTime.triggers.splice((idx-index),1);
|
|
|
+ });
|
|
|
+ pen.triggers.push({
|
|
|
+ name:`状态情况${index+1}`,
|
|
|
+ status:deepClone(realTime.triggers)
|
|
|
+ });
|
|
|
+ delete realTime.triggers;
|
|
|
+ });
|
|
|
+ }
|
|
|
})
|
|
|
}
|