<template>
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
<div style="display: flex; flex-wrap: wrap; justify-content: center; margin-bottom: 20px">
|
<div class=roomwrap v-for="(value, key) in bedMap" :key="key">
|
<RoomBedSelect :title="key" :bedList="value" v-model="curSel"/>
|
</div>
|
</div>
|
<el-button type="primary" @click="roomConfirm">确认</el-button>
|
<el-button type="primary" @click="test">TEST</el-button>
|
</div>
|
</template>
|
|
<script setup lang="ts">
|
import {RoomBedSelect} from "@/components/RoomBedSelect"
|
import { RoomApi, RoomVO } from '@/api/ecg/room'
|
import {useUserStore} from "@/store/modules/user";
|
import {CACHE_KEY, useCache} from "@/hooks/web/useCache";
|
import {ElMessage} from "element-plus";
|
import {isStringEmpty} from "@/utils/stringUtil"
|
|
const { push } = useRouter()
|
const { wsCache } = useCache()
|
|
defineOptions({ name: 'RoomLoginSelect' })
|
|
const route = useRoute();
|
|
const userStore = useUserStore()
|
|
const bedMap = ref<Map<String, RoomVO[]>>() // 列表的数据
|
|
const curSel = ref<RoomVO>({
|
id: 0,
|
roomId: 0,
|
roomName: "",
|
bedNo: "",
|
onstage: true
|
});
|
|
/** 查询列表 */
|
const getList = async () => {
|
const data = await RoomApi.getOnstageBedMap()
|
bedMap.value = data as Map<String, RoomVO[]>
|
}
|
|
const roomConfirm = () => {
|
console.info(curSel.value)
|
|
if (curSel.value.roomId === 0) {
|
ElMessage({
|
message: '请先选择工作的位置!',
|
type: 'info',
|
duration: 3000 // 自动关闭时间,默认为3000ms
|
});
|
return
|
}
|
|
userStore.setRoomInfoAction(curSel.value)
|
if (isStringEmpty(route.redirectedFrom?.fullPath))
|
push({ path: "/"})
|
else
|
push({ path: route.redirectedFrom?.fullPath})
|
}
|
|
const test = () => {
|
userStore.getRoom;
|
console.info(userStore.getRoom);
|
|
const userInfo = wsCache.get(CACHE_KEY.USER)
|
console.info(userInfo);
|
}
|
|
/** 初始化 **/
|
onMounted(() => {
|
getList()
|
})
|
|
</script>
|
|
<style scoped lang="scss">
|
.roomwrap {
|
margin-right: 20px;
|
}
|
</style>
|