diff --git a/src/api/link/type.ts b/src/api/link/type.ts
new file mode 100644
index 00000000..887d395f
--- /dev/null
+++ b/src/api/link/type.ts
@@ -0,0 +1,32 @@
+import server from '@/utils/request';
+
+export const queryNetworkConfig = (params: object) =>
+ server.post(`/network/config/_query`, params);
+
+export const remove = (id: string) => server.remove(`/network/config/${id}`);
+
+export const shutdown = (data: object) =>
+ server.post(`/network/config/${data}/_shutdown`);
+
+export const start = (data: object) =>
+ server.post(`/network/config/${data}/_start`);
+
+export const supports = () => server.get(`/network/config/supports`);
+
+export const query = (data: Object) =>
+ server.post(`/network/config/_query`, data);
+
+export const providers = () => server.get(`/gateway/device/providers`);
+
+export const resourcesCurrent = () =>
+ server.get(`/network/resources/alive/_current`);
+
+export const resourceClusters = () => server.get(`network/resources/clusters`);
+
+export const resourceClustersById = (id: string) =>
+ server.get(`/network/resources/alive/${id}`);
+
+export const allResources = () => server.get(`/network/resources/alive/_all`);
+
+export const certificates = () =>
+ server.get(`/network/certificate/_query/no-paging?paging=false`);
diff --git a/src/views/link/AccessConfig/index.vue b/src/views/link/AccessConfig/index.vue
index 699a994c..90cbaaa1 100644
--- a/src/views/link/AccessConfig/index.vue
+++ b/src/views/link/AccessConfig/index.vue
@@ -45,11 +45,9 @@
{
min-height: 100px;
.card-item-content-title-a {
- // color: #000 !important;
+ color: #1890ff !important;
font-weight: 700;
- font-size: 18px;
+ font-size: 16px;
overflow: hidden; //超出的文本隐藏
text-overflow: ellipsis; //溢出用省略号显示
white-space: nowrap; //溢出不换行
diff --git a/src/views/link/Protocol/index.vue b/src/views/link/Protocol/index.vue
index 5b9b351b..3ae666c1 100644
--- a/src/views/link/Protocol/index.vue
+++ b/src/views/link/Protocol/index.vue
@@ -31,7 +31,7 @@
-
+
{{ slotProps.name }}
@@ -299,9 +299,9 @@ const handleSearch = (e: any) => {
min-height: 100px;
.card-item-content-title-a {
- // color: #000 !important;
+ color: #000 !important;
font-weight: 700;
- font-size: 18px;
+ font-size: 16px;
overflow: hidden; //超出的文本隐藏
text-overflow: ellipsis; //溢出用省略号显示
white-space: nowrap; //溢出不换行
diff --git a/src/views/link/Type/Detail/index.vue b/src/views/link/Type/Detail/index.vue
new file mode 100644
index 00000000..9fca900e
--- /dev/null
+++ b/src/views/link/Type/Detail/index.vue
@@ -0,0 +1,1340 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 共享配置
+ 独立配置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 节点名称
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/link/Type/data.ts b/src/views/link/Type/data.ts
new file mode 100644
index 00000000..d6814539
--- /dev/null
+++ b/src/views/link/Type/data.ts
@@ -0,0 +1,82 @@
+export const FormStates = {
+ name: '',
+ type: 'UDP',
+ shareCluster: true,
+ parserType: '',
+ configuration: {
+ port: '',
+ host: '0.0.0.0',
+ publicPort: '',
+ publicHost: '',
+ remoteHost: '',
+ remotePort: '',
+ secure: false,
+ username: '',
+ password: '',
+ topicPrefix: '',
+ maxMessageSize: '',
+ certId: '',
+ privateKeyAlias: '',
+ clientId: '',
+ parserConfiguration: {
+ delimited: '',
+ lang: '',
+ script: '',
+ size: '',
+ length: '',
+ offset: '',
+ little: '',
+ },
+ },
+ description: '',
+};
+
+const VisibleMost = [
+ 'COAP_SERVER',
+ 'MQTT_SERVER',
+ 'WEB_SOCKET_SERVER',
+ 'TCP_SERVER',
+ 'UDP',
+ 'HTTP_SERVER',
+];
+
+export const VisibleData = {
+ parserType: ['TCP_SERVER'],
+ // configuration: {
+ port: VisibleMost,
+ host: VisibleMost,
+ publicPort: VisibleMost,
+ publicHost: VisibleMost,
+ remoteHost: ['MQTT_CLIENT'],
+ remotePort: ['MQTT_CLIENT'],
+ secure: ['TCP_SERVER', 'UDP', 'COAP_SERVER'],
+ username: ['MQTT_CLIENT'],
+ password: ['MQTT_CLIENT'],
+ topicPrefix: ['MQTT_CLIENT'],
+ maxMessageSize: ['MQTT_SERVER', 'MQTT_CLIENT'],
+ // certId: '',
+ // privateKeyAlias: '',
+ clientId: ['MQTT_CLIENT'],
+ // parserConfiguration: {
+ delimited: ['DELIMITED'],
+ lang: ['SCRIPT'],
+ script: ['SCRIPT'],
+ size: ['FIXED_LENGTH'],
+ length: ['LENGTH_FIELD'],
+ offset: ['LENGTH_FIELD'],
+ little: ['LENGTH_FIELD'],
+ // },
+
+ // },
+};
+
+export const ParserTypeOptions = [
+ { value: 'DIRECT', label: '不处理' },
+ { value: 'DELIMITED', label: '分隔符' },
+ { value: 'SCRIPT', label: '自定义脚本' },
+ { value: 'FIXED_LENGTH', label: '固定长度' },
+ { value: 'LENGTH_FIELD', label: '长度字段' },
+];
+
+export const isVisible = (LastName: string, dependencies: string | boolean) =>
+ VisibleData[LastName].includes(dependencies);
diff --git a/src/views/link/Type/index.vue b/src/views/link/Type/index.vue
new file mode 100644
index 00000000..bc37ec86
--- /dev/null
+++ b/src/views/link/Type/index.vue
@@ -0,0 +1,461 @@
+
+
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ slotProps.name }}
+
+
+
+
+ 类型
+
+
+
+ {{
+ slotProps.type
+ }}
+ {{ slotProps.type }}
+
+
+
+
+
+ 详情
+
+
+
+ {{
+ getDetails(slotProps)
+ }}
+ {{
+ getDetails(slotProps)
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.text }}
+
+
+
+
+
+
+
+
+ {{ item.text }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ slotProps.shareCluster === true
+ ? '共享配置'
+ : '独立配置'
+ }}
+
+
+ {{ slotProps.typeObject.name }}
+
+
+ {{ getDetails(slotProps) }}
+
+
+
+
+
+
+
diff --git a/src/views/link/Type/type.d.ts b/src/views/link/Type/type.d.ts
new file mode 100644
index 00000000..e69de29b
diff --git a/src/views/media/Stream/Detail/index.vue b/src/views/media/Stream/Detail/index.vue
index 0feec4dc..b7761594 100644
--- a/src/views/media/Stream/Detail/index.vue
+++ b/src/views/media/Stream/Detail/index.vue
@@ -265,7 +265,7 @@
-