ananzhusen 8 månader sedan
förälder
incheckning
77e7de97d6
1 ändrade filer med 93 tillägg och 1 borttagningar
  1. 93 1
      src/services/common.ts

+ 93 - 1
src/services/common.ts

@@ -873,6 +873,16 @@ export const useExtendData = () => {
   };
 };
 
+const typeMap = {
+  'text': 'string',
+  // 'integer',
+  'textarea':'string',
+  'number':'float',
+  'switch':'bool',
+  // 'array',
+  'code':'object'
+}
+
 export function dealDataBeforeOpen(data){
   data.oldV = false;
   data.pens.forEach((pen)=>{
@@ -1100,8 +1110,90 @@ export function dealDataBeforeOpen(data){
     if(pen.triggers?.length){
       pen.triggers = pen.triggers.filter((item)=>item.status?.length);
     }
+    //绑定变量
+    if(pen.form&&pen.name !== 'echarts'){
+      if(!pen.realTimes){
+        pen.realTimes = [];
+      }
+      pen.form.forEach((form)=>{
+        pen.realTimes.push({
+          "label": form.name,
+          "key": form.key,
+          "type":  typeMap[form.type]||'string',
+          "bind": {
+              "label": form.dataIds?.name,
+              "id": form.dataIds?.dataId
+          },
+          "enableMock": false
+        });
+      });
+      delete pen.form;
+    }
+
     if(pen.name === 'table2'){
       pen.name = 'tablePlus'
     }
-  })
+  });
+  if(!data.networks){
+    data.networks = [];
+  }
+
+  if(data.http){
+    if(!data.https?.length){
+      data.networks.push({
+        name: `https`,
+        type:'subscribe',
+        headers:data.httpHeaders,
+        interval:data.httpTimeInterval,
+        protocol:'http',
+        url:data.http,
+      })
+    }
+    delete data.http;
+    delete data.httpHeaders;
+    delete data.httpTimeInterval;
+  }
+
+  if(data.https){
+    data.https.forEach((item,i)=>{
+      data.networks.push({
+        name: `https${i+1}`,
+        type:'subscribe',
+        body:item.body,
+        headers:item.httpHeaders,
+        interval:item.httpTimeInterval,
+        method:item.method,
+        protocol:'http',
+        url:item.http,
+        // id:item.id
+      })
+    });
+    delete data.https;
+  }
+
+
+  if(data.mqtt){
+    data.networks.push({
+        "name": "mqtt",
+        "type": "subscribe",
+        "protocol": "mqtt",
+        "url": data.mqtt,
+        "options": data.mqttOptions,
+        "topics": data.mqttTopics,
+    });
+    delete data.mqtt;
+    delete data.mqttOptions;
+    delete data.mqttTopics;
+  }
+  if(data.websocket){
+    data.networks.push({
+        "name": "websocket",
+        "type": "subscribe",
+        "protocol": "websocket",
+        "protocols": data.websocketProtocols,
+        "url": data.websocket,
+    });
+    delete data.websocket;
+    delete data.websocketProtocols;
+  }
 }