|
@@ -463,10 +463,10 @@
|
|
|
size="small"
|
|
|
>
|
|
|
<template #protocol="{ row, rowIndex }">
|
|
|
- {{ row.data.protocol || 'MQTT' }}
|
|
|
+ {{ row.protocol || 'MQTT' }}
|
|
|
</template>
|
|
|
<template #url="{ row, rowIndex }">
|
|
|
- {{ row.data.url }}
|
|
|
+ {{ row.url }}
|
|
|
</template>
|
|
|
<template #actions="{ row, rowIndex }">
|
|
|
<a @click="editNetwork(row, rowIndex)"> 编辑 </a>
|
|
@@ -558,7 +558,7 @@
|
|
|
<t-table
|
|
|
class="mt-12"
|
|
|
row-key="id"
|
|
|
- :data="dataDialog.dataset.data?.devices"
|
|
|
+ :data="dataDialog.dataset.devices"
|
|
|
:columns="datasetColumns"
|
|
|
size="small"
|
|
|
:max-height="280"
|
|
@@ -789,7 +789,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
-import { onMounted, onUnmounted, watch, ref, reactive } from 'vue';
|
|
|
+import { onMounted, onUnmounted, watch, ref, reactive, toRaw } from 'vue';
|
|
|
import { useRouter, useRoute } from 'vue-router';
|
|
|
import {
|
|
|
Meta2d,
|
|
@@ -835,7 +835,7 @@ import Network from './Network.vue';
|
|
|
import Dataset from './Dataset.vue';
|
|
|
import ChargeCloudPublish from './ChargeCloudPublish.vue';
|
|
|
import { AddIcon,SaveIcon, RootListIcon,SlashIcon, RefreshIcon, ServerIcon, CaretRightIcon, ShareIcon, QrcodeIcon, CloudIcon, DeleteIcon, SearchIcon, RollbackIcon, LaptopIcon, StopCircleIcon , PlayCircleIcon, PlayCircleStrokeIcon, LayersIcon } from 'tdesign-icons-vue-next';
|
|
|
-
|
|
|
+import {transformData} from '@/services/utils';
|
|
|
|
|
|
const router = useRouter();
|
|
|
const route = useRoute();
|
|
@@ -1343,15 +1343,7 @@ const networkColumns = ref([
|
|
|
|
|
|
const onShowDataDialog = async () => {
|
|
|
dataDialog.input = '';
|
|
|
- if(meta2d.store.data.networks) {
|
|
|
- const list = [];
|
|
|
- for(const tem of meta2d.store.data.networks) {
|
|
|
- list.push(transformData(tem,'toNetwork'))
|
|
|
- }
|
|
|
- dataDialog.networks = list;
|
|
|
- } else {
|
|
|
- dataDialog.networks = [];
|
|
|
- }
|
|
|
+ dataDialog.networks = meta2d.store.data.networks || [];
|
|
|
// @ts-ignore
|
|
|
dataDialog.dataset = meta2d.store.data.dataset || {};
|
|
|
dataDialog.datasetId = dataDialog.dataset.id;
|
|
@@ -1393,13 +1385,7 @@ const onSelectNetWork = (item: any) => {
|
|
|
);
|
|
|
if (!network) {
|
|
|
dataDialog.networks.push(item);
|
|
|
- if(!meta2d.store.data.networks) {
|
|
|
- meta2d.store.data.networks = [];
|
|
|
- }
|
|
|
- const networkBak = JSON.parse(JSON.stringify(dataDialog.networks));
|
|
|
- for(const tem of networkBak) {
|
|
|
- meta2d.store.data.networks.push(transformData(tem,'toMetaNetwork'))
|
|
|
- }
|
|
|
+ meta2d.store.data.networks = toRaw(dataDialog.networks);
|
|
|
meta2d.connectNetwork();
|
|
|
setDot(true);
|
|
|
}
|
|
@@ -1439,57 +1425,24 @@ const getNetworks = async () => {
|
|
|
}
|
|
|
);
|
|
|
if (ret?.list) {
|
|
|
+ const list = [];
|
|
|
for (const item of ret.list) {
|
|
|
item.id = item.id || item._id;
|
|
|
+ list.push(transformData(item,'toMetaNetwork'));
|
|
|
}
|
|
|
- dataDialog.networkList = ret.list;
|
|
|
- }
|
|
|
- if(meta2d.store.data.networks && meta2d.store.data.networks.length > 0) {
|
|
|
- const list = []
|
|
|
- for(let item of meta2d.store.data.networks as any) {
|
|
|
- if(item.data) {
|
|
|
- const data = ret.list.find(tem => tem.id == item.id || tem.id == item._id);
|
|
|
- list.push(transformData(data,'toMetaNetwork'));
|
|
|
- }
|
|
|
- }
|
|
|
- meta2d.store.data.networks = list;
|
|
|
+ dataDialog.networkList = list;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
const onInputDatasets = (name: string) => {
|
|
|
debounce(getDatasets, 300, name);
|
|
|
};
|
|
|
-const transformData = (obj,operation) => {
|
|
|
- if(operation == 'toMetaNetwork') {
|
|
|
- return {
|
|
|
- name:obj.name,
|
|
|
- id:obj.id,
|
|
|
- type:obj.type,
|
|
|
- ...obj.data
|
|
|
- }
|
|
|
- } else {
|
|
|
- return {
|
|
|
- name:obj.name,
|
|
|
- id:obj.id,
|
|
|
- type:obj.type,
|
|
|
- data:{
|
|
|
- body: obj.body,
|
|
|
- headers: obj.headers,
|
|
|
- httpTimeInterval: obj.httpTimeInterval,
|
|
|
- method: obj.method,
|
|
|
- options:obj.options,
|
|
|
- protocol: obj.protocol,
|
|
|
- topics: obj.topics,
|
|
|
- url: obj.url
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
+
|
|
|
// 请求我的数据模型
|
|
|
const getDatasets = async (name?: string) => {
|
|
|
const body: any = {
|
|
|
type: 'dataset',
|
|
|
- projection: "id,data,name",
|
|
|
+ projection: "id,data,name,type",
|
|
|
};
|
|
|
if (name) {
|
|
|
body.name = name;
|
|
@@ -1501,18 +1454,20 @@ const getDatasets = async (name?: string) => {
|
|
|
},
|
|
|
});
|
|
|
if (ret?.list) {
|
|
|
+ const list = [];
|
|
|
let found = false;
|
|
|
for (const item of ret.list) {
|
|
|
item.id = item.id || item._id;
|
|
|
+ list.push(transformData(item,'toMetaNetwork'));
|
|
|
if (dataDialog.dataset?.id === item.id) {
|
|
|
found = true;
|
|
|
}
|
|
|
}
|
|
|
if (dataDialog.dataset?.id && !found) {
|
|
|
- ret.list.push(dataDialog.dataset);
|
|
|
+ list.push(dataDialog.dataset);
|
|
|
}
|
|
|
|
|
|
- dataDialog.datasetList = ret.list;
|
|
|
+ dataDialog.datasetList = list;
|
|
|
}
|
|
|
};
|
|
|
|
|
@@ -1520,16 +1475,14 @@ const addNetwork = () => {
|
|
|
dataDialog.network = {
|
|
|
name: '',
|
|
|
type: 'subscribe',
|
|
|
- data:{
|
|
|
- protocol: 'mqtt',
|
|
|
- url: '',
|
|
|
- options: {
|
|
|
- clientId: '',
|
|
|
- username: '',
|
|
|
- password: '',
|
|
|
- customClientId: false,
|
|
|
- },
|
|
|
- }
|
|
|
+ protocol: 'mqtt',
|
|
|
+ url: '',
|
|
|
+ options: {
|
|
|
+ clientId: '',
|
|
|
+ username: '',
|
|
|
+ password: '',
|
|
|
+ customClientId: false,
|
|
|
+ },
|
|
|
};
|
|
|
dataDialog.editNetwork = 1;
|
|
|
};
|
|
@@ -1543,21 +1496,18 @@ const editNetwork = (data: any, index: number) => {
|
|
|
|
|
|
const deleteNetwork = (index: number) => {
|
|
|
dataDialog.networks.splice(index, 1);
|
|
|
- const list = [];
|
|
|
- for(const tem of dataDialog.networks) {
|
|
|
- list.push(transformData(tem,'toMetaNetwork'))
|
|
|
- }
|
|
|
- meta2d.store.data.networks = list;
|
|
|
+ meta2d.store.data.networks = toRaw(dataDialog.networks);
|
|
|
meta2d.connectNetwork();
|
|
|
setDot(true);
|
|
|
};
|
|
|
|
|
|
const onOkNetwork = async () => {
|
|
|
+ const data = transformData(dataDialog.network,'toNetwork');
|
|
|
if (dataDialog.editNetwork === 1) {
|
|
|
if (dataDialog.save) {
|
|
|
const ret: any = await axios.post(
|
|
|
`/api/data/datasource/add`,
|
|
|
- dataDialog.network
|
|
|
+ data
|
|
|
);
|
|
|
if (!ret) {
|
|
|
return;
|
|
@@ -1571,7 +1521,7 @@ const onOkNetwork = async () => {
|
|
|
if (dataDialog.save) {
|
|
|
const ret: any = await axios.post(
|
|
|
`/api/data/datasource/update`,
|
|
|
- dataDialog.network
|
|
|
+ data
|
|
|
);
|
|
|
if (!ret) {
|
|
|
return;
|
|
@@ -1585,11 +1535,7 @@ const onOkNetwork = async () => {
|
|
|
}
|
|
|
}
|
|
|
dataDialog.editNetwork = false;
|
|
|
- const list = [];
|
|
|
- for(const tem of dataDialog.networks) {
|
|
|
- list.push(transformData(tem,'toMetaNetwork'))
|
|
|
- }
|
|
|
- meta2d.store.data.networks = list;
|
|
|
+ meta2d.store.data.networks = toRaw(dataDialog.networks);
|
|
|
meta2d.connectNetwork();
|
|
|
setDot(true);
|
|
|
|
|
@@ -1628,11 +1574,9 @@ const addDataset = () => {
|
|
|
dataDialog.dataset = {
|
|
|
name: '',
|
|
|
type: 'dataset',
|
|
|
- data: {
|
|
|
- devices:[],
|
|
|
- mode: 'api',
|
|
|
- url: '',
|
|
|
- },
|
|
|
+ devices:[],
|
|
|
+ mode: 'api',
|
|
|
+ url: '',
|
|
|
};
|
|
|
dataDialog.editDataset = 1;
|
|
|
};
|
|
@@ -1659,13 +1603,15 @@ const onOkDataset = async (saveas = false) => {
|
|
|
}
|
|
|
|
|
|
const dataset = JSON.parse(JSON.stringify(dataDialog.dataset));
|
|
|
-
|
|
|
+ let data = dataset;
|
|
|
+ data.type = 'dataset';
|
|
|
+ data = transformData(dataset,'toNetwork');
|
|
|
// 保存到我的数据源
|
|
|
if (saveas || dataDialog.editDataset === 1) {
|
|
|
delete dataset.id;
|
|
|
delete dataset._id;
|
|
|
dataset.type = 'dataset';
|
|
|
- const ret: any = await axios.post(`/api/data/datasource/add`, dataset);
|
|
|
+ const ret: any = await axios.post(`/api/data/datasource/add`, data);
|
|
|
if (!ret) {
|
|
|
return;
|
|
|
}
|
|
@@ -1674,7 +1620,7 @@ const onOkDataset = async (saveas = false) => {
|
|
|
dataset.id = ret.id;
|
|
|
dataDialog.datasetList.push(dataset);
|
|
|
} else {
|
|
|
- const ret: any = await axios.post(`/api/data/datasource/update`, dataset);
|
|
|
+ const ret: any = await axios.post(`/api/data/datasource/update`, data);
|
|
|
if (!ret) {
|
|
|
return;
|
|
|
}
|
|
@@ -1684,9 +1630,7 @@ const onOkDataset = async (saveas = false) => {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
- delete dataset.data.devices;
|
|
|
- delete dataset.data.updatedAt;
|
|
|
- delete dataset.data.createdAt;
|
|
|
+ delete dataset.devices;
|
|
|
// @ts-ignore
|
|
|
meta2d.store.data.dataset = dataset;
|
|
|
|
|
@@ -1727,14 +1671,14 @@ const onSelDataset = async (init = false) => {
|
|
|
if (dataset.url) {
|
|
|
const ret = await axios.get(dataset.url);
|
|
|
if (ret) {
|
|
|
- dataset.data.devices = ret;
|
|
|
+ dataset.devices = ret;
|
|
|
}
|
|
|
} else {
|
|
|
const ret = await axios.post(`/api/data/datasource/get`, {
|
|
|
id: dataset.id,
|
|
|
});
|
|
|
if (ret?.data) {
|
|
|
- dataset.data = ret.data;
|
|
|
+ Object.assign(dataset,{...ret.data});
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1742,9 +1686,7 @@ const onSelDataset = async (init = false) => {
|
|
|
|
|
|
if (!init) {
|
|
|
const d = JSON.parse(JSON.stringify(dataset));
|
|
|
- delete d.data.devices;
|
|
|
- delete dataset.data.updatedAt;
|
|
|
- delete dataset.data.createdAt;
|
|
|
+ delete d.devices;
|
|
|
// @ts-ignore
|
|
|
meta2d.store.data.dataset = d;
|
|
|
|