From b2a8ee3a7c3628d7c8f6ee330630c18e58da92c3 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Fri, 09 Jan 2026 11:36:37 +0800
Subject: [PATCH] feat: 完成基础设备入库

---
 applications/drone-command/src/views/basicManage/deviceStock/deviceStock.vue       |   16 +++++++-
 applications/drone-command/src/views/basicManage/deviceStock/FormDiaLog.vue        |   20 ++++++----
 packages/constants/fwDevice.js                                                     |    9 ++++
 packages/constants/index.js                                                        |    1 
 applications/drone-command/src/views/basicManage/deviceStock/DeviceTrackDiaLog.vue |    2 
 applications/drone-command/src/views/aICrudTemplate/FormDiaLog.vue                 |   22 ++++++----
 6 files changed, 50 insertions(+), 20 deletions(-)

diff --git a/applications/drone-command/src/views/aICrudTemplate/FormDiaLog.vue b/applications/drone-command/src/views/aICrudTemplate/FormDiaLog.vue
index 0190b96..8bfaeb0 100644
--- a/applications/drone-command/src/views/aICrudTemplate/FormDiaLog.vue
+++ b/applications/drone-command/src/views/aICrudTemplate/FormDiaLog.vue
@@ -69,7 +69,7 @@
 							:data="deptTree"
 							:props="treeProps"
 							check-strictly
-							@change="getUserList"
+							@change="belongDeptChange"
 							clearable
 						/>
 					</el-form-item>
@@ -77,7 +77,7 @@
 				<el-col :span="12">
 					<el-form-item label="负责人" prop="charger">
 						<el-select v-model="formData.charger" placeholder="请选择" :disabled="!formData.belongDept" clearable>
-							<el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id" />
+							<el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.name" />
 						</el-select>
 					</el-form-item>
 				</el-col>
@@ -155,14 +155,16 @@
 	charger: fieldRules(true, 0),
 }
 
-// 获取用户列表
-function getUserList(val) {
+// 部门重置
+function belongDeptChange() {
 	formData.value.charger = ''
-	if (val) {
-		getUserListApi(val).then(res => {
-			userList.value = res.data.data.records
-		})
-	}
+}
+
+// 获取用户列表
+function getUserList() {
+	getUserListApi(formData.value.belongDept).then(res => {
+		userList.value = res.data.data.records ?? []
+	})
 }
 
 // 关闭弹框
@@ -209,5 +211,7 @@
 	}
 }
 
+watch(() => formData.value.belongDept, getUserList)
+
 defineExpose({ open })
 </script>
diff --git a/applications/drone-command/src/views/basicManage/deviceStock/DeviceTrackDiaLog.vue b/applications/drone-command/src/views/basicManage/deviceStock/DeviceTrackDiaLog.vue
index 36182af..c3a880d 100644
--- a/applications/drone-command/src/views/basicManage/deviceStock/DeviceTrackDiaLog.vue
+++ b/applications/drone-command/src/views/basicManage/deviceStock/DeviceTrackDiaLog.vue
@@ -5,7 +5,7 @@
 				<el-col :span="12">
 					<el-form-item label="负责人" prop="charger">
 						<el-select v-model="formData.charger" placeholder="请选择" clearable>
-							<el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id" />
+							<el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.name" />
 						</el-select>
 					</el-form-item>
 				</el-col>
diff --git a/applications/drone-command/src/views/basicManage/deviceStock/FormDiaLog.vue b/applications/drone-command/src/views/basicManage/deviceStock/FormDiaLog.vue
index f862525..495db6d 100644
--- a/applications/drone-command/src/views/basicManage/deviceStock/FormDiaLog.vue
+++ b/applications/drone-command/src/views/basicManage/deviceStock/FormDiaLog.vue
@@ -116,7 +116,7 @@
 							:data="deptTree"
 							:props="treeProps"
 							check-strictly
-							@change="getUserList"
+							@change="belongDeptChange"
 							clearable
 						/>
 					</el-form-item>
