From 56f94ed7453110a3e475d476e6f4f281305c9f61 Mon Sep 17 00:00:00 2001 From: JINGYJ <1458671527@qq.com> Date: Fri, 11 Jul 2025 17:42:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BA=8B=E4=BB=B6=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E9=80=BB=E8=BE=91=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/assets/images/common/table_addBtn.png | Bin 0 -> 508 bytes .../Design/CommManagement/commManagement.vue | 258 ++++----- .../Design/CommManagement/deviceForm.vue | 134 +++++ .../CommManagement/receiveEventForm.vue | 508 ++++++++++++++++++ .../Design/CommManagement/sendEventForm.vue | 441 +++++++++++++++ 5 files changed, 1177 insertions(+), 164 deletions(-) create mode 100644 src/renderer/src/assets/images/common/table_addBtn.png create mode 100644 src/renderer/src/views/Design/CommManagement/deviceForm.vue create mode 100644 src/renderer/src/views/Design/CommManagement/receiveEventForm.vue create mode 100644 src/renderer/src/views/Design/CommManagement/sendEventForm.vue diff --git a/src/renderer/src/assets/images/common/table_addBtn.png b/src/renderer/src/assets/images/common/table_addBtn.png new file mode 100644 index 0000000000000000000000000000000000000000..074a3d913ff8e0bd98ef07c932079b2e9490dafa GIT binary patch literal 508 zcmV3U)1a1RV3Y$5>~`y9?j~UO4ZM73 zP^upgLKYAYX20L7v`^ad3{Ivk8iZp#!;<`!at4al0TO1?322C%s=tHj{!Xi3p`NP%Na8 zo$~xGG7Y$tSQ~76_}qCNNNYmM0j_peaA9n(%>-=gJ5M+|@8Ub8Qb6!?WWSM$z~R}8 zQ)<2xu&}!`-`an6+Ff`G8V?^bUCV1A(4mm?Ivf1D{tgwAGE{b;^CpyC_Y3##itBnLRWI--(@(AyJIYGO?AGeW?D$K!&@nl2GDY};>&2NYilQYo^^UqEcw ySDHpDq9t_A$XA
- -
通信协议
- - - - - - - - - - - - - - - -
通信参数
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 16进制 - - - 清空内容 - 接收数据 - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
输出列表
- - - - - - -
添加数据
-
-
-
+ + + + + +
@@ -215,6 +81,9 @@ import { DSButton } from '@/components/Button' import { DSDialog } from '@/components/Dialog' import DeviceDialog from './deviceDialog.vue' import EventDialog from './eventDialog.vue' +import DeviceForm from './deviceForm.vue' +import ReceiveEventForm from './receiveEventForm.vue' +import SendEventForm from './sendEventForm.vue' import DeviceIcon from '@/assets/images/common/device.png' import DeviceSelectedIcon from '@/assets/images/common/device_selected.png' import SendIcon from '@/assets/images/common/send.png' @@ -323,7 +192,7 @@ const receiveList = ref([ } }, { name: '文本-协议组装', enabled: false }, - { name: '字节匹配-协议组装', enabled: false }, + { name: '字节-协议组装', enabled: false }, { name: '脚本', enabled: false } ]) // 发送事件列表 @@ -346,7 +215,9 @@ const sendList = ref([ { name: '脚本', enabled: false } ]) -const dataTab = ref('receive') +// 事件类型 +const receiveEventType = ref('') +const sendEventType = ref('') // 设备信息表单 const formDeviceInfo = reactive({ protocol: '', @@ -359,7 +230,22 @@ const formDeviceInfo = reactive({ endInfo: '' }) // 接收事件信息表单 -const formEventInfo = reactive({}) +const formEventInfo = reactive({ + deviceName: '', + separator: '', + lengthCompare: false, + characterLength: '', + tableData: [] +}) + +// 发送事件信息表单 +const formSendEventInfo = reactive({ + deviceName: '', + separator: '', + lengthCompare: false, + characterLength: '', + tableData: [] +}) interface CommBar { label: string @@ -397,6 +283,32 @@ const selectDevice = (device: Device) => { if (activeTab.value === 'device') { Object.assign(formDeviceInfo, device.info) } else if (activeTab.value === 'receive') { + switch (device.name) { + case '文本-协议解析': + receiveEventType.value = 'textParse' + break + case '文本-协议组装': + receiveEventType.value = 'textMake' + break + case '字节-协议组装': + receiveEventType.value = 'byteMake' + break + case '脚本': + receiveEventType.value = 'script' + break + } + } else if (activeTab.value === 'send') { + switch (device.name) { + case '文本-直接输出': + sendEventType.value = 'textParse' + break + case '文本-组装输出': + sendEventType.value = 'textMake' + break + case '脚本': + sendEventType.value = 'script' + break + } } } @@ -414,6 +326,24 @@ const addDevice = () => { console.log(isDeviceDialog.value, 'isDeviceDialog.value') } +const handleTableAdd = () => { + if (activeTab.value === 'receive') { + formEventInfo.tableData.push({ + num: formEventInfo.tableData.length + 1, + name: 'output1', + type: 'int', + result: '' + }) + } else if (activeTab.value === 'send') { + formSendEventInfo.tableData.push({ + num: formSendEventInfo.tableData.length + 1, + name: 'input', + type: 'int', + result: '' + }) + } +} + // 接收事件内容 const receiveData = ref('') // 发送事件内容 @@ -537,6 +467,15 @@ const handleClose = () => { height: 224px; background: #363940; } + .table-add-btn { + box-sizing: border-box; + width: 128px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + } } } .commManagement-line-first, @@ -551,14 +490,5 @@ const handleClose = () => { .commManagement-line-second { left: 372px; } - :deep(.eventList-table .el-table__header > thead th) { - color: #fff; - - background-color: rgba(21, 77, 221, 0.8); - border-color: #4e5969; - } - :deep(.el-table--fit .el-table__inner-wrapper:before) { - background-color: #4e5969; - } } diff --git a/src/renderer/src/views/Design/CommManagement/deviceForm.vue b/src/renderer/src/views/Design/CommManagement/deviceForm.vue new file mode 100644 index 0000000..a71f01e --- /dev/null +++ b/src/renderer/src/views/Design/CommManagement/deviceForm.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/src/renderer/src/views/Design/CommManagement/receiveEventForm.vue b/src/renderer/src/views/Design/CommManagement/receiveEventForm.vue new file mode 100644 index 0000000..3ed02e4 --- /dev/null +++ b/src/renderer/src/views/Design/CommManagement/receiveEventForm.vue @@ -0,0 +1,508 @@ + + + + + diff --git a/src/renderer/src/views/Design/CommManagement/sendEventForm.vue b/src/renderer/src/views/Design/CommManagement/sendEventForm.vue new file mode 100644 index 0000000..592d746 --- /dev/null +++ b/src/renderer/src/views/Design/CommManagement/sendEventForm.vue @@ -0,0 +1,441 @@ + + + + +