马宇豪
2025-05-09 cbb23429b8beed72b58cbb57f9b3c56a0fb2b5d2
src/views/basic/room/index.vue
@@ -35,13 +35,26 @@
                        <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>
                        <el-table-column prop="updateByUserName" label="最后修改人" show-overflow-tooltip></el-table-column>
                        <el-table-column label="操作" width="150">
                            <template #default="scope">
                                <el-button size="small" text type="primary" :icon="Edit" @click="openRoomDialog('修改', scope.row)">修改</el-button>
                                <el-button size="small" text type="primary" :icon="Edit" @click="openRoomDialog('修改', scope.row)">编辑</el-button>
                                <el-button size="small" text type="danger" :icon="Delete" @click="onDelRoom(scope.row)">删除</el-button>
                            </template>
                        </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,
@@ -87,6 +104,20 @@
    ]
})
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);
    if(res.data.code === 100){
@@ -105,7 +136,7 @@
};
const onDelRoom = (val: RoomType) => {
    ElMessageBox.confirm(`此操作将永久删除该设备:“${val.siteName}”,是否继续?`, '提示', {
    ElMessageBox.confirm(`此操作将永久删除该场所:“${val.siteName}”,是否继续?`, '提示', {
        confirmButtonText: '确认',
        cancelButtonText: '取消',
        type: 'warning'
@@ -152,6 +183,8 @@
onMounted(() => {
    getRoomData()
    getAllMember()
    getAllType()
})
</script>