@@ -124,7 +124,7 @@
 				<el-col :span="12">
 					<el-form-item label="负责人" prop="charger">
 						<el-select v-model="formData.charger" placeholder="请选择" :disabled="!formData.belongDept" clearable>
-							<el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id" />
+							<el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.name" />
 						</el-select>
 					</el-form-item>
 				</el-col>
@@ -216,15 +216,19 @@
 }
 
 const userList = ref([])
-function getUserList(val) {
+
+function belongDeptChange() {
 	formData.value.charger = ''
-	if (val) {
-		getUserListApi(val).then(res => {
-			userList.value = res.data.data.records
-		})
-	}
 }
 
+function getUserList() {
+	getUserListApi(formData.value.belongDept).then(res => {
+		userList.value = res.data.data.records
+	})
+}
+
+watch(() => formData.value.belongDept, getUserList)
+
 // 关闭弹框
 function handleCancel() {
 	visible.value = false
diff --git a/applications/drone-command/src/views/basicManage/deviceStock/deviceStock.vue b/applications/drone-command/src/views/basicManage/deviceStock/deviceStock.vue
index 90e54f5..d6cbde7 100644
--- a/applications/drone-command/src/views/basicManage/deviceStock/deviceStock.vue
+++ b/applications/drone-command/src/views/basicManage/deviceStock/deviceStock.vue
@@ -63,14 +63,25 @@
 		<el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange">
 			<el-table-column type="selection" width="55" />
 			<el-table-column type="index" width="60" label="序号" />
-			<el-table-column prop="deviceName" label="名称" />
+			<el-table-column prop="deviceName" label="设备名称" />
 			<el-table-column prop="deviceType" label="类型">
 				<template v-slot="{ row }">
 					{{ getDictLabel(row.deviceType, dictObj.deviceType) }}
 				</template>
 			</el-table-column>
-			<el-table-column prop="deviceModel" label="设备型号" />
+			<el-table-column prop="deviceModel" label="型号" />
 			<el-table-column prop="deviceSpecification" label="规格" />
+			<el-table-column prop="manufacturer" label="生产厂商" />
+			<el-table-column prop="createTime" label="入库时间" />
+			<el-table-column prop="source" label="来源" />
+			<el-table-column prop="purpose" label="用途" />
+			<el-table-column prop="belongDeptName" label="所属部门" />
+			<el-table-column prop="charger" label="负责人" />
+			<el-table-column prop="yxzt" label="运行状态">
+				<template v-slot="{ row }">
+					{{ DEVICE_STATUS[row.status] || '-' }}
+				</template>
+			</el-table-column>
 			<el-table-column label="操作">
 				<template v-slot="{ row }">
 					<el-link @click="handleView(row)" type="primary">查看</el-link>
@@ -102,6 +113,7 @@
 import { getDictionaryByCode } from '@/api/system/dictbiz'
 import { getDeptTree } from '@/api/system/dept'
 import { blobDownload, dateRangeFormat, getDictLabel } from '@ztzf/utils'
+import { DEVICE_STATUS } from '@ztzf/constants'
 import DeviceTrackDiaLog from '@/views/basicManage/deviceStock/DeviceTrackDiaLog.vue'
 
 const initSearchParams = () => ({
diff --git a/packages/constants/fwDevice.js b/packages/constants/fwDevice.js
new file mode 100644
index 0000000..56a09b6
--- /dev/null
+++ b/packages/constants/fwDevice.js
@@ -0,0 +1,9 @@
+
+// 设备状态
+export const DEVICE_STATUS = {
+	0: '在线',
+	1: '离线',
+	2: '故障',
+	3: '报废',
+}
+export const DEVICE_STATUS_LIST = Object.keys(DEVICE_STATUS).map(key => ({ value: key, label: DEVICE_STATUS[key] }))
diff --git a/packages/constants/index.js b/packages/constants/index.js
index 78b00a9..05fd3f4 100644
--- a/packages/constants/index.js
+++ b/packages/constants/index.js
@@ -5,3 +5,4 @@
 export * from './assetMetricEnums';
 export * from './publicEnums';
 export * from './workEnums';
+export * from './fwDevice';

--
Gitblit v1.9.3