From 083134aad3411f2603342eb217e90757066dc82e Mon Sep 17 00:00:00 2001 From: "hear." <1175160654@qq.com> Date: Mon, 27 Apr 2026 11:36:41 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20=E4=BB=AA=E8=A1=A8=E7=9B=98?= =?UTF-8?q?=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IndividualCard/Config.vue | 282 ++++++++++ .../IndividualCard/IndividualCard.vue | 412 ++++++++++++++ .../IndividualCard/config.ts | 36 ++ .../IndividualCard/index.ts | 20 + .../PropertyBattery/Config.vue | 285 ++++++++++ .../PropertyBattery/PropertyBattery.vue | 443 +++++++++++++++ .../PropertyBattery/config.ts | 38 ++ .../PropertyBattery/index.ts | 20 + .../PropertyChart/Config.vue | 251 +++++++++ .../PropertyChart/PropertyChart.vue | 504 ++++++++++++++++++ .../PropertyChart/config.ts | 40 ++ .../MetadataManagement/PropertyChart/index.ts | 20 + .../PropertyProgress/Config.vue | 265 +++++++++ .../PropertyProgress/PropertyProgress.vue | 422 +++++++++++++++ .../PropertyProgress/config.ts | 37 ++ .../PropertyProgress/index.ts | 20 + .../PropertySignal/Config.vue | 276 ++++++++++ .../PropertySignal/PropertySignal.vue | 472 ++++++++++++++++ .../PropertySignal/config.ts | 37 ++ .../PropertySignal/index.ts | 20 + .../PropertySlider/Config.vue | 342 ++++++++++++ .../PropertySlider/PropertySlider.vue | 459 ++++++++++++++++ .../PropertySlider/config.ts | 41 ++ .../PropertySlider/index.ts | 20 + .../PropertySwitch/Config.vue | 310 +++++++++++ .../PropertySwitch/PropertySwitch.vue | 405 ++++++++++++++ .../PropertySwitch/config.ts | 35 ++ .../PropertySwitch/index.ts | 20 + 28 files changed, 5532 insertions(+) create mode 100644 visDashboard/MetadataManagement/IndividualCard/Config.vue create mode 100644 visDashboard/MetadataManagement/IndividualCard/IndividualCard.vue create mode 100644 visDashboard/MetadataManagement/IndividualCard/config.ts create mode 100644 visDashboard/MetadataManagement/IndividualCard/index.ts create mode 100644 visDashboard/MetadataManagement/PropertyBattery/Config.vue create mode 100644 visDashboard/MetadataManagement/PropertyBattery/PropertyBattery.vue create mode 100644 visDashboard/MetadataManagement/PropertyBattery/config.ts create mode 100644 visDashboard/MetadataManagement/PropertyBattery/index.ts create mode 100644 visDashboard/MetadataManagement/PropertyChart/Config.vue create mode 100644 visDashboard/MetadataManagement/PropertyChart/PropertyChart.vue create mode 100644 visDashboard/MetadataManagement/PropertyChart/config.ts create mode 100644 visDashboard/MetadataManagement/PropertyChart/index.ts create mode 100644 visDashboard/MetadataManagement/PropertyProgress/Config.vue create mode 100644 visDashboard/MetadataManagement/PropertyProgress/PropertyProgress.vue create mode 100644 visDashboard/MetadataManagement/PropertyProgress/config.ts create mode 100644 visDashboard/MetadataManagement/PropertyProgress/index.ts create mode 100644 visDashboard/MetadataManagement/PropertySignal/Config.vue create mode 100644 visDashboard/MetadataManagement/PropertySignal/PropertySignal.vue create mode 100644 visDashboard/MetadataManagement/PropertySignal/config.ts create mode 100644 visDashboard/MetadataManagement/PropertySignal/index.ts create mode 100644 visDashboard/MetadataManagement/PropertySlider/Config.vue create mode 100644 visDashboard/MetadataManagement/PropertySlider/PropertySlider.vue create mode 100644 visDashboard/MetadataManagement/PropertySlider/config.ts create mode 100644 visDashboard/MetadataManagement/PropertySlider/index.ts create mode 100644 visDashboard/MetadataManagement/PropertySwitch/Config.vue create mode 100644 visDashboard/MetadataManagement/PropertySwitch/PropertySwitch.vue create mode 100644 visDashboard/MetadataManagement/PropertySwitch/config.ts create mode 100644 visDashboard/MetadataManagement/PropertySwitch/index.ts diff --git a/visDashboard/MetadataManagement/IndividualCard/Config.vue b/visDashboard/MetadataManagement/IndividualCard/Config.vue new file mode 100644 index 0000000..55f7450 --- /dev/null +++ b/visDashboard/MetadataManagement/IndividualCard/Config.vue @@ -0,0 +1,282 @@ + + + + + diff --git a/visDashboard/MetadataManagement/IndividualCard/IndividualCard.vue b/visDashboard/MetadataManagement/IndividualCard/IndividualCard.vue new file mode 100644 index 0000000..b633c63 --- /dev/null +++ b/visDashboard/MetadataManagement/IndividualCard/IndividualCard.vue @@ -0,0 +1,412 @@ + + + + + diff --git a/visDashboard/MetadataManagement/IndividualCard/config.ts b/visDashboard/MetadataManagement/IndividualCard/config.ts new file mode 100644 index 0000000..aede1ec --- /dev/null +++ b/visDashboard/MetadataManagement/IndividualCard/config.ts @@ -0,0 +1,36 @@ +export const individualCardConfig = { + name: '属性卡片', + type: 'individualCard', + componentProps: { + style: { + independence: false, + gridLayout: {} + }, + gridItem: { + x: 0, + y: 0, + w: 4, + h: 3, + minW: 2, + minH: 2 + }, + individualCard: { + title: '', + icon: 'ExperimentOutlined', + iconColor: '#1aa37a', + iconSize: 32, + titleColor: 'rgba(0, 0, 0, 0.88)', + titleFontSize: 32, + value: 'N/A', + valueColor: 'rgba(0, 0, 0, 0.88)', + valueFontSize: 32, + unit: '', + unitColor: 'rgba(0, 0, 0, 0.88)', + unitFontSize: 24, + deviceId: '', + deviceName: '', + propertyId: '', + propertyName: '' + } + } +} diff --git a/visDashboard/MetadataManagement/IndividualCard/index.ts b/visDashboard/MetadataManagement/IndividualCard/index.ts new file mode 100644 index 0000000..b3d0c59 --- /dev/null +++ b/visDashboard/MetadataManagement/IndividualCard/index.ts @@ -0,0 +1,20 @@ +import { defineAsyncComponent } from 'vue' +import { individualCardConfig } from './config' + +const IndividualCard = { + name: 'individualCard', + component: defineAsyncComponent(() => import('./IndividualCard.vue')) +} + +const IndividualCardConfig = [ + { + name: 'individualCard', + component: defineAsyncComponent(() => import('./Config.vue')) + } +] + +const IndividualCardConfigProps = { + ...individualCardConfig +} + +export { IndividualCard, IndividualCardConfig, IndividualCardConfigProps } diff --git a/visDashboard/MetadataManagement/PropertyBattery/Config.vue b/visDashboard/MetadataManagement/PropertyBattery/Config.vue new file mode 100644 index 0000000..912afa9 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyBattery/Config.vue @@ -0,0 +1,285 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyBattery/PropertyBattery.vue b/visDashboard/MetadataManagement/PropertyBattery/PropertyBattery.vue new file mode 100644 index 0000000..5dcde17 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyBattery/PropertyBattery.vue @@ -0,0 +1,443 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyBattery/config.ts b/visDashboard/MetadataManagement/PropertyBattery/config.ts new file mode 100644 index 0000000..14e745b --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyBattery/config.ts @@ -0,0 +1,38 @@ +export const propertyBatteryConfig = { + name: '属性电量', + type: 'propertyBattery', + componentProps: { + style: { + independence: false, + gridLayout: {} + }, + gridItem: { + x: 0, + y: 0, + w: 3, + h: 5, + minW: 2, + minH: 2 + }, + propertyBattery: { + titleColor: 'rgba(0, 0, 0, 0.88)', + titleFontSize: 16, + value: 'N/A', + valueColor: 'rgba(0, 0, 0, 0.88)', + valueFontSize: 32, + unit: '%', + unitColor: 'rgba(0, 0, 0, 0.88)', + unitFontSize: 18, + activeColor: '#54d28a', + inactiveColor: '#d9d9d9', + borderColor: '#d9d9d9', + minValue: 0, + maxValue: 100, + segments: 4, + deviceId: '', + deviceName: '', + propertyId: '', + propertyName: '' + } + } +} diff --git a/visDashboard/MetadataManagement/PropertyBattery/index.ts b/visDashboard/MetadataManagement/PropertyBattery/index.ts new file mode 100644 index 0000000..00cb0e1 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyBattery/index.ts @@ -0,0 +1,20 @@ +import { defineAsyncComponent } from 'vue' +import { propertyBatteryConfig } from './config' + +const PropertyBattery = { + name: 'propertyBattery', + component: defineAsyncComponent(() => import('./PropertyBattery.vue')) +} + +const PropertyBatteryConfig = [ + { + name: 'propertyBattery', + component: defineAsyncComponent(() => import('./Config.vue')) + } +] + +const PropertyBatteryConfigProps = { + ...propertyBatteryConfig +} + +export { PropertyBattery, PropertyBatteryConfig, PropertyBatteryConfigProps } diff --git a/visDashboard/MetadataManagement/PropertyChart/Config.vue b/visDashboard/MetadataManagement/PropertyChart/Config.vue new file mode 100644 index 0000000..cf4b8c0 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyChart/Config.vue @@ -0,0 +1,251 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyChart/PropertyChart.vue b/visDashboard/MetadataManagement/PropertyChart/PropertyChart.vue new file mode 100644 index 0000000..f18f622 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyChart/PropertyChart.vue @@ -0,0 +1,504 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyChart/config.ts b/visDashboard/MetadataManagement/PropertyChart/config.ts new file mode 100644 index 0000000..7e8626a --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyChart/config.ts @@ -0,0 +1,40 @@ +export const propertyChartConfig = { + name: '属性实时值折线图', + type: 'propertyChart', + componentProps: { + style: { + independence: false, + gridLayout: {} + }, + gridItem: { + x: 0, + y: 0, + w: 4, + h: 6, + minW: 3, + minH: 2 + }, + propertyChart: { + titleColor: 'rgba(0, 0, 0, 0.88)', + titleFontSize: 16, + valueColor: 'rgba(0, 0, 0, 0.88)', + valueFontSize: 32, + unit: '', + unitColor: 'rgba(0, 0, 0, 0.88)', + unitFontSize: 16, + lineColor: '#2f7cf6', + showAreaStyle: true, + smooth: true, + history: 20, + deviceId: '', + deviceName: '', + propertyId: '', + propertyName: '' + } + }, + dataSourceProps: [], + extraProps: { + type: 'device', + options: [] + } +} diff --git a/visDashboard/MetadataManagement/PropertyChart/index.ts b/visDashboard/MetadataManagement/PropertyChart/index.ts new file mode 100644 index 0000000..c7e0785 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyChart/index.ts @@ -0,0 +1,20 @@ +import { defineAsyncComponent } from 'vue' +import { propertyChartConfig } from './config' + +const PropertyChart = { + name: 'propertyChart', + component: defineAsyncComponent(() => import('./PropertyChart.vue')) +} + +const PropertyChartConfig = [ + { + name: 'propertyChart', + component: defineAsyncComponent(() => import('./Config.vue')) + } +] + +const PropertyChartConfigProps = { + ...propertyChartConfig +} + +export { PropertyChart, PropertyChartConfig, PropertyChartConfigProps } diff --git a/visDashboard/MetadataManagement/PropertyProgress/Config.vue b/visDashboard/MetadataManagement/PropertyProgress/Config.vue new file mode 100644 index 0000000..9c4d5b6 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyProgress/Config.vue @@ -0,0 +1,265 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyProgress/PropertyProgress.vue b/visDashboard/MetadataManagement/PropertyProgress/PropertyProgress.vue new file mode 100644 index 0000000..fac827c --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyProgress/PropertyProgress.vue @@ -0,0 +1,422 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyProgress/config.ts b/visDashboard/MetadataManagement/PropertyProgress/config.ts new file mode 100644 index 0000000..8e749f5 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyProgress/config.ts @@ -0,0 +1,37 @@ +export const propertyProgressConfig = { + name: '属性进度条', + type: 'propertyProgress', + componentProps: { + style: { + independence: false, + gridLayout: {} + }, + gridItem: { + x: 0, + y: 0, + w: 3, + h: 5, + minW: 2, + minH: 2 + }, + propertyProgress: { + title: '', + titleColor: 'rgba(0, 0, 0, 0.88)', + titleFontSize: 16, + value: 'N/A', + valueColor: 'rgba(0, 0, 0, 0.88)', + valueFontSize: 24, + unit: '', + unitColor: 'rgba(0, 0, 0, 0.88)', + unitFontSize: 12, + progressColor: '#0f766e', + trailColor: '#f0f0f0', + minValue: 0, + maxValue: 100, + deviceId: '', + deviceName: '', + propertyId: '', + propertyName: '' + } + }, +} diff --git a/visDashboard/MetadataManagement/PropertyProgress/index.ts b/visDashboard/MetadataManagement/PropertyProgress/index.ts new file mode 100644 index 0000000..b12b1a7 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyProgress/index.ts @@ -0,0 +1,20 @@ +import { defineAsyncComponent } from 'vue' +import { propertyProgressConfig } from './config' + +const PropertyProgress = { + name: 'propertyProgress', + component: defineAsyncComponent(() => import('./PropertyProgress.vue')) +} + +const PropertyProgressConfig = [ + { + name: 'propertyProgress', + component: defineAsyncComponent(() => import('./Config.vue')) + } +] + +const PropertyProgressConfigProps = { + ...propertyProgressConfig +} + +export { PropertyProgress, PropertyProgressConfig, PropertyProgressConfigProps } diff --git a/visDashboard/MetadataManagement/PropertySignal/Config.vue b/visDashboard/MetadataManagement/PropertySignal/Config.vue new file mode 100644 index 0000000..f1fd259 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertySignal/Config.vue @@ -0,0 +1,276 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertySignal/PropertySignal.vue b/visDashboard/MetadataManagement/PropertySignal/PropertySignal.vue new file mode 100644 index 0000000..ab87e36 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertySignal/PropertySignal.vue @@ -0,0 +1,472 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertySignal/config.ts b/visDashboard/MetadataManagement/PropertySignal/config.ts new file mode 100644 index 0000000..1a41d5f --- /dev/null +++ b/visDashboard/MetadataManagement/PropertySignal/config.ts @@ -0,0 +1,37 @@ +export const propertySignalConfig = { + name: '属性信号', + type: 'propertySignal', + componentProps: { + style: { + independence: false, + gridLayout: {} + }, + gridItem: { + x: 0, + y: 0, + w: 3, + h: 5, + minW: 2, + minH: 2 + }, + propertySignal: { + titleColor: 'rgba(0, 0, 0, 0.88)', + titleFontSize: 16, + value: 'N/A', + valueColor: 'rgba(0, 0, 0, 0.88)', + valueFontSize: 28, + unit: '%', + unitColor: 'rgba(0, 0, 0, 0.88)', + unitFontSize: 16, + activeColor: '#54d28a', + inactiveColor: '#d9d9d9', + minValue: 0, + maxValue: 100, + levels: 4, + deviceId: '', + deviceName: '', + propertyId: '', + propertyName: '' + } + } +} diff --git a/visDashboard/MetadataManagement/PropertySignal/index.ts b/visDashboard/MetadataManagement/PropertySignal/index.ts new file mode 100644 index 0000000..a4e901f --- /dev/null +++ b/visDashboard/MetadataManagement/PropertySignal/index.ts @@ -0,0 +1,20 @@ +import { defineAsyncComponent } from 'vue' +import { propertySignalConfig } from './config' + +const PropertySignal = { + name: 'propertySignal', + component: defineAsyncComponent(() => import('./PropertySignal.vue')) +} + +const PropertySignalConfig = [ + { + name: 'propertySignal', + component: defineAsyncComponent(() => import('./Config.vue')) + } +] + +const PropertySignalConfigProps = { + ...propertySignalConfig +} + +export { PropertySignal, PropertySignalConfig, PropertySignalConfigProps } diff --git a/visDashboard/MetadataManagement/PropertySlider/Config.vue b/visDashboard/MetadataManagement/PropertySlider/Config.vue new file mode 100644 index 0000000..bbed66a --- /dev/null +++ b/visDashboard/MetadataManagement/PropertySlider/Config.vue @@ -0,0 +1,342 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertySlider/PropertySlider.vue b/visDashboard/MetadataManagement/PropertySlider/PropertySlider.vue new file mode 100644 index 0000000..dd77681 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertySlider/PropertySlider.vue @@ -0,0 +1,459 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertySlider/config.ts b/visDashboard/MetadataManagement/PropertySlider/config.ts new file mode 100644 index 0000000..4aec8b9 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertySlider/config.ts @@ -0,0 +1,41 @@ +export const propertySliderConfig = { + name: '属性滑块', + type: 'propertySlider', + componentProps: { + style: { + independence: false, + gridLayout: {} + }, + gridItem: { + x: 0, + y: 0, + w: 4, + h: 5, + minW: 3, + minH: 3 + }, + propertySlider: { + title: 'Slider', + titleColor: 'rgba(0, 0, 0, 0.88)', + titleFontSize: 16, + value: 0, + valueColor: 'rgba(0, 0, 0, 0.88)', + valueFontSize: 40, + unit: '%', + unitColor: 'rgba(0, 0, 0, 0.88)', + unitFontSize: 22, + activeColor: '#0f766e', + trailColor: '#cfe9e5', + tickColor: '#2f9d93', + thumbColor: '#0f766e', + minValue: 0, + maxValue: 100, + deviceId: '', + deviceName: '', + propertyId: undefined, + propertyName: '', + functionId: undefined, + paramId: undefined + } + } +} diff --git a/visDashboard/MetadataManagement/PropertySlider/index.ts b/visDashboard/MetadataManagement/PropertySlider/index.ts new file mode 100644 index 0000000..68d83ae --- /dev/null +++ b/visDashboard/MetadataManagement/PropertySlider/index.ts @@ -0,0 +1,20 @@ +import { defineAsyncComponent } from 'vue' +import { propertySliderConfig } from './config' + +const PropertySlider = { + name: 'propertySlider', + component: defineAsyncComponent(() => import('./PropertySlider.vue')) +} + +const PropertySliderConfig = [ + { + name: 'propertySlider', + component: defineAsyncComponent(() => import('./Config.vue')) + } +] + +const PropertySliderConfigProps = { + ...propertySliderConfig +} + +export { PropertySlider, PropertySliderConfig, PropertySliderConfigProps } diff --git a/visDashboard/MetadataManagement/PropertySwitch/Config.vue b/visDashboard/MetadataManagement/PropertySwitch/Config.vue new file mode 100644 index 0000000..1a5af75 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertySwitch/Config.vue @@ -0,0 +1,310 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertySwitch/PropertySwitch.vue b/visDashboard/MetadataManagement/PropertySwitch/PropertySwitch.vue new file mode 100644 index 0000000..a0fbd36 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertySwitch/PropertySwitch.vue @@ -0,0 +1,405 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertySwitch/config.ts b/visDashboard/MetadataManagement/PropertySwitch/config.ts new file mode 100644 index 0000000..f5ff72d --- /dev/null +++ b/visDashboard/MetadataManagement/PropertySwitch/config.ts @@ -0,0 +1,35 @@ +export const propertySwitchConfig = { + name: '属性开关', + type: 'propertySwitch', + componentProps: { + style: { + independence: false, + gridLayout: {} + }, + gridItem: { + x: 0, + y: 0, + w: 3, + h: 4, + minW: 2, + minH: 3 + }, + propertySwitch: { + title: 'Switch', + titleColor: 'rgba(0, 0, 0, 0.88)', + titleFontSize: 16, + valueColor: 'rgba(0, 0, 0, 0.88)', + valueFontSize: 24, + activeColor: '#0f766e', + inactiveColor: '#d9d9d9', + trueLabel: 'ON', + falseLabel: 'OFF', + deviceId: '', + deviceName: '', + propertyId: undefined, + propertyName: '', + functionId: undefined, + paramId: undefined + } + } +} diff --git a/visDashboard/MetadataManagement/PropertySwitch/index.ts b/visDashboard/MetadataManagement/PropertySwitch/index.ts new file mode 100644 index 0000000..6cfffcb --- /dev/null +++ b/visDashboard/MetadataManagement/PropertySwitch/index.ts @@ -0,0 +1,20 @@ +import { defineAsyncComponent } from 'vue' +import { propertySwitchConfig } from './config' + +const PropertySwitch = { + name: 'propertySwitch', + component: defineAsyncComponent(() => import('./PropertySwitch.vue')) +} + +const PropertySwitchConfig = [ + { + name: 'propertySwitch', + component: defineAsyncComponent(() => import('./Config.vue')) + } +] + +const PropertySwitchConfigProps = { + ...propertySwitchConfig +} + +export { PropertySwitch, PropertySwitchConfig, PropertySwitchConfigProps } From 3cce9d47b1723411b6f26ff6765791c7b0d54703 Mon Sep 17 00:00:00 2001 From: "hear." <1175160654@qq.com> Date: Tue, 28 Apr 2026 13:48:22 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix:=20=E4=BB=AA=E8=A1=A8=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E5=8F=8A=E9=83=A8=E5=88=86=E6=A0=B7=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IndividualCard/Config.vue | 21 +- .../IndividualCard/IndividualCard.vue | 2 +- .../IndividualCard/config.ts | 2 +- .../PropertyBattery/Config.vue | 3 + .../PropertyBattery/PropertyBattery.vue | 2 +- .../PropertyBattery/config.ts | 2 +- .../PropertyChart/Config.vue | 3 + .../PropertyChart/PropertyChart.vue | 2 +- .../PropertyEnum/Config.vue | 382 ++++++++++++ .../PropertyEnum/PropertyEnum.vue | 491 ++++++++++++++++ .../MetadataManagement/PropertyEnum/config.ts | 40 ++ .../MetadataManagement/PropertyEnum/index.ts | 20 + .../MetadataManagement/PropertyPie/Config.vue | 281 +++++++++ .../PropertyPie/PropertyPie.vue | 545 ++++++++++++++++++ .../MetadataManagement/PropertyPie/config.ts | 39 ++ .../MetadataManagement/PropertyPie/index.ts | 20 + .../PropertyProgress/Config.vue | 3 + .../PropertyProgress/PropertyProgress.vue | 2 +- .../PropertyProgress/config.ts | 2 +- .../PropertySignal/Config.vue | 3 + .../PropertySignal/PropertySignal.vue | 2 +- .../PropertySignal/config.ts | 2 +- .../PropertySlider/Config.vue | 3 + .../PropertySlider/PropertySlider.vue | 2 +- .../PropertySwitch/Config.vue | 2 +- 25 files changed, 1847 insertions(+), 29 deletions(-) create mode 100644 visDashboard/MetadataManagement/PropertyEnum/Config.vue create mode 100644 visDashboard/MetadataManagement/PropertyEnum/PropertyEnum.vue create mode 100644 visDashboard/MetadataManagement/PropertyEnum/config.ts create mode 100644 visDashboard/MetadataManagement/PropertyEnum/index.ts create mode 100644 visDashboard/MetadataManagement/PropertyPie/Config.vue create mode 100644 visDashboard/MetadataManagement/PropertyPie/PropertyPie.vue create mode 100644 visDashboard/MetadataManagement/PropertyPie/config.ts create mode 100644 visDashboard/MetadataManagement/PropertyPie/index.ts diff --git a/visDashboard/MetadataManagement/IndividualCard/Config.vue b/visDashboard/MetadataManagement/IndividualCard/Config.vue index 55f7450..5f38065 100644 --- a/visDashboard/MetadataManagement/IndividualCard/Config.vue +++ b/visDashboard/MetadataManagement/IndividualCard/Config.vue @@ -56,8 +56,6 @@ /> - -
- { if (value === undefined || value === null || value === '') { const fallback = config.value.value if (fallback === undefined || fallback === null || fallback === '') { - return 'N/A' + return '--' } return String(fallback) } diff --git a/visDashboard/MetadataManagement/IndividualCard/config.ts b/visDashboard/MetadataManagement/IndividualCard/config.ts index aede1ec..0669203 100644 --- a/visDashboard/MetadataManagement/IndividualCard/config.ts +++ b/visDashboard/MetadataManagement/IndividualCard/config.ts @@ -21,7 +21,7 @@ iconSize: 32, titleColor: 'rgba(0, 0, 0, 0.88)', titleFontSize: 32, - value: 'N/A', + value: '', valueColor: 'rgba(0, 0, 0, 0.88)', valueFontSize: 32, unit: '', diff --git a/visDashboard/MetadataManagement/PropertyBattery/Config.vue b/visDashboard/MetadataManagement/PropertyBattery/Config.vue index 912afa9..7660c7f 100644 --- a/visDashboard/MetadataManagement/PropertyBattery/Config.vue +++ b/visDashboard/MetadataManagement/PropertyBattery/Config.vue @@ -275,6 +275,9 @@ watch( gap: 12px; display: flex; flex-direction: column; + :deep(.config-form-item-content) { + padding: 0; + } } .card-container-row { diff --git a/visDashboard/MetadataManagement/PropertyBattery/PropertyBattery.vue b/visDashboard/MetadataManagement/PropertyBattery/PropertyBattery.vue index 5dcde17..8dd99a1 100644 --- a/visDashboard/MetadataManagement/PropertyBattery/PropertyBattery.vue +++ b/visDashboard/MetadataManagement/PropertyBattery/PropertyBattery.vue @@ -164,7 +164,7 @@ const displayValue = computed(() => { if (value === undefined || value === null || value === '') { const fallback = config.value.value if (fallback === undefined || fallback === null || fallback === '') { - return 'N/A' + return '--' } return String(fallback) } diff --git a/visDashboard/MetadataManagement/PropertyBattery/config.ts b/visDashboard/MetadataManagement/PropertyBattery/config.ts index 14e745b..b4584cd 100644 --- a/visDashboard/MetadataManagement/PropertyBattery/config.ts +++ b/visDashboard/MetadataManagement/PropertyBattery/config.ts @@ -17,7 +17,7 @@ export const propertyBatteryConfig = { propertyBattery: { titleColor: 'rgba(0, 0, 0, 0.88)', titleFontSize: 16, - value: 'N/A', + value: '', valueColor: 'rgba(0, 0, 0, 0.88)', valueFontSize: 32, unit: '%', diff --git a/visDashboard/MetadataManagement/PropertyChart/Config.vue b/visDashboard/MetadataManagement/PropertyChart/Config.vue index cf4b8c0..9256f60 100644 --- a/visDashboard/MetadataManagement/PropertyChart/Config.vue +++ b/visDashboard/MetadataManagement/PropertyChart/Config.vue @@ -241,6 +241,9 @@ watch( gap: 12px; display: flex; flex-direction: column; + :deep(.config-form-item-content) { + padding: 0; + } } .card-container-row { diff --git a/visDashboard/MetadataManagement/PropertyChart/PropertyChart.vue b/visDashboard/MetadataManagement/PropertyChart/PropertyChart.vue index f18f622..16412d4 100644 --- a/visDashboard/MetadataManagement/PropertyChart/PropertyChart.vue +++ b/visDashboard/MetadataManagement/PropertyChart/PropertyChart.vue @@ -176,7 +176,7 @@ const displayValue = computed(() => { const value = currentRawValue.value if (value === undefined || value === null || value === '') { - return 'N/A' + return '--' } return String(value) diff --git a/visDashboard/MetadataManagement/PropertyEnum/Config.vue b/visDashboard/MetadataManagement/PropertyEnum/Config.vue new file mode 100644 index 0000000..b6fb83e --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyEnum/Config.vue @@ -0,0 +1,382 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyEnum/PropertyEnum.vue b/visDashboard/MetadataManagement/PropertyEnum/PropertyEnum.vue new file mode 100644 index 0000000..dee604c --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyEnum/PropertyEnum.vue @@ -0,0 +1,491 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyEnum/config.ts b/visDashboard/MetadataManagement/PropertyEnum/config.ts new file mode 100644 index 0000000..633866e --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyEnum/config.ts @@ -0,0 +1,40 @@ +export const propertyEnumConfig = { + name: '属性枚举控制器', + type: 'propertyEnum', + componentProps: { + style: { + independence: false, + gridLayout: {} + }, + gridItem: { + x: 0, + y: 0, + w: 4, + h: 4, + minW: 2, + minH: 3 + }, + propertyEnum: { + title: 'Enum', + titleColor: 'rgba(0, 0, 0, 0.88)', + titleFontSize: 16, + icon: 'RocketOutlined', + iconColor: 'currentColor', + iconSize: 16, + valueColor: 'rgba(0, 0, 0, 0.88)', + valueFontSize: 18, + activeColor: '#0f766e', + inactiveColor: '#ffffff', + activeTextColor: '#ffffff', + inactiveTextColor: 'rgba(0, 0, 0, 0.88)', + borderColor: '#0f766e', + borderRadius: 8, + deviceId: '', + deviceName: '', + propertyId: undefined, + propertyName: '', + functionId: undefined, + paramId: undefined + } + } +} diff --git a/visDashboard/MetadataManagement/PropertyEnum/index.ts b/visDashboard/MetadataManagement/PropertyEnum/index.ts new file mode 100644 index 0000000..e1fc369 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyEnum/index.ts @@ -0,0 +1,20 @@ +import { defineAsyncComponent } from 'vue' +import { propertyEnumConfig } from './config' + +const PropertyEnum = { + name: 'propertyEnum', + component: defineAsyncComponent(() => import('./PropertyEnum.vue')) +} + +const PropertyEnumConfig = [ + { + name: 'propertyEnum', + component: defineAsyncComponent(() => import('./Config.vue')) + } +] + +const PropertyEnumConfigProps = { + ...propertyEnumConfig +} + +export { PropertyEnum, PropertyEnumConfig, PropertyEnumConfigProps } diff --git a/visDashboard/MetadataManagement/PropertyPie/Config.vue b/visDashboard/MetadataManagement/PropertyPie/Config.vue new file mode 100644 index 0000000..054348c --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyPie/Config.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyPie/PropertyPie.vue b/visDashboard/MetadataManagement/PropertyPie/PropertyPie.vue new file mode 100644 index 0000000..a6a5718 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyPie/PropertyPie.vue @@ -0,0 +1,545 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyPie/config.ts b/visDashboard/MetadataManagement/PropertyPie/config.ts new file mode 100644 index 0000000..8b17cee --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyPie/config.ts @@ -0,0 +1,39 @@ +export const propertyPieConfig = { + name: '属性环形图', + type: 'propertyPie', + componentProps: { + style: { + independence: false, + gridLayout: {} + }, + gridItem: { + x: 0, + y: 0, + w: 3, + h: 7, + // minW: 4, + // minH: 3 + }, + propertyPie: { + title: 'Doughnut', + titleColor: 'rgba(0, 0, 0, 0.88)', + titleFontSize: 16, + totalLabel: 'Total', + totalLabelColor: 'rgba(0, 0, 0, 0.45)', + totalLabelFontSize: 14, + totalValueColor: 'rgba(0, 0, 0, 0.88)', + totalValueFontSize: 34, + emptyColor: '#d9d9d9', + ringWidth: 16, + deviceId: '', + deviceName: '', + propertyIds: [], + propertyNames: [] + } + }, + dataSourceProps: [], + extraProps: { + type: 'device', + options: [] + } +} diff --git a/visDashboard/MetadataManagement/PropertyPie/index.ts b/visDashboard/MetadataManagement/PropertyPie/index.ts new file mode 100644 index 0000000..270d0e5 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyPie/index.ts @@ -0,0 +1,20 @@ +import { defineAsyncComponent } from 'vue' +import { propertyPieConfig } from './config' + +const PropertyPie = { + name: 'propertyPie', + component: defineAsyncComponent(() => import('./PropertyPie.vue')) +} + +const PropertyPieConfig = [ + { + name: 'propertyPie', + component: defineAsyncComponent(() => import('./Config.vue')) + } +] + +const PropertyPieConfigProps = { + ...propertyPieConfig +} + +export { PropertyPie, PropertyPieConfig, PropertyPieConfigProps } diff --git a/visDashboard/MetadataManagement/PropertyProgress/Config.vue b/visDashboard/MetadataManagement/PropertyProgress/Config.vue index 9c4d5b6..54cb2ec 100644 --- a/visDashboard/MetadataManagement/PropertyProgress/Config.vue +++ b/visDashboard/MetadataManagement/PropertyProgress/Config.vue @@ -255,6 +255,9 @@ watch( gap: 12px; display: flex; flex-direction: column; + :deep(.config-form-item-content) { + padding: 0; + } } .card-container-row { diff --git a/visDashboard/MetadataManagement/PropertyProgress/PropertyProgress.vue b/visDashboard/MetadataManagement/PropertyProgress/PropertyProgress.vue index fac827c..1c605ab 100644 --- a/visDashboard/MetadataManagement/PropertyProgress/PropertyProgress.vue +++ b/visDashboard/MetadataManagement/PropertyProgress/PropertyProgress.vue @@ -169,7 +169,7 @@ const displayValue = computed(() => { if (value === undefined || value === null || value === '') { const fallback = config.value.value if (fallback === undefined || fallback === null || fallback === '') { - return 'N/A' + return '--' } return String(fallback) } diff --git a/visDashboard/MetadataManagement/PropertyProgress/config.ts b/visDashboard/MetadataManagement/PropertyProgress/config.ts index 8e749f5..5d58be7 100644 --- a/visDashboard/MetadataManagement/PropertyProgress/config.ts +++ b/visDashboard/MetadataManagement/PropertyProgress/config.ts @@ -18,7 +18,7 @@ export const propertyProgressConfig = { title: '', titleColor: 'rgba(0, 0, 0, 0.88)', titleFontSize: 16, - value: 'N/A', + value: '', valueColor: 'rgba(0, 0, 0, 0.88)', valueFontSize: 24, unit: '', diff --git a/visDashboard/MetadataManagement/PropertySignal/Config.vue b/visDashboard/MetadataManagement/PropertySignal/Config.vue index f1fd259..94ac073 100644 --- a/visDashboard/MetadataManagement/PropertySignal/Config.vue +++ b/visDashboard/MetadataManagement/PropertySignal/Config.vue @@ -266,6 +266,9 @@ watch( gap: 12px; display: flex; flex-direction: column; + :deep(.config-form-item-content) { + padding: 0; + } } .card-container-row { diff --git a/visDashboard/MetadataManagement/PropertySignal/PropertySignal.vue b/visDashboard/MetadataManagement/PropertySignal/PropertySignal.vue index ab87e36..543ce46 100644 --- a/visDashboard/MetadataManagement/PropertySignal/PropertySignal.vue +++ b/visDashboard/MetadataManagement/PropertySignal/PropertySignal.vue @@ -159,7 +159,7 @@ const displayValue = computed(() => { if (value === undefined || value === null || value === '') { const fallback = config.value.value if (fallback === undefined || fallback === null || fallback === '') { - return 'N/A' + return '--' } return String(fallback) } diff --git a/visDashboard/MetadataManagement/PropertySignal/config.ts b/visDashboard/MetadataManagement/PropertySignal/config.ts index 1a41d5f..9af4c1a 100644 --- a/visDashboard/MetadataManagement/PropertySignal/config.ts +++ b/visDashboard/MetadataManagement/PropertySignal/config.ts @@ -17,7 +17,7 @@ export const propertySignalConfig = { propertySignal: { titleColor: 'rgba(0, 0, 0, 0.88)', titleFontSize: 16, - value: 'N/A', + value: '', valueColor: 'rgba(0, 0, 0, 0.88)', valueFontSize: 28, unit: '%', diff --git a/visDashboard/MetadataManagement/PropertySlider/Config.vue b/visDashboard/MetadataManagement/PropertySlider/Config.vue index bbed66a..c84a71c 100644 --- a/visDashboard/MetadataManagement/PropertySlider/Config.vue +++ b/visDashboard/MetadataManagement/PropertySlider/Config.vue @@ -332,6 +332,9 @@ watch( gap: 12px; display: flex; flex-direction: column; + :deep(.config-form-item-content) { + padding: 0; + } } .card-container-row { diff --git a/visDashboard/MetadataManagement/PropertySlider/PropertySlider.vue b/visDashboard/MetadataManagement/PropertySlider/PropertySlider.vue index dd77681..4b13de4 100644 --- a/visDashboard/MetadataManagement/PropertySlider/PropertySlider.vue +++ b/visDashboard/MetadataManagement/PropertySlider/PropertySlider.vue @@ -194,7 +194,7 @@ watch(numericValue, (val) => { const sliderDisplayValue = computed(() => { const val = sliderValue.value - if (val === undefined || val === null) return 'N/A' + if (val === undefined || val === null) return '--' return `${Math.round(Number(val))}` }) diff --git a/visDashboard/MetadataManagement/PropertySwitch/Config.vue b/visDashboard/MetadataManagement/PropertySwitch/Config.vue index 1a5af75..805cfe9 100644 --- a/visDashboard/MetadataManagement/PropertySwitch/Config.vue +++ b/visDashboard/MetadataManagement/PropertySwitch/Config.vue @@ -189,7 +189,7 @@ const typeOptions = computed(() => { } else { properties = strToJson(instanceStore.current.metadata || instanceStore.detail.metadata) } - + console.log('properties', properties) return properties.map((item: any) => ({ ...item, label: item.name, From 5a800a4a23bd75686efabd128c1d2b62db9ac5a1 Mon Sep 17 00:00:00 2001 From: "hear." <1175160654@qq.com> Date: Thu, 30 Apr 2026 11:03:20 +0800 Subject: [PATCH 3/4] =?UTF-8?q?feat:=20=E8=A1=A8=E7=9B=98=E7=BB=84?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PropertyGauge/Config.vue | 296 ++++++++++ .../PropertyGauge/PropertyGauge.vue | 508 ++++++++++++++++++ .../PropertyGauge/config.ts | 36 ++ .../MetadataManagement/PropertyGauge/index.ts | 20 + .../PropertyGauge1/Config.vue | 269 ++++++++++ .../PropertyGauge1/PropertyGauge1.vue | 480 +++++++++++++++++ .../PropertyGauge1/config.ts | 35 ++ .../PropertyGauge1/index.ts | 20 + .../PropertyGauge2/Config.vue | 225 ++++++++ .../PropertyGauge2/PropertyGauge2.vue | 395 ++++++++++++++ .../PropertyGauge2/config.ts | 27 + .../PropertyGauge2/index.ts | 20 + .../PropertyLine/Config.vue | 299 +++++++++++ .../PropertyLine/PropertyLine.vue | 474 ++++++++++++++++ .../MetadataManagement/PropertyLine/config.ts | 29 + .../MetadataManagement/PropertyLine/index.ts | 20 + 16 files changed, 3153 insertions(+) create mode 100644 visDashboard/MetadataManagement/PropertyGauge/Config.vue create mode 100644 visDashboard/MetadataManagement/PropertyGauge/PropertyGauge.vue create mode 100644 visDashboard/MetadataManagement/PropertyGauge/config.ts create mode 100644 visDashboard/MetadataManagement/PropertyGauge/index.ts create mode 100644 visDashboard/MetadataManagement/PropertyGauge1/Config.vue create mode 100644 visDashboard/MetadataManagement/PropertyGauge1/PropertyGauge1.vue create mode 100644 visDashboard/MetadataManagement/PropertyGauge1/config.ts create mode 100644 visDashboard/MetadataManagement/PropertyGauge1/index.ts create mode 100644 visDashboard/MetadataManagement/PropertyGauge2/Config.vue create mode 100644 visDashboard/MetadataManagement/PropertyGauge2/PropertyGauge2.vue create mode 100644 visDashboard/MetadataManagement/PropertyGauge2/config.ts create mode 100644 visDashboard/MetadataManagement/PropertyGauge2/index.ts create mode 100644 visDashboard/MetadataManagement/PropertyLine/Config.vue create mode 100644 visDashboard/MetadataManagement/PropertyLine/PropertyLine.vue create mode 100644 visDashboard/MetadataManagement/PropertyLine/config.ts create mode 100644 visDashboard/MetadataManagement/PropertyLine/index.ts diff --git a/visDashboard/MetadataManagement/PropertyGauge/Config.vue b/visDashboard/MetadataManagement/PropertyGauge/Config.vue new file mode 100644 index 0000000..9d68e82 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyGauge/Config.vue @@ -0,0 +1,296 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyGauge/PropertyGauge.vue b/visDashboard/MetadataManagement/PropertyGauge/PropertyGauge.vue new file mode 100644 index 0000000..4739180 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyGauge/PropertyGauge.vue @@ -0,0 +1,508 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyGauge/config.ts b/visDashboard/MetadataManagement/PropertyGauge/config.ts new file mode 100644 index 0000000..7cb3d5e --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyGauge/config.ts @@ -0,0 +1,36 @@ +export const propertyGaugeConfig = { + name: '属性仪表盘', + type: 'propertyGauge', + componentProps: { + style: { + independence: false, + gridLayout: {} + }, + gridItem: { + x: 0, + y: 0, + w: 3, + h: 9, + }, + propertyGauge: { + title: 'Temperature', + titleColor: '#7f7f7f', + titleFontSize: 18, + minValue: -100, + maxValue: 100, + splitNumber: 10, + pointerColor: '#e85d04', + progressStartColor: '#f3e7df', + progressEndColor: '#f97316', + valueColor: '#3f3f46', + valueFontSize: 44, + unit: '', + unitColor: '#666', + unitFontSize: 34, + deviceId: '', + deviceName: '', + propertyId: undefined, + propertyName: '' + } + }, +} diff --git a/visDashboard/MetadataManagement/PropertyGauge/index.ts b/visDashboard/MetadataManagement/PropertyGauge/index.ts new file mode 100644 index 0000000..55bfbed --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyGauge/index.ts @@ -0,0 +1,20 @@ +import { defineAsyncComponent } from 'vue' +import { propertyGaugeConfig } from './config' + +const PropertyGauge = { + name: 'propertyGauge', + component: defineAsyncComponent(() => import('./PropertyGauge.vue')) +} + +const PropertyGaugeConfig = [ + { + name: 'propertyGauge', + component: defineAsyncComponent(() => import('./Config.vue')) + } +] + +const PropertyGaugeConfigProps = { + ...propertyGaugeConfig +} + +export { PropertyGauge, PropertyGaugeConfig, PropertyGaugeConfigProps } diff --git a/visDashboard/MetadataManagement/PropertyGauge1/Config.vue b/visDashboard/MetadataManagement/PropertyGauge1/Config.vue new file mode 100644 index 0000000..c69c159 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyGauge1/Config.vue @@ -0,0 +1,269 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyGauge1/PropertyGauge1.vue b/visDashboard/MetadataManagement/PropertyGauge1/PropertyGauge1.vue new file mode 100644 index 0000000..42835af --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyGauge1/PropertyGauge1.vue @@ -0,0 +1,480 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyGauge1/config.ts b/visDashboard/MetadataManagement/PropertyGauge1/config.ts new file mode 100644 index 0000000..addc6e9 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyGauge1/config.ts @@ -0,0 +1,35 @@ +export const propertyGauge1Config = { + name: '半圆仪表盘', + type: 'propertyGauge1', + componentProps: { + style: { + independence: false, + gridLayout: {} + }, + gridItem: { + x: 0, + y: 0, + w: 3, + h: 6 + }, + propertyGauge1: { + titleColor: '#666', + titleFontSize: 14, + minValue: 0, + maxValue: 1, + splitNumber: 5, + valueColor: '#00b86b', + valueFontSize: 36, + unit: '', + unitColor: '#333', + unitFontSize: 14, + startColor: '#1fcf8b', + middleColor: '#f4b447', + endColor: '#f0825d', + deviceId: '', + deviceName: '', + propertyId: undefined, + propertyName: '' + } + } +} diff --git a/visDashboard/MetadataManagement/PropertyGauge1/index.ts b/visDashboard/MetadataManagement/PropertyGauge1/index.ts new file mode 100644 index 0000000..3672804 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyGauge1/index.ts @@ -0,0 +1,20 @@ +import { defineAsyncComponent } from 'vue' +import { propertyGauge1Config } from './config' + +const PropertyGauge1 = { + name: 'propertyGauge1', + component: defineAsyncComponent(() => import('./PropertyGauge1.vue')) +} + +const PropertyGauge1Config = [ + { + name: 'propertyGauge1', + component: defineAsyncComponent(() => import('./Config.vue')) + } +] + +const PropertyGauge1ConfigProps = { + ...propertyGauge1Config +} + +export { PropertyGauge1, PropertyGauge1Config, PropertyGauge1ConfigProps } diff --git a/visDashboard/MetadataManagement/PropertyGauge2/Config.vue b/visDashboard/MetadataManagement/PropertyGauge2/Config.vue new file mode 100644 index 0000000..ffc108d --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyGauge2/Config.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyGauge2/PropertyGauge2.vue b/visDashboard/MetadataManagement/PropertyGauge2/PropertyGauge2.vue new file mode 100644 index 0000000..8d0e316 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyGauge2/PropertyGauge2.vue @@ -0,0 +1,395 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyGauge2/config.ts b/visDashboard/MetadataManagement/PropertyGauge2/config.ts new file mode 100644 index 0000000..1b24277 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyGauge2/config.ts @@ -0,0 +1,27 @@ +export const propertyGauge2Config = { + name: '多环仪表盘', + type: 'propertyGauge2', + componentProps: { + style: { + independence: false, + gridLayout: {} + }, + gridItem: { + x: 0, + y: 0, + w: 3, + h: 7 + }, + propertyGauge2: { + minValue: 0, + maxValue: 100, + ringWidth: 26, + titleFontSize: 24, + valueFontSize: 18, + deviceId: '', + deviceName: '', + propertyIds: [], + propertyNames: [] + } + } +} diff --git a/visDashboard/MetadataManagement/PropertyGauge2/index.ts b/visDashboard/MetadataManagement/PropertyGauge2/index.ts new file mode 100644 index 0000000..f97710c --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyGauge2/index.ts @@ -0,0 +1,20 @@ +import { defineAsyncComponent } from 'vue' +import { propertyGauge2Config } from './config' + +const PropertyGauge2 = { + name: 'propertyGauge2', + component: defineAsyncComponent(() => import('./PropertyGauge2.vue')) +} + +const PropertyGauge2Config = [ + { + name: 'propertyGauge2', + component: defineAsyncComponent(() => import('./Config.vue')) + } +] + +const PropertyGauge2ConfigProps = { + ...propertyGauge2Config +} + +export { PropertyGauge2, PropertyGauge2Config, PropertyGauge2ConfigProps } diff --git a/visDashboard/MetadataManagement/PropertyLine/Config.vue b/visDashboard/MetadataManagement/PropertyLine/Config.vue new file mode 100644 index 0000000..8304120 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyLine/Config.vue @@ -0,0 +1,299 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyLine/PropertyLine.vue b/visDashboard/MetadataManagement/PropertyLine/PropertyLine.vue new file mode 100644 index 0000000..57ed7e9 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyLine/PropertyLine.vue @@ -0,0 +1,474 @@ + + + + + diff --git a/visDashboard/MetadataManagement/PropertyLine/config.ts b/visDashboard/MetadataManagement/PropertyLine/config.ts new file mode 100644 index 0000000..3e34863 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyLine/config.ts @@ -0,0 +1,29 @@ +export const propertyLineConfig = { + name: '属性聚合折线图', + type: 'propertyLine', + componentProps: { + style: { + independence: false, + gridLayout: {} + }, + gridItem: { + x: 0, + y: 0, + w: 5, + h: 10 + }, + propertyLine: { + title: 'Line chart', + titleColor: 'rgba(0, 0, 0, 0.88)', + titleFontSize: 18, + legendFontSize: 16, + timePeriod: 'today', + cycle: '*', + aggregation: 'AVG', + deviceId: '', + deviceName: '', + propertyIds: [], + propertyNames: [] + } + } +} diff --git a/visDashboard/MetadataManagement/PropertyLine/index.ts b/visDashboard/MetadataManagement/PropertyLine/index.ts new file mode 100644 index 0000000..952a9c1 --- /dev/null +++ b/visDashboard/MetadataManagement/PropertyLine/index.ts @@ -0,0 +1,20 @@ +import { defineAsyncComponent } from 'vue' +import { propertyLineConfig } from './config' + +const PropertyLine = { + name: 'propertyLine', + component: defineAsyncComponent(() => import('./PropertyLine.vue')) +} + +const PropertyLineConfig = [ + { + name: 'propertyLine', + component: defineAsyncComponent(() => import('./Config.vue')) + } +] + +const PropertyLineConfigProps = { + ...propertyLineConfig +} + +export { PropertyLine, PropertyLineConfig, PropertyLineConfigProps } From 95660868fed6a252ab91b5f8c6d30ec972b459ac Mon Sep 17 00:00:00 2001 From: "hear." <1175160654@qq.com> Date: Thu, 30 Apr 2026 17:07:30 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20=E5=9B=BE=E7=89=87=E5=8F=8A=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/DashboardPreviewTab/index.vue | 8 ++ .../EventShowCard/eventShowCard.png | Bin 0 -> 13912 bytes .../IndividualCard/Config.vue | 68 ++++++---- .../IndividualCard/individualCard.png | Bin 0 -> 6680 bytes .../PropertyBattery/Config.vue | 70 ++++++---- .../PropertyBattery/propertyBattery.png | Bin 0 -> 5007 bytes .../PropertyChart/Config.vue | 70 ++++++---- .../PropertyChart/propertyChart.png | Bin 0 -> 8623 bytes .../PropertyEnum/Config.vue | 70 +++++----- .../PropertyEnum/propertyEnum.png | Bin 0 -> 8298 bytes .../PropertyGauge/Config.vue | 72 +++++++---- .../PropertyGauge/propertyGauge.png | Bin 0 -> 56899 bytes .../PropertyGauge1/Config.vue | 66 ++++++---- .../PropertyGauge1/propertyGauge1.png | Bin 0 -> 13917 bytes .../PropertyGauge2/Config.vue | 15 +++ .../PropertyGauge2/propertyGauge2.png | Bin 0 -> 31790 bytes .../PropertyLine/Config.vue | 77 ++++++----- .../PropertyLine/propertyLine.png | Bin 0 -> 10582 bytes .../MetadataManagement/PropertyPie/Config.vue | 74 ++++++----- .../PropertyPie/propertyPie.png | Bin 0 -> 10769 bytes .../PropertyProgress/Config.vue | 70 ++++++---- .../PropertyProgress/propertyProgress.png | Bin 0 -> 4203 bytes .../PropertyShowCard/propertyShowCard.png | Bin 0 -> 5188 bytes .../PropertySignal/Config.vue | 70 ++++++---- .../PropertySignal/propertySignal.png | Bin 0 -> 4544 bytes .../PropertySlider/Config.vue | 118 +++++++++-------- .../PropertySlider/propertySlider.png | Bin 0 -> 5309 bytes .../PropertySwitch/Config.vue | 120 ++++++++++-------- .../PropertySwitch/propertySwitch.png | Bin 0 -> 4252 bytes 29 files changed, 578 insertions(+), 390 deletions(-) create mode 100644 visDashboard/MetadataManagement/EventShowCard/eventShowCard.png create mode 100644 visDashboard/MetadataManagement/IndividualCard/individualCard.png create mode 100644 visDashboard/MetadataManagement/PropertyBattery/propertyBattery.png create mode 100644 visDashboard/MetadataManagement/PropertyChart/propertyChart.png create mode 100644 visDashboard/MetadataManagement/PropertyEnum/propertyEnum.png create mode 100644 visDashboard/MetadataManagement/PropertyGauge/propertyGauge.png create mode 100644 visDashboard/MetadataManagement/PropertyGauge1/propertyGauge1.png create mode 100644 visDashboard/MetadataManagement/PropertyGauge2/propertyGauge2.png create mode 100644 visDashboard/MetadataManagement/PropertyLine/propertyLine.png create mode 100644 visDashboard/MetadataManagement/PropertyPie/propertyPie.png create mode 100644 visDashboard/MetadataManagement/PropertyProgress/propertyProgress.png create mode 100644 visDashboard/MetadataManagement/PropertyShowCard/propertyShowCard.png create mode 100644 visDashboard/MetadataManagement/PropertySignal/propertySignal.png create mode 100644 visDashboard/MetadataManagement/PropertySlider/propertySlider.png create mode 100644 visDashboard/MetadataManagement/PropertySwitch/propertySwitch.png diff --git a/views/device/components/DashboardPreviewTab/index.vue b/views/device/components/DashboardPreviewTab/index.vue index 4c254cc..759cc96 100644 --- a/views/device/components/DashboardPreviewTab/index.vue +++ b/views/device/components/DashboardPreviewTab/index.vue @@ -107,6 +107,14 @@ defineExpose({ .dashboard-preview-tab { width: 100%; height: 100%; + :deep(.unified-drawer .list-container .lazy-image-container){ + // width: 90px !important; + img{ + width: 100% !important; + height: 100% !important; + object-fit: cover; + } + } } .preview-host { diff --git a/visDashboard/MetadataManagement/EventShowCard/eventShowCard.png b/visDashboard/MetadataManagement/EventShowCard/eventShowCard.png new file mode 100644 index 0000000000000000000000000000000000000000..9cd5d64b39771b67ae5c51af635d5ed9cba1bdf1 GIT binary patch literal 13912 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±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 V6Zu`YZ^CX68frSK#me`C{|gM5>umr4 literal 0 HcmV?d00001 diff --git a/visDashboard/MetadataManagement/IndividualCard/Config.vue b/visDashboard/MetadataManagement/IndividualCard/Config.vue index 5f38065..c8d3252 100644 --- a/visDashboard/MetadataManagement/IndividualCard/Config.vue +++ b/visDashboard/MetadataManagement/IndividualCard/Config.vue @@ -1,5 +1,34 @@ -