From d53327e7ed9db8b4f70b14088194431bf195f90f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com>
Date: Fri, 17 Apr 2026 17:33:49 +0800
Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E8=81=94=E8=AE=BE=E5=A4=87BUG?=
=?UTF-8?q?=E5=A4=84=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/iot/manager/DeviceManagerList.vue | 18 ++++++++++++++++++
.../manager/components/DeviceBrokenForm.vue | 5 +++--
.../iot/manager/components/DeviceGhForm.vue | 7 ++++---
.../components/preview/DevicePreviewForm.vue | 5 +++--
4 files changed, 28 insertions(+), 7 deletions(-)
diff --git a/src/views/iot/manager/DeviceManagerList.vue b/src/views/iot/manager/DeviceManagerList.vue
index 5ef33b2..471d853 100644
--- a/src/views/iot/manager/DeviceManagerList.vue
+++ b/src/views/iot/manager/DeviceManagerList.vue
@@ -52,6 +52,7 @@
+
@@ -73,11 +74,13 @@
import DeviceGhModal from "./components/DeviceGhModal.vue";
import { defHttp } from '/@/utils/http/axios';
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
+ import CameraPreviewModal from '/@/views/iot/tplink/camera/components/CameraPreviewModal.vue'
const formRef = ref();
const queryParam = reactive({});
const previewDrawer = ref();
const logDrawer = ref();
+ const cameraViewRef = ref();
const brokenDrawer = ref();
const ghDrawer = ref();
const tipVisible = ref(false);
@@ -150,6 +153,11 @@
*/
function getTableAction(record){
return [
+ {
+ label: '预览',
+ onClick: handleCameraView.bind(null, record,"预览"),
+ ifShow: record.onlineStatus!='待集成' && record.deviceType == 'SURVEILLANCECAMERA'
+ },
{
label: '绑定区域',
onClick: handleDeviceGh.bind(null, record,"绑定"),
@@ -168,6 +176,16 @@
]
}
+ /**
+ * 预览
+ */
+ function handleCameraView(record: Recordable) {
+ console.log(record);
+ record.streamType = 1;
+ cameraViewRef.value.disableSubmit = true;
+ cameraViewRef.value.edit(record);
+ }
+
/**
* 报损
*/
diff --git a/src/views/iot/manager/components/DeviceBrokenForm.vue b/src/views/iot/manager/components/DeviceBrokenForm.vue
index 1d92425..443cbd8 100644
--- a/src/views/iot/manager/components/DeviceBrokenForm.vue
+++ b/src/views/iot/manager/components/DeviceBrokenForm.vue
@@ -56,7 +56,7 @@ const confirmLoading = ref(false);
const validatorRules = {
remarks: [{ required: true, message: '请填写备注!'},],
};
-const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: true });
+const { resetFields, clearValidate, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
// 表单禁用
const disabled = computed(()=>{
@@ -80,7 +80,7 @@ function add() {
/**
* 编辑
*/
-function edit(record) {
+async function edit(record) {
isUpdate.value = true;
nextTick(() => {
resetFields();
@@ -95,6 +95,7 @@ function edit(record) {
Object.assign(formData, tmpData);
formData.remarks = '';
});
+ await clearValidate();
}
/**
diff --git a/src/views/iot/manager/components/DeviceGhForm.vue b/src/views/iot/manager/components/DeviceGhForm.vue
index 840e22b..a468de9 100644
--- a/src/views/iot/manager/components/DeviceGhForm.vue
+++ b/src/views/iot/manager/components/DeviceGhForm.vue
@@ -68,9 +68,9 @@ const confirmLoading = ref(false);
//表单验证
const validatorRules = {
nuId: [{ required: true, message: '请选择区域!'},],
- remarks: [{ required: true, message: '请填写备注!'},],
+ // remarks: [{ required: true, message: '请填写备注!'},],
};
-const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: true });
+const { resetFields, clearValidate, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
// 表单禁用
const disabled = computed(()=>{
@@ -94,7 +94,7 @@ function add() {
/**
* 编辑
*/
-function edit(record) {
+async function edit(record) {
getNuInfos();
isUpdate.value = true;
nextTick(() => {
@@ -110,6 +110,7 @@ function edit(record) {
Object.assign(formData, tmpData);
formData.remarks = '';
});
+ await clearValidate();
}
/**
diff --git a/src/views/iot/manager/components/preview/DevicePreviewForm.vue b/src/views/iot/manager/components/preview/DevicePreviewForm.vue
index 858760e..ee8a6bf 100644
--- a/src/views/iot/manager/components/preview/DevicePreviewForm.vue
+++ b/src/views/iot/manager/components/preview/DevicePreviewForm.vue
@@ -65,7 +65,7 @@ const confirmLoading = ref(false);
const validatorRules = {
sn: [{ required: true, message: '请填写设备标识!'},],
};
-const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: true });
+const { resetFields, clearValidate, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
// 表单禁用
const disabled = computed(()=>{
@@ -89,7 +89,7 @@ function add() {
/**
* 编辑
*/
-function edit(record) {
+async function edit(record) {
isUpdate.value = true;
nextTick(() => {
resetFields();
@@ -103,6 +103,7 @@ function edit(record) {
//赋值
Object.assign(formData, tmpData);
});
+ await clearValidate();
}
/**