From 4818e3c2297adce040b7c22e774d8fa5a9fdb5dd Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Wed, 07 Jan 2026 18:34:57 +0800
Subject: [PATCH] feat: 优化表单提交

---
 applications/drone-command/src/views/basicManage/deviceStock/deviceStock.vue           |   13 +++++++------
 applications/drone-command/src/views/basicManage/deviceStock/DeviceStockFormDialog.vue |   15 ++++++---------
 2 files changed, 13 insertions(+), 15 deletions(-)

diff --git a/applications/drone-command/src/views/basicManage/deviceStock/DeviceStockFormDialog.vue b/applications/drone-command/src/views/basicManage/deviceStock/DeviceStockFormDialog.vue
index d508d12..5fc6022 100644
--- a/applications/drone-command/src/views/basicManage/deviceStock/DeviceStockFormDialog.vue
+++ b/applications/drone-command/src/views/basicManage/deviceStock/DeviceStockFormDialog.vue
@@ -82,7 +82,7 @@
 import { ElMessage } from 'element-plus'
 import { fwDeviceDetailApi, fwDeviceSaveApi, fwDeviceUpdateApi } from '@/api/fwDevice'
 
-const createEmptyForm = () => ({
+const initForm = () => ({
 	deviceModel: '',
 	deviceName: '',
 	deviceSpecification: '',
@@ -97,7 +97,7 @@
 
 const emit = defineEmits(['success'])
 const formRef = ref(null)
-const formData = ref(createEmptyForm())
+const formData = ref(initForm())
 const visible = ref(false)
 const dialogMode = ref('add')
 const submitting = ref(false)
@@ -165,9 +165,7 @@
 	if (!isValid) return
 	submitting.value = true
 	try {
-		dialogMode.value === 'add'
-			? await fwDeviceSaveApi({ ...formData.value })
-			: await fwDeviceUpdateApi({ ...formData.value })
+		dialogMode.value === 'add' ? await fwDeviceSaveApi(formData.value) : await fwDeviceUpdateApi(formData.value)
 		ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
 		visible.value = false
 		emit('success')
@@ -180,13 +178,12 @@
 async function loadDetail() {
 	if (!formData.value.id) return
 	const res = await fwDeviceDetailApi({ id: formData.value.id })
-	const data = res?.data?.data ?? {}
-	formData.value = { ...createEmptyForm(), ...data }
+	formData.value = res?.data?.data ?? {}
 }
 
 // 关闭后重置
 function handleClosed() {
-	formData.value = createEmptyForm()
+	formData.value = initForm()
 }
 
 // 打开弹框
@@ -195,7 +192,7 @@
 	formData.value = row
 	visible.value = true
 	if (dialogMode.value === 'add') {
-		formData.value = createEmptyForm()
+		formData.value = initForm()
 	} else {
 		await loadDetail()
 	}
diff --git a/applications/drone-command/src/views/basicManage/deviceStock/deviceStock.vue b/applications/drone-command/src/views/basicManage/deviceStock/deviceStock.vue
index 4a3e5ad..dbfb894 100644
--- a/applications/drone-command/src/views/basicManage/deviceStock/deviceStock.vue
+++ b/applications/drone-command/src/views/basicManage/deviceStock/deviceStock.vue
@@ -8,8 +8,8 @@
 				<el-input v-model="searchParams.deviceType" />
 			</el-form-item>
 			<el-form-item>
-				<el-button type="primary" @click="handleSearch">查询</el-button>
 				<el-button @click="resetForm">重置</el-button>
+				<el-button type="primary" @click="handleSearch">查询</el-button>
 			</el-form-item>
 		</el-form>
 		<div>
@@ -44,17 +44,18 @@
 </template>
 
 <script setup>
-import { onMounted, reactive, ref } from 'vue'
+import { onMounted, ref } from 'vue'
 import { ElMessageBox } from 'element-plus'
 import { fwDeviceListApi, fwDeviceRemoveApi } from '@/api/fwDevice'
 import DeviceStockFormDialog from './DeviceStockFormDialog.vue'
 
-const searchParams = reactive({
+const initSearchParams = () => ({
 	deviceName: '',
 	deviceType: '',
 	current: 1,
 	size: 10,
 })
+const searchParams = ref(initSearchParams())
 const total = ref(0)
 const list = ref([])
 const queryParamsRef = ref(null)
@@ -63,21 +64,21 @@
 
 // 获取列表
 async function getList() {
-	const res = await fwDeviceListApi({ ...searchParams })
+	const res = await fwDeviceListApi(searchParams.value)
 	list.value = res?.data?.data?.records ?? []
 	total.value = res?.data?.data?.total ?? 0
 }
 
 // 查询
 function handleSearch() {
-	searchParams.current = 1
+	searchParams.value.current = 1
 	getList()
 }
 
 // 重置查询
 function resetForm() {
 	queryParamsRef.value?.resetFields()
-	searchParams.current = 1
+	searchParams.value.current = 1
 	getList()
 }
 

--
Gitblit v1.9.3