From aaa0e78343abe315d0ac1207b5c91017551e5cd6 Mon Sep 17 00:00:00 2001 From: FuHao <62583365+haodd0216@users.noreply.github.com> Date: Tue, 23 Jan 2024 16:19:18 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20bug#21601=E3=80=8120621=E3=80=8121711?= =?UTF-8?q?=E3=80=8121712?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: bug#21601、#20621 * fix: bug#21711 * fix: bug#21712 --- public/images/DataCollect/IEC104.png | Bin 0 -> 4589 bytes src/utils/consts.ts | 1 + src/views/DataCollect/Channel/Save/index.vue | 4 +- src/views/DataCollect/Channel/index.vue | 17 +- .../Collector/Point/Save/SaveIEC104.vue | 263 ++++++++++++++++++ .../Collector/Point/Save/SaveS7.vue | 53 +--- .../DataCollect/Collector/Point/index.vue | 23 +- .../DataCollect/Collector/Tree/Save/index.vue | 14 + src/views/DataCollect/Collector/data.ts | 2 + src/views/DataCollect/Collector/index.vue | 2 +- .../Product/Detail/MetadataMap/index.vue | 5 +- src/views/device/Product/Detail/index.vue | 4 +- .../action/Notify/VariableDefinitions.vue | 10 +- 13 files changed, 338 insertions(+), 60 deletions(-) create mode 100644 public/images/DataCollect/IEC104.png create mode 100644 src/views/DataCollect/Collector/Point/Save/SaveIEC104.vue diff --git a/public/images/DataCollect/IEC104.png b/public/images/DataCollect/IEC104.png new file mode 100644 index 0000000000000000000000000000000000000000..fd8b1454813f2406400fa5aca6784bea46817456 GIT binary patch literal 4589 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 X2UkT!x}QjX00000NkvXXu0mjftvBZc literal 0 HcmV?d00001 diff --git a/src/utils/consts.ts b/src/utils/consts.ts index c87d2cae..ac738daf 100644 --- a/src/utils/consts.ts +++ b/src/utils/consts.ts @@ -58,4 +58,5 @@ export const protocolList = [ { label: 'MODBUS_TCP', value: 'MODBUS_TCP', alias: 'Modbus/TCP' }, { label: 'COLLECTOR_GATEWAY', value: 'COLLECTOR_GATEWAY', alias: 'GATEWAY' }, { label: 'S7', value: 'snap7', alias: 'snap7' }, + { label: 'IEC104', value: 'iec104', alias: 'IEC104' } ] diff --git a/src/views/DataCollect/Channel/Save/index.vue b/src/views/DataCollect/Channel/Save/index.vue index 42ee9a87..b9cfda66 100644 --- a/src/views/DataCollect/Channel/Save/index.vue +++ b/src/views/DataCollect/Channel/Save/index.vue @@ -249,6 +249,8 @@ const handleOk = async () => { params.configuration={ connect : false } + } else { + params.configuration = {} } params.circuitBreaker = { @@ -316,7 +318,7 @@ const getProvidersList = async () => { if (resp.status === 200) { const arr = resp.result .filter( - (item: any) => ['GATEWAY', 'Modbus/TCP', 'opc-ua','snap7'].includes(item.name), + (item: any) => ['GATEWAY', 'Modbus/TCP', 'opc-ua','snap7', 'IEC104'].includes(item.name), ) .map((it: any) => it.name); const providers: any = protocolList.filter((item: any) => diff --git a/src/views/DataCollect/Channel/index.vue b/src/views/DataCollect/Channel/index.vue index 0ec2378e..7229d70c 100644 --- a/src/views/DataCollect/Channel/index.vue +++ b/src/views/DataCollect/Channel/index.vue @@ -67,9 +67,9 @@
- {{ slotProps.provider }} + {{ protocolList.find(item => item.value === slotProps.provider)?.label }}
@@ -103,9 +103,11 @@
说明
-
- {{slotProps.description}} -
+ +
+ {{slotProps.description}} +
+
@@ -161,10 +163,12 @@ const opcImage = getImage('/DataCollect/device-opcua.png'); const modbusImage = getImage('/DataCollect/device-modbus.png'); const s7Image = getImage('/DataCollect/s7.png') const gatewayImage = getImage('/DataCollect/gateway.png') +const iecImage = getImage('/DataCollect/IEC104.png') const ImageMap = new Map() ImageMap.set('OPC_UA',opcImage) ImageMap.set('MODBUS_TCP',modbusImage) ImageMap.set('snap7',s7Image) +ImageMap.set('iec104',iecImage) ImageMap.set('COLLECTOR_GATEWAY',gatewayImage) @@ -367,6 +371,9 @@ const handleSearch = (e: any) => { text-overflow: ellipsis; //溢出用省略号显示 white-space: nowrap; //溢出不换行 } + .explain { + margin-top: 10px; + } } .details-text { font-weight: 700; diff --git a/src/views/DataCollect/Collector/Point/Save/SaveIEC104.vue b/src/views/DataCollect/Collector/Point/Save/SaveIEC104.vue new file mode 100644 index 00000000..ea569dca --- /dev/null +++ b/src/views/DataCollect/Collector/Point/Save/SaveIEC104.vue @@ -0,0 +1,263 @@ + + diff --git a/src/views/DataCollect/Collector/Point/Save/SaveS7.vue b/src/views/DataCollect/Collector/Point/Save/SaveS7.vue index c64080f3..dcc7f498 100644 --- a/src/views/DataCollect/Collector/Point/Save/SaveS7.vue +++ b/src/views/DataCollect/Collector/Point/Save/SaveS7.vue @@ -97,20 +97,14 @@

采集频率采集频率为0时不执行轮询任务

- - - 3000ms - 6000ms - 9000ms - - {{ - ![3000, 6000, 9000].includes(form.configuration.interval) - ? form.configuration.interval + 'ms' - : '自定义' - }} - - - + @@ -121,17 +115,6 @@ - - - - - - - -