From 652513724b3dd637899f087c3924a7a16ec08c8f Mon Sep 17 00:00:00 2001 From: g82tt Date: Sun, 17 May 2026 13:55:59 +0800 Subject: [PATCH] =?UTF-8?q?V4=E4=BF=AE=E5=A4=8D:=20=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E5=88=97=E6=94=B9=E4=B8=BA=E7=9B=B4=E6=8E=A5=E5=86=99=E5=9C=A8?= =?UTF-8?q?base=5Fdevice.vue=E7=9A=84onInited=E4=B8=AD(Vue3=E5=86=99?= =?UTF-8?q?=E6=B3=95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../warehouse/device_manager/base_device.jsx | 57 ------------------- .../warehouse/device_manager/base_device.vue | 47 +++++++++++++-- 2 files changed, 43 insertions(+), 61 deletions(-) delete mode 100644 web.vite/src/extension/warehouse/device_manager/base_device.jsx diff --git a/web.vite/src/extension/warehouse/device_manager/base_device.jsx b/web.vite/src/extension/warehouse/device_manager/base_device.jsx deleted file mode 100644 index 8b7c388..0000000 --- a/web.vite/src/extension/warehouse/device_manager/base_device.jsx +++ /dev/null @@ -1,57 +0,0 @@ -/** - * base_device 操作列扩展 — 按 DeviceGroup 渲染内联按钮 + 对话框 - */ -import { ref } from 'vue' -import DeviceLivePreview from '@/views/warehouse/device_manager/base_device/components/DeviceLivePreview.vue' -import PtzControlPanel from '@/views/warehouse/device_manager/base_device/components/PtzControlPanel.vue' -import RealtimeDataPanel from '@/views/warehouse/device_manager/base_device/components/RealtimeDataPanel.vue' -import DeviceControlPanel from '@/views/warehouse/device_manager/base_device/components/DeviceControlPanel.vue' - -export default { - onInited() { - const currentDevice = ref(null) - const previewVisible = ref(false) - const ptzVisible = ref(false) - const realtimeVisible = ref(false) - const controlVisible = ref(false) - - this.columns.push({ - title: '操作', - field: '_actions', - width: 300, - align: 'left', - fixed: 'right', - render: (h, { row }) => { - if (row.DeviceGroup === '视频设备') { - return h('div', [ - h('el-button', { size: 'small', type: 'primary', - onClick: () => { currentDevice.value = row; previewVisible.value = true } - }, { default: () => '预览' }), - h('el-button', { size: 'small', - onClick: () => { currentDevice.value = row; ptzVisible.value = true } - }, { default: () => '云台' }), - h(DeviceLivePreview, { modelValue: previewVisible.value, 'onUpdate:modelValue': v => previewVisible.value = v, device: currentDevice.value }), - h(PtzControlPanel, { modelValue: ptzVisible.value, 'onUpdate:modelValue': v => ptzVisible.value = v, device: currentDevice.value }), - ]) - } - if (row.DeviceGroup === 'IoT设备') { - return h('div', [ - h('el-button', { size: 'small', type: 'primary', - onClick: () => { currentDevice.value = row; realtimeVisible.value = true } - }, { default: () => '实时数据' }), - h('el-button', { size: 'small', - onClick: () => { currentDevice.value = row; controlVisible.value = true } - }, { default: () => '控制' }), - h(RealtimeDataPanel, { modelValue: realtimeVisible.value, 'onUpdate:modelValue': v => realtimeVisible.value = v, device: currentDevice.value }), - h(DeviceControlPanel, { modelValue: controlVisible.value, 'onUpdate:modelValue': v => controlVisible.value = v, device: currentDevice.value }), - ]) - } - return null - } - }) - - // 把 DeviceGroup 列显示出来 - const gcol = this.columns.find(c => c.field === 'DeviceGroup') - if (gcol) gcol.hidden = false - } -} diff --git a/web.vite/src/views/warehouse/device_manager/base_device.vue b/web.vite/src/views/warehouse/device_manager/base_device.vue index 207b1b5..1a32e17 100644 --- a/web.vite/src/views/warehouse/device_manager/base_device.vue +++ b/web.vite/src/views/warehouse/device_manager/base_device.vue @@ -15,7 +15,6 @@ :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions" :table="table" - :extend="extend" :onInit="onInit" :onInited="onInited" :searchBefore="searchBefore" @@ -31,9 +30,12 @@