Alsmile 1 år sedan
förälder
incheckning
949763b7da
2 ändrade filer med 55 tillägg och 16 borttagningar
  1. 1 1
      src/views/components/ElementTree.vue
  2. 54 15
      src/views/components/View.vue

+ 1 - 1
src/views/components/ElementTree.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="elements">
-    <div class="title" style="margin: 8px 0 0 12px">图结构</div>
+    <div class="title" style="margin: 8px 0 0 12px">图结构</div>
     <t-tree
       class="flex-grow"
       ref="tree"

+ 54 - 15
src/views/components/View.vue

@@ -292,10 +292,13 @@
               <t-row class="mt-16" justify="end">
                 <t-space :size="12">
                   <t-select-input
+                    v-model:inputValue="dataDialog.input"
                     placeholder="搜索我的数据源"
                     allow-input
                     clearable
                     :popup-visible="dataDialog.popupVisible"
+                    @focus="dataDialog.popupVisible = true"
+                    @blur="dataDialog.popupVisible = undefined"
                     @input-change="onInputNetwork"
                     style="width: 240px"
                   >
@@ -345,6 +348,9 @@
                 :max-height="280"
                 size="small"
               >
+                <template #type="{ row, rowIndex }">
+                  {{ row.type || 'MQTT' }}
+                </template>
                 <template #actions="{ row, rowIndex }">
                   <a @click="editNetwork(row)"> 编辑 </a>
                   <t-popconfirm
@@ -466,9 +472,7 @@
         </div>
         <div v-else class="flex middle">
           <div class="flex-grow"></div>
-          <t-button class="ml-16" @click="dataDialog.show = false">
-            完成
-          </t-button>
+          <t-button class="ml-16" @click="onOkDatasources"> 完成 </t-button>
         </div>
       </template>
     </t-dialog>
@@ -841,7 +845,7 @@ const open = async (flag: boolean = false) => {
       meta2d.open(JSON.parse(data));
     }
   } else {
-    meta2d.open({ pens: [] } as any);
+    meta2d.open({ name: '新建项目', pens: [] } as any);
   }
   !meta2d.store.data.x && (meta2d.store.data.x = meta2d.store.options.x || 0);
   !meta2d.store.data.y && (meta2d.store.data.y = meta2d.store.options.y || 0);
@@ -1200,9 +1204,11 @@ const networkColumns = ref([
 ]);
 
 const onShowDataDialog = () => {
-  // @ts-ignore
+  dataDialog.input = '';
   dataDialog.networks = meta2d.store.data.networks || [];
   // @ts-ignore
+  dataDialog.datasetUrl = meta2d.store.data.datasetUrl;
+  // @ts-ignore
   dataDialog.dataset = meta2d.store.data.dataset;
   dataDialog.networkList = [];
   dataDialog.editNetwork = false;
@@ -1222,10 +1228,15 @@ const onInputNetwork = (text: string) => {
 
 // 请求我的数据源接口
 const getNetworks = async () => {
-  // const ret: any = await axios.get(`/api/xxx`);
-  // if (ret) {
-  //   dataDialog.networkList = ret.list
-  // }
+  const ret: any = await axios.post(`/api/data/datasources/list`, {
+    q: {
+      name: dataDialog.input,
+    },
+    projection: { updatedAt: 0 },
+  });
+  if (ret) {
+    dataDialog.networkList = ret.list;
+  }
 };
 
 const addNetwork = () => {
@@ -1253,16 +1264,35 @@ const deleteNetwork = (index: number) => {
   meta2d.connectSocket();
 };
 
-const onOkNetwork = () => {
+const onOkNetwork = async () => {
+  // 保存到我的数据源
+
   if (dataDialog.editNetwork === 1) {
+    if (dataDialog.save) {
+      const ret: any = await axios.post(
+        `/api/data/datasources/add`,
+        dataDialog.network
+      );
+      if (!ret) {
+        return;
+      }
+      dataDialog.network._id = ret._id || ret.id;
+      dataDialog.network.id = dataDialog.network._id;
+    }
     dataDialog.networks.push(dataDialog.network);
+  } else if (dataDialog.editNetwork === 2) {
+    if (dataDialog.save) {
+      const ret: any = await axios.post(
+        `/api/data/datasources/update`,
+        dataDialog.network
+      );
+      if (!ret) {
+        return;
+      }
+    }
   }
-  dataDialog.editNetwork = false;
 
-  // 保存到我的数据源
-  if (dataDialog.save) {
-    // todo
-  }
+  dataDialog.editNetwork = false;
 };
 
 const datasetColumns = ref([
@@ -1315,6 +1345,15 @@ const importDataset = async () => {
   dataDialog.dataset = data;
 };
 
+const onOkDatasources = () => {
+  meta2d.store.data.networks = dataDialog.networks;
+  // @ts-ignore
+  meta2d.store.data.dataset = dataDialog.dataset;
+  // @ts-ignore
+  meta2d.store.data.datasetUrl = dataDialog.datasetUrl;
+  dataDialog.show = false;
+};
+
 const showAddData = (row?: any) => {
   if (row) {
     addDataDialog.header = '编辑数据';