ananzhusen 1 tahun lalu
induk
melakukan
55b27f4cb9

+ 1 - 0
src/views/components/FileProps.vue

@@ -416,6 +416,7 @@ const showDataTransformation = () => {
 
 const onOkDataTransformation = () => {
   meta2d.store.data.socketCbJs = dataTransformationDialog.data;
+  meta2d.listenSocket();
   dataTransformationDialog.show = false;
 };
 

+ 31 - 1
src/views/components/Network.vue

@@ -70,7 +70,17 @@
     </div>
     <div class="form-item mt-8">
       <label>URL地址</label>
-      <t-input v-model="modelValue.url" />
+      <t-input
+        :format="urlFormat"
+        :placeholder="
+          modelValue.protocol !== 'http'
+            ? isSafeProtocol()
+              ? '必须是wss协议'
+              : '必须是ws协议'
+            : '请输入'
+        "
+        v-model="modelValue.url"
+      />
     </div>
     <template v-if="modelValue.protocol === 'websocket'">
       <div class="form-item mt-8">
@@ -275,6 +285,26 @@ const onDelNetWork = async (item: any, i: number) => {
     networkList.value.splice(i, 1);
   }
 };
+
+const isSafeProtocol = () => {
+  return document.location.protocol === 'https:' ? true : false;
+};
+
+const urlFormat = (val) => {
+  if (modelValue.protocol === 'mqtt') {
+    let reg = /^ws\:.*/;
+    if (isSafeProtocol()) {
+      reg = /^wss\:.*/;
+    }
+    if (reg.test(val)) {
+      return val;
+    } else {
+      return '';
+    }
+  } else {
+    return val;
+  }
+};
 </script>
 <style lang="postcss" scoped>
 .network-component {

+ 1 - 0
src/views/components/PenDatas.vue

@@ -825,6 +825,7 @@ const onSelectBindsChange = (value: string[], options: any) => {
     dataBindDialog.selectedIds = value;
     dataBindDialog.data.bind = toRaw(options.selectedRowData[0]);
     dataBindDialog.data.mock = dataBindDialog.data.bind.mock;
+    dataBindDialog.data.type = dataBindDialog.data.bind.type;
     doBindInit();
   } else if (options.type === 'uncheck') {
     dataBindDialog.selectedIds = [];

+ 2 - 2
src/views/components/View.vue

@@ -286,7 +286,7 @@
       @close="dataDialog.show = false"
     >
       <t-tabs v-model="dataDialog.tab" class="body">
-        <t-tab-panel :value="1" label="实时数据" :destroy-on-hide="false">
+        <t-tab-panel :value="1" label="数据通信" :destroy-on-hide="false">
           <template #panel>
             <div v-if="!dataDialog.editNetwork">
               <div class="mt-16 flex between middle">
@@ -1366,11 +1366,11 @@ const onOkNetwork = async () => {
       dataDialog.networkList.splice(index, 1, dataDialog.network);
     }
   }
+  dataDialog.editNetwork = false;
   meta2d.store.data.networks = dataDialog.networks;
   meta2d.connectNetwork();
   setDot(true);
 
-  dataDialog.editNetwork = false;
   delete dataDialog.networkBak;
 };