From 2d561150b91a9789d31678af14dd4840bbb56576 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期三, 29 三月 2023 16:37:27 +0800
Subject: [PATCH] 设备、场所、部门接口

---
 src/api/basic/room/index.ts                              |    7 +
 src/views/system/role/index.vue                          |   12 
 src/api/basic/equipement/index.ts                        |   15 ++
 src/assets/menu/companyLogo.png                          |    0 
 src/api/systemManage/department/index.ts                 |   10 
 src/views/basic/equipment/components/equipmentDialog.vue |   75 ++++++++++
 src/views/system/department/component/deptDialog.vue     |   69 +++++----
 src/views/basic/room/components/roomDialog.vue           |   66 +++++++++
 src/views/basic/equipment/index.vue                      |   30 ++++
 src/views/system/department/index.vue                    |   29 ++--
 src/views/basic/room/index.ts                            |   12 +
 src/views/basic/equipment/index.ts                       |   20 ++
 src/views/system/user/index.vue                          |   12 
 src/views/basic/room/index.vue                           |   35 ++++
 14 files changed, 323 insertions(+), 69 deletions(-)

diff --git a/src/api/basic/equipement/index.ts b/src/api/basic/equipement/index.ts
index b8a18de..8c4d524 100644
--- a/src/api/basic/equipement/index.ts
+++ b/src/api/basic/equipement/index.ts
@@ -10,6 +10,14 @@
 			});
 		},
 
+		// addEquipment: (params: object) => {
+		// 	return request({
+		// 		url: import.meta.env.VITE_API_URL + '/basic/insert/insertDevice',
+		// 		method: 'post',
+		// 		data: params
+		// 	});
+		// },
+
 		addEquipment: (params: object) => {
 			return request({
 				url: import.meta.env.VITE_API_URL + '/basic/insert/insertDevice',
@@ -40,5 +48,12 @@
 				method: 'get',
 			});
 		},
+
+		getAllType: () => {
+			return request({
+				url: import.meta.env.VITE_API_URL + '/basic/select/listDeviceType',
+				method: 'get',
+			});
+		},
 	};
 }
diff --git a/src/api/basic/room/index.ts b/src/api/basic/room/index.ts
index 0e6f055..034b54d 100644
--- a/src/api/basic/room/index.ts
+++ b/src/api/basic/room/index.ts
@@ -41,5 +41,12 @@
 			});
 		},
 
+		getAllType: () => {
+			return request({
+				url: import.meta.env.VITE_API_URL + '/basic/select/listSiteType',
+				method: 'get',
+			});
+		},
+
 	};
 }
diff --git a/src/api/systemManage/department/index.ts b/src/api/systemManage/department/index.ts
index fb22c65..2597f00 100644
--- a/src/api/systemManage/department/index.ts
+++ b/src/api/systemManage/department/index.ts
@@ -5,14 +5,14 @@
         // v2
         getDepartmentList: () => {
             return request({
-                url: import.meta.env.VITE_API_URL + `/department/list`,
-                method: 'post'
+                url: import.meta.env.VITE_API_URL + `/account/department/list`,
+                method: 'get'
             });
         },
         // v2
         addDepartment: (data: object) => {
             return request({
-                url: import.meta.env.VITE_API_URL + `/department/add`,
+                url: import.meta.env.VITE_API_URL + `/account/department/save`,
                 method: 'post',
                 data: data
             });
@@ -20,7 +20,7 @@
         // v2
         modDepartment: (data: object) => {
             return request({
-                url: import.meta.env.VITE_API_URL + `/department/mod`,
+                url: import.meta.env.VITE_API_URL + `/account/department/update`,
                 method: 'post',
                 data: data
             });
@@ -28,7 +28,7 @@
         // v1
         deleteDepartment: (value?: object) => {
             return request({
-                url: import.meta.env.VITE_API_URL + `/department/del`,
+                url: import.meta.env.VITE_API_URL + `/account/department/delete`,
                 method: 'post',
                 data: value
             });
diff --git a/src/assets/menu/companyLogo.png b/src/assets/menu/companyLogo.png
index 0f9f2d1..46b0568 100644
--- a/src/assets/menu/companyLogo.png
+++ b/src/assets/menu/companyLogo.png
Binary files differ
diff --git a/src/views/basic/equipment/components/equipmentDialog.vue b/src/views/basic/equipment/components/equipmentDialog.vue
index 632f0b9..369d347 100644
--- a/src/views/basic/equipment/components/equipmentDialog.vue
+++ b/src/views/basic/equipment/components/equipmentDialog.vue
@@ -14,6 +14,18 @@
                         </el-form-item>
                     </el-col>
                     <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+                      <el-form-item label="设备类型" prop="deviceTypeId">
+                        <el-select v-model="equipmentDialogState.equipmentForm.deviceTypeId" placeholder="设备类型" clearable class="input-length">
+                          <el-option v-for="item in equipmentTypeList" :key="item.id" :label="item.deviceType" :value="item.id"></el-option>
+                        </el-select>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+                      <el-form-item label="设备型号" prop="deviceDesc">
+                        <el-input v-model="equipmentDialogState.equipmentForm.deviceDesc" placeholder="设备型号" clearable class="input-length"></el-input>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                         <el-form-item label="设备功率" prop="devicePower">
                             <el-input v-model="equipmentDialogState.equipmentForm.devicePower" placeholder="设备功率" clearable class="input-length"></el-input>
                         </el-form-item>
@@ -33,9 +45,39 @@
                         </el-form-item>
                     </el-col>
                     <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+                      <el-form-item label="设备状态" prop="deviceStatus">
+                        <el-select v-model="equipmentDialogState.equipmentForm.deviceStatus" placeholder="设备状态" clearable class="input-length">
+                          <el-option :key="1" label="完好" :value="1"></el-option>
+                          <el-option :key="2" label="异常" :value="2"></el-option>
+                        </el-select>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                         <el-form-item label="安全防护">
                             <el-input type="textarea" :rows="3" v-model="equipmentDialogState.equipmentForm.safeProtect" placeholder="安全防护" clearable class="input-length"></el-input>
                         </el-form-item>
+                    </el-col>
+                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+                      <el-form-item label="购入时间" prop="buyTime">
+                        <el-date-picker
+                            v-model="equipmentDialogState.equipmentForm.buyTime"
+                            format="YYYY-MM-DD"
+                            value-format="YYYY-MM-DD 00:00:00"
+                            type="dateTime"
+                            placeholder="购入时间"
+                        />
+                      </el-form-item>
+                    </el-col>
+                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+                      <el-form-item label="校准时间" prop="adjustTime">
+                        <el-date-picker
+                            v-model="equipmentDialogState.equipmentForm.adjustTime"
+                            format="YYYY-MM-DD"
+                            value-format="YYYY-MM-DD 00:00:00"
+                            type="dateTime"
+                            placeholder="校准时间"
+                        />
+                      </el-form-item>
                     </el-col>
                 </el-row>
             </el-form>
@@ -50,7 +92,7 @@
 </template>
 
 <script setup lang="ts">
-import { reactive, ref } from "vue";
+import { defineProps, reactive, ref } from "vue";
 import {useMenuApi} from "/@/api/systemManage/menu";
 import {ElMessage} from "element-plus";
 import {equipmentApi} from "/@/api/basic/equipement";
@@ -66,13 +108,24 @@
         deviceName: '',
         devicePower: '',
         deviceUnit: null,
+        specialDevice: null,
         safeProtect: '',
+        deviceTypeId: null,
+        deviceDesc: '',
+        deviceStatus: null,
+        buyTime: '',
+        adjustTime: ''
     },
     equipmentFormRules: {
         deviceCode: [{ required: true, message: '请填写设备编号', trigger: 'blur' }],
         deviceName: [{ required: true, message: '请填写设备名称', trigger: 'blur' }],
         devicePower: [{ required: true, message: '请填写设备功率', trigger: 'blur' }],
-        deviceUnit: [{ required: true, message: '请选择计量单位', trigger: 'change' }]
+        deviceUnit: [{ required: true, message: '请选择计量单位', trigger: 'change' }],
+        deviceTypeId: [{ required: true, message: '请填写设备类型ID', trigger: 'blur' }],
+        deviceDesc: [{ required: true, message: '请填写设备型号', trigger: 'blur' }],
+        deviceStatus: [{ required: true, message: '请选择设备状态', trigger: 'blur' }],
+        buyTime: [{ required: true, message: '请选择购入时间', trigger: 'blur' }],
+        adjustTime: [{ required: true, message: '请选择校准时间', trigger: 'blur' }]
     },
     specialDeviceList: [],
     deviceUnitList: [
@@ -92,12 +145,17 @@
     if(title === '新增'){
         equipmentDialogState.title = '新增';
         equipmentDialogState.equipmentForm = {
-            id: null,
             deviceCode: '',
             deviceName: '',
             devicePower: '',
             deviceUnit: null,
+            specialDevice: null,
             safeProtect: '',
+            deviceTypeId: null,
+            deviceDesc: '',
+            deviceStatus: null,
+            buyTime: '',
+            adjustTime: ''
         };
     }else{
         equipmentDialogState.title = '编辑'
@@ -107,7 +165,13 @@
             deviceName: value.deviceName,
             devicePower: value.devicePower,
             deviceUnit: value.deviceUnit,
+            specialDevice: value.specialDevice,
             safeProtect: value.safeProtect,
+            deviceTypeId:value.deviceTypeId,
+            deviceDesc: value.deviceDesc,
+            deviceStatus: value.deviceStatus,
+            buyTime: value.buyTime,
+            adjustTime: value.adjustTime
         };
     }
 };
@@ -131,6 +195,7 @@
                     });
                 }
             }else{
+              console.log(equipmentDialogState.equipmentForm,'修改')
                 let res = await equipmentApi().modEquipment(equipmentDialogState.equipmentForm)
                 if(res.data.code === 100){
                     emit('refresh')
@@ -157,6 +222,10 @@
 
 const emit = defineEmits(['refresh'])
 
+defineProps({
+  equipmentTypeList: Array
+})
+
 defineExpose({
     showEquipmentDialog
 })
diff --git a/src/views/basic/equipment/index.ts b/src/views/basic/equipment/index.ts
index 27483e9..c708fa3 100644
--- a/src/views/basic/equipment/index.ts
+++ b/src/views/basic/equipment/index.ts
@@ -1,5 +1,6 @@
 declare interface EquipmentStateType {
 	equipmentData: Array<EquipmentType>
+	equipmentTypeList: Array<deviceType>
 	searchQuery: {
 		pageIndex: number,
 		pageSize: number,
@@ -19,24 +20,39 @@
 	deviceName: string,
 	devicePower: string,
 	deviceUnit: number | null,
+	specialDevice: number | null,
 	safeProtect: string,
+	deviceTypeId: number | null,
+	deviceDesc: string,
+	deviceStatus: number | null,
+	buyTime: string,
+	adjustTime: string
 }
 
 declare interface Type {
 	id: number,
 	name: string,
 }
-
+declare interface deviceType {
+	id: number,
+	deviceType: string,
+}
 declare interface EquipmentDialogType {
 	title: string,
 	equipmentDialogVisible: boolean,
 	equipmentForm: {
-		id: number | null,
+		id?: number | null,
 		deviceCode: string,
 		deviceName: string,
 		devicePower: string,
 		deviceUnit: number | null,
+		specialDevice: number | null,
 		safeProtect: string,
+		deviceTypeId: number | null,
+		deviceDesc: string,
+		deviceStatus: number | null,
+		buyTime: string,
+		adjustTime: string
 	},
 	equipmentFormRules: {
 
diff --git a/src/views/basic/equipment/index.vue b/src/views/basic/equipment/index.vue
index b71888d..f0c84a2 100644
--- a/src/views/basic/equipment/index.vue
+++ b/src/views/basic/equipment/index.vue
@@ -40,16 +40,33 @@
                     <el-table ref="multipleTableRef" :data="equipmentState.equipmentData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }">
                         <el-table-column prop="deviceCode" label="设备编号"/>
                         <el-table-column prop="deviceName" label="设备名称" />
+                        <el-table-column prop="deviceTypeId" label="设备类型" show-overflow-tooltip>
+                          <template #default="scope">
+                            <span>{{equipmentState.equipmentTypeList.find(item =>item.id === scope.row.deviceTypeId)?.deviceType}}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column prop="deviceDesc" label="设备型号" />
                         <el-table-column prop="devicePower" label="设备功率">
+                          <template #default="scope">
+                            <span>{{scope.row.devicePower}}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column prop="deviceStatus" label="设备状态">
                             <template #default="scope">
-                                <span>{{`${scope.row.devicePower}${equipmentState.deviceUnitList.find(item =>item.id === scope.row.deviceUnit)?.name || ''}`}}</span>
+                                <span>{{scope.row.deviceStatus == 1?'完好':'异常'}}</span>
                             </template>
+                        </el-table-column>
+                        <el-table-column prop="deviceUnit" label="计量单位" show-overflow-tooltip>
+                          <template #default="scope">
+                            <span>{{`${equipmentState.deviceUnitList.find(item =>item.id === scope.row.deviceUnit)?.name}`}}</span>
+                          </template>
                         </el-table-column>
                         <el-table-column prop="specialDevice" label="是否特殊装备" show-overflow-tooltip>
                             <template #default="scope">
                                 <span>{{`${equipmentState.specialDeviceList.find(item =>item.id === scope.row.specialDevice)?.name}`}}</span>
                             </template>
                         </el-table-column>
+                        <el-table-column prop="safeProtect" label="安全防护"/>
                         <el-table-column prop="createTime" label="创建时间" show-overflow-tooltip></el-table-column>
                         <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip></el-table-column>
                         <el-table-column prop="updateTime" label="最后修改时间" show-overflow-tooltip></el-table-column>
@@ -67,7 +84,7 @@
                 </div>
             </div>
         </div>
-        <equipment-dialog ref="equipmentDialogRef" @refresh="getEquipmentData"></equipment-dialog>
+        <equipment-dialog ref="equipmentDialogRef" @refresh="getEquipmentData" :equipmentTypeList="equipmentState.equipmentTypeList"></equipment-dialog>
     </div>
 </template>
 
@@ -83,6 +100,7 @@
 
 const equipmentState = reactive<EquipmentStateType>({
     equipmentData: [],
+    equipmentTypeList: [],
     searchQuery: {
         pageIndex: 1,
         pageSize: 10,
@@ -102,6 +120,13 @@
         {id:3, name: '件'}
     ]
 })
+
+const getAllType = async ()=>{
+  const res = await equipmentApi().getAllType();
+  if(res.data.code === 100){
+    equipmentState.equipmentTypeList = res.data.data
+  }
+}
 
 const getEquipmentData = async () => {
     let res = await equipmentApi().getEquipmentByList(equipmentState.searchQuery);
@@ -169,6 +194,7 @@
 
 onMounted(() => {
     getEquipmentData()
+    getAllType()
 })
 
 </script>
diff --git a/src/views/basic/room/components/roomDialog.vue b/src/views/basic/room/components/roomDialog.vue
index ee58e6c..bfa5291 100644
--- a/src/views/basic/room/components/roomDialog.vue
+++ b/src/views/basic/room/components/roomDialog.vue
@@ -4,7 +4,7 @@
             <el-form ref="roomFormRef" :rules="roomDialogState.roomFormRules" :model="roomDialogState.roomForm" size="default" label-width="120px">
                 <el-row :gutter="35">
                     <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
-                        <el-form-item label="场所名称" prop="siteName">
+                        <el-form-item label="实验室名称" prop="siteName">
                             <el-input v-model="roomDialogState.roomForm.siteName" placeholder="场所名称" clearable class="input-length"></el-input>
                         </el-form-item>
                     </el-col>
@@ -18,6 +18,43 @@
                             <el-input v-model="roomDialogState.roomForm.room" placeholder="实验室所在房间" clearable class="input-length"></el-input>
                         </el-form-item>
                     </el-col>
+                  <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+                    <el-form-item label="场所责任人" prop="siteLiabilityPersonId">
+                      <el-select v-model="roomDialogState.roomForm.siteLiabilityPersonId" placeholder="场所责任人" clearable class="input-length">
+                        <el-option v-for="item in memberList" :key="item.id" :label="item.personName" :value="item.id"></el-option>
+                      </el-select>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+                    <el-form-item label="场所安全员" prop="safeLiabilityPersonId">
+                      <el-select v-model="roomDialogState.roomForm.safeLiabilityPersonId" placeholder="场所安全员" clearable class="input-length">
+                        <el-option v-for="item in memberList" :key="item.id" :label="item.personName" :value="item.id"></el-option>
+                      </el-select>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+                    <el-form-item label="有无消防设施" prop="fireFacilities">
+                      <el-select v-model="roomDialogState.roomForm.fireFacilities" placeholder="有无消防设施" clearable class="input-length">
+                        <el-option :key="1" label="有" :value="1"></el-option>
+                        <el-option :key="2" label="无" :value="2"></el-option>
+                      </el-select>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+                    <el-form-item label="有无隔断" prop="partitionStatus">
+                      <el-select v-model="roomDialogState.roomForm.partitionStatus" placeholder="有无隔断" clearable class="input-length">
+                        <el-option :key="1" label="有" :value="1"></el-option>
+                        <el-option :key="2" label="无" :value="2"></el-option>
+                      </el-select>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+                    <el-form-item label="场所性质" prop="siteTypeId">
+                      <el-select v-model="roomDialogState.roomForm.siteTypeId" placeholder="场所性质" clearable class="input-length">
+                        <el-option v-for="item in typeList" :key="item.id" :label="item.siteType" :value="item.id"></el-option>
+                      </el-select>
+                    </el-form-item>
+                  </el-col>
                 </el-row>
             </el-form>
             <template #footer>
@@ -31,7 +68,7 @@
 </template>
 
 <script setup lang="ts">
-import { reactive, ref } from "vue";
+import { reactive, ref, defineProps} from "vue";
 import {ElMessage} from "element-plus";
 import {roomApi} from "/@/api/basic/room";
 
@@ -44,11 +81,21 @@
         siteName: '',
         floor: '',
         room: '',
+        siteLiabilityPersonId: null,
+        safeLiabilityPersonId: null,
+        fireFacilities: null,
+        partitionStatus: null,
+        siteTypeId: null
     },
     roomFormRules: {
         siteName: [{ required: true, message: '请填写实验室名称', trigger: 'blur' }],
         floor: [{ required: true, message: '请填写楼名称', trigger: 'blur' }],
         room: [{ required: true, message: '请填写房间', trigger: 'blur' }],
+        siteLiabilityPersonId: [{ required: true, message: '请选择场所责任人', trigger: 'blur' }],
+        safeLiabilityPersonId: [{ required: true, message: '请选择场所安全员', trigger: 'blur' }],
+        fireFacilities: [{ required: true, message: '请选择有无消防设施', trigger: 'blur' }],
+        partitionStatus: [{ required: true, message: '请选择有无隔断', trigger: 'blur' }],
+        siteTypeId: [{ required: true, message: '请选择场所性质', trigger: 'blur' }]
     },
     specialDeviceList: [],
     deviceUnitList: [
@@ -71,6 +118,11 @@
             siteName: '',
             floor: '',
             room: '',
+            siteLiabilityPersonId: null,
+            safeLiabilityPersonId: null,
+            fireFacilities: null,
+            partitionStatus: null,
+            siteTypeId: null
         };
     }else{
         roomDialogState.title = '编辑'
@@ -79,6 +131,11 @@
             siteName: value.siteName,
             floor: value.floor,
             room: value.room,
+            siteLiabilityPersonId: value.siteLiabilityPersonId,
+            safeLiabilityPersonId: value.safeLiabilityPersonId,
+            fireFacilities: value.fireFacilities,
+            partitionStatus: value.partitionStatus,
+            siteTypeId: value.siteTypeId
         };
     }
 };
@@ -128,6 +185,11 @@
 
 const emit = defineEmits(['refresh'])
 
+defineProps({
+  memberList: Array,
+  typeList: Array
+})
+
 defineExpose({
     showroomDialog
 })
diff --git a/src/views/basic/room/index.ts b/src/views/basic/room/index.ts
index 677de72..11634cf 100644
--- a/src/views/basic/room/index.ts
+++ b/src/views/basic/room/index.ts
@@ -1,5 +1,7 @@
 declare interface RoomStateType {
 	roomData: Array<RoomType>
+	memberList: Array<any>
+	typeList: Array<any>
 	searchQuery: {
 		pageIndex: number,
 		pageSize: number,
@@ -17,6 +19,11 @@
 	siteName: string,
 	floor: string,
 	room: string,
+	siteLiabilityPersonId: number | null,
+	safeLiabilityPersonId: number | null,
+	fireFacilities: number | null,
+	partitionStatus: number | null,
+	siteTypeId: number | null
 }
 
 declare interface Type {
@@ -32,6 +39,11 @@
 		siteName: string,
 		floor: string,
 		room: string,
+		siteLiabilityPersonId: number | null,
+		safeLiabilityPersonId: number | null,
+		fireFacilities: number | null,
+		partitionStatus: number | null,
+		siteTypeId: number | null
 	},
 	roomFormRules: {
 
diff --git a/src/views/basic/room/index.vue b/src/views/basic/room/index.vue
index 70e8a4c..dc3af1d 100644
--- a/src/views/basic/room/index.vue
+++ b/src/views/basic/room/index.vue
@@ -35,6 +35,19 @@
                         <el-table-column prop="siteName" label="场所名称"/>
                         <el-table-column prop="floor" label="实验室所在楼" />
                         <el-table-column prop="room" label="实验室所在房间"/>
+                        <el-table-column prop="siteLiabilityPerson" label="场所责任人"/>
+                        <el-table-column prop="safeLiabilityPerson" label="场所安全员"/>
+                        <el-table-column prop="fireFacilities" label="有无消防设施">
+                          <template #default="scope">
+                            <span>{{scope.row.fireFacilities == 1?'有':'无'}}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column prop="partitionStatus" label="有无隔断">
+                          <template #default="scope">
+                            <span>{{scope.row.partitionStatus == 1?'有':'无'}}</span>
+                          </template>
+                        </el-table-column>
+                        <el-table-column prop="siteType" label="场所性质"/>
                         <el-table-column prop="createTime" label="创建时间" show-overflow-tooltip></el-table-column>
                         <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip></el-table-column>
                         <el-table-column prop="updateTime" label="最后修改时间" show-overflow-tooltip></el-table-column>
@@ -52,15 +65,17 @@
                 </div>
             </div>
         </div>
-        <room-dialog ref="roomDialogRef" @refresh="getRoomData"></room-dialog>
+        <room-dialog ref="roomDialogRef" @refresh="getRoomData" :memberList="roomState.memberList" :typeList="roomState.typeList"></room-dialog>
     </div>
 </template>
 
 <script setup lang="ts">
 import {defineAsyncComponent, onMounted, reactive, ref} from "vue";
 import {roomApi} from "/@/api/basic/room";
+import {personApi} from "/@/api/basic/person";
 import {ElMessage, ElMessageBox} from "element-plus";
 import { Edit, View, Plus, Delete } from '@element-plus/icons-vue';
+import {equipmentApi} from "/@/api/basic/equipement";
 
 const RoomDialog = defineAsyncComponent(() => import('./components/roomDialog.vue'));
 
@@ -68,6 +83,8 @@
 
 const roomState = reactive<RoomStateType>({
     roomData: [],
+    memberList: [],
+    typeList: [],
     searchQuery: {
         pageIndex: 1,
         pageSize: 10,
@@ -86,6 +103,20 @@
         {id:3, name: '件'}
     ]
 })
+
+const getAllMember = async ()=>{
+  const res = await personApi().getAllPerson();
+  if(res.data.code === 100){
+    roomState.memberList = res.data.data
+  }
+}
+
+const getAllType = async ()=>{
+  const res = await roomApi().getAllType();
+  if(res.data.code === 100){
+    roomState.typeList = res.data.data
+  }
+}
 
 const getRoomData = async () => {
     let res = await roomApi().getRoomByList(roomState.searchQuery);
@@ -152,6 +183,8 @@
 
 onMounted(() => {
     getRoomData()
+    getAllMember()
+    getAllType()
 })
 
 </script>
diff --git a/src/views/system/department/component/deptDialog.vue b/src/views/system/department/component/deptDialog.vue
index f037f1e..1579bc6 100644
--- a/src/views/system/department/component/deptDialog.vue
+++ b/src/views/system/department/component/deptDialog.vue
@@ -4,20 +4,8 @@
             <el-form :model="departmentForm" size="default" label-width="90px">
                 <el-row :gutter="35">
                     <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
-                        <el-form-item label="部门等级">
-                            <el-select v-model="departmentForm.depLevel" placeholder="请输入部门等级" class="input-add" clearable>
-                                <el-option
-                                v-for="item in depLevelList"
-                                :key="item.id"
-                                :label="item.name"
-                                :value="item.id"
-                                ></el-option>
-                            </el-select>
-                        </el-form-item>
-                    </el-col>
-                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                         <el-form-item label="上级部门">
-                            <el-cascader :options="deptData" class="input-add" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable v-model="departmentForm.parentDepId"> </el-cascader>
+                          <el-input v-model="parentName" class="input-add" disabled clearable/>
                         </el-form-item>
                     </el-col>
                     <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
@@ -27,7 +15,7 @@
                     </el-col>
                     <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                         <el-form-item label="部门描述">
-                            <el-input v-model="departmentForm.depInfo" class="input-add" type="textarea" placeholder="请输入部门描述" maxlength="150"></el-input>
+                            <el-input v-model="departmentForm.info" class="input-add" type="textarea" placeholder="请输入部门描述" maxlength="150"></el-input>
                         </el-form-item>
                     </el-col>
                 </el-row>
@@ -54,14 +42,15 @@
     parentId: string;
     id: number;
 }
-interface DeptSate {
+interface DeptState {
     title: string;
+    parentName: string
     isShowDialog: boolean;
     departmentForm: {
         depName: string;
-        depInfo: string;
-        parentDepId: string;
-        depLevel:null | number
+        info: string;
+        parentId?: null|number
+        id?: null|number
     };
     deptData: Array<TableDataRow>;
     depLevelList: Array<Type>;
@@ -74,14 +63,15 @@
 export default defineComponent({
     name: 'systemAddDept',
     setup(prop, context) {
-        const state = reactive<DeptSate>({
+        const state = reactive<DeptState>({
             title: '',
+            parentName: '',
             isShowDialog: false,
             departmentForm: {
                 depName: '',
-                parentDepId: '',
-                depInfo: '',
-                depLevel:null,
+                parentId: null,
+                info: '',
+                id: null
             },
             deptData: [], // 部门数据
             depLevelList: [
@@ -92,21 +82,43 @@
             ] // 部门数据
         });
 
+        const findParentById=(tree:Array<any>,id:number|null,depName:string)=>{
+          const parent = tree.find(i=>i.id == id)
+          if(parent){
+            return parent[depName]
+          }
+          for(const item of tree){
+            if(item.children){
+              const result = findParentById(item.children,id,depName)
+              if(result){
+                return result
+              }
+            }
+          }
+          return null
+        }
+
         // 打开弹窗
         const openDialog = (type: string, value: any, departmentList: []) => {
             state.isShowDialog = true;
+            state.departmentForm = JSON.parse(JSON.stringify(value))
+            state.parentName = value.depName
             state.deptData = JSON.parse(JSON.stringify(departmentList));
             if (type === '新增') {
                 state.title = '新增部门';
                 state.departmentForm = {
                     depName: '',
-                    parentDepId: '',
-                    depLevel:null,
-                    depInfo: ''
+                    parentId: value.id,
+                    info: ''
                 };
             } else {
+                state.parentName = findParentById(departmentList,value.parentId,'depName')
                 state.title = '修改部门';
-                state.departmentForm = JSON.parse(JSON.stringify(value));
+                state.departmentForm = {
+                  depName: value.depName,
+                  id: value.id,
+                  info: value.info
+                }
             }
         };
         // 关闭弹窗
@@ -121,7 +133,7 @@
         const onSubmit = async () => {
             if (state.title === '新增部门') {
                 let res = await departmentApi().addDepartment(state.departmentForm);
-                if (res.data.code === '200') {
+                if (res.data.code === 100) {
                     ElMessage({
                         type: 'success',
                         message: '部门新增成功',
@@ -137,7 +149,7 @@
                 }
             } else {
                 let res = await departmentApi().modDepartment(state.departmentForm);
-                if (res.data.code === '200') {
+                if (res.data.code === 100) {
                     ElMessage({
                         type: 'success',
                         message: '部门修改成功',
@@ -160,6 +172,7 @@
             initTableData();
         });
         return {
+            findParentById,
             openDialog,
             closeDialog,
             onCancel,
diff --git a/src/views/system/department/index.vue b/src/views/system/department/index.vue
index a0d7c18..8a1d4d6 100644
--- a/src/views/system/department/index.vue
+++ b/src/views/system/department/index.vue
@@ -3,12 +3,12 @@
         <el-card shadow="hover">
             <div class="system-dept-search mb15">
                 <!--                <el-input size="default" placeholder="请输入部门名称" style="max-width: 180px"> </el-input>-->
-                <el-button size="default" type="primary" class="ml10">
-                    <el-icon>
-                        <ele-Search />
-                    </el-icon>
-                    查询
-                </el-button>
+<!--                <el-button size="default" type="primary" class="ml10">-->
+<!--                    <el-icon>-->
+<!--                        <ele-Search />-->
+<!--                    </el-icon>-->
+<!--                    查询-->
+<!--                </el-button>-->
                 <el-button size="default" type="success" class="ml10" @click="onOpenDeptDialog('新增', '')">
                     <el-icon>
                         <ele-FolderAdd />
@@ -16,12 +16,12 @@
                     新增部门
                 </el-button>
             </div>
-            <el-table :data="tableData.data" style="width: 100%" row-key="depId" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
+            <el-table :data="tableData.data" style="width: 100%" row-key="id" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
                 <el-table-column prop="depName" label="部门名称" show-overflow-tooltip> </el-table-column>
-                <el-table-column prop="depInfo" label="部门描述" show-overflow-tooltip></el-table-column>
+                <el-table-column prop="info" label="部门描述" show-overflow-tooltip></el-table-column>
                 <el-table-column label="操作" show-overflow-tooltip width="140">
                     <template #default="scope">
-                        <el-button size="small" text type="primary" @click="onOpenDeptDialog('新增', '')">新增</el-button>
+                        <el-button size="small" text type="primary" @click="onOpenDeptDialog('新增', scope.row)">新增</el-button>
                         <el-button size="small" text type="primary" @click="onOpenDeptDialog('修改', scope.row)">修改</el-button>
                         <el-button size="small" style="color: red" text type="primary" @click="onTabelRowDel(scope.row)">删除</el-button>
                     </template>
@@ -46,6 +46,7 @@
     parentId: number;
     info: string;
     depId: number;
+    hasChildren?: boolean
     children?: TableDataRow[];
 }
 interface TableDataState {
@@ -70,8 +71,8 @@
         });
         // 初始化表格数据
         const initTableData = async () => {
-            let res = await departmentApi().getDepartmentList();
-            if (res.data.code === '200') {
+            let res = await departmentApi().getDepartmentList()
+            if (res.data.code === 100) {
                 state.tableData.data = res.data.data;
                 state.tableData.total = state.tableData.data.length;
             } else {
@@ -87,14 +88,14 @@
         };
         // 删除当前行
         const onTabelRowDel = (row: TableDataRow) => {
-            ElMessageBox.confirm(`此操作将永久删除部门:${row.depId}, 是否继续?`, '提示', {
+            ElMessageBox.confirm(`此操作将永久删除部门:${row.depName}, 是否继续?`, '提示', {
                 confirmButtonText: '删除',
                 cancelButtonText: '取消',
                 type: 'warning'
             })
                 .then(async () => {
-                    let res = await departmentApi().deleteDepartment({ depId: row.depId });
-                    if (res.data.code === '200') {
+                    let res = await departmentApi().deleteDepartment({ id: row.id });
+                    if (res.data.code === 100) {
                         ElMessage({
                             type: 'success',
                             duration: 2000,
diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue
index 7d8aba2..59ba2eb 100644
--- a/src/views/system/role/index.vue
+++ b/src/views/system/role/index.vue
@@ -3,12 +3,12 @@
         <el-card shadow="hover">
             <div class="system-user-search mb15">
                 <!--                <el-input size="default" placeholder="请输入角色名称" style="max-width: 180px"> </el-input>-->
-                <el-button size="default" type="primary" class="ml10" @click="handleSearch">
-                    <el-icon>
-                        <ele-Search />
-                    </el-icon>
-                    查询
-                </el-button>
+<!--                <el-button size="default" type="primary" class="ml10" @click="handleSearch">-->
+<!--                    <el-icon>-->
+<!--                        <ele-Search />-->
+<!--                    </el-icon>-->
+<!--                    查询-->
+<!--                </el-button>-->
                 <el-button size="default" type="success" class="ml10" @click="onOpenDialogRef('新增', '')">
                     <el-icon>
                         <ele-FolderAdd />
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index b25d7a8..8bd5f91 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -3,12 +3,12 @@
         <el-card shadow="hover">
             <div class="system-user-search mb15">
 <!--                <el-input size="default" v-model.trim="userTableData.listQuery.roleId" placeholder="请输入用户名" style="max-width: 180px"> </el-input>-->
-                <el-button size="default" type="primary" class="ml10" @click="initUserTableData">
-                    <el-icon>
-                        <ele-Search />
-                    </el-icon>
-                    查询
-                </el-button>
+<!--                <el-button size="default" type="primary" class="ml10" @click="initUserTableData">-->
+<!--                    <el-icon>-->
+<!--                        <ele-Search />-->
+<!--                    </el-icon>-->
+<!--                    查询-->
+<!--                </el-button>-->
                 <el-button size="default" type="success" class="ml10" @click="onOpenUserDialog('新增', '')">
                     <el-icon>
                         <ele-FolderAdd />

--
Gitblit v1.9.2