130 lines
3.9 KiB
Vue
130 lines
3.9 KiB
Vue
|
|
<template>
|
|||
|
|
<el-select v-model="roomHotelCode"
|
|||
|
|
value-key="code"
|
|||
|
|
filterable
|
|||
|
|
clearable
|
|||
|
|
remote
|
|||
|
|
style="width: 150px; margin-right:7px"
|
|||
|
|
size="small"
|
|||
|
|
@focus="hotelChange"
|
|||
|
|
@change="handleHotelForRooms"
|
|||
|
|
:remote-method="remoteHotel"
|
|||
|
|
placeholder="选择酒店">
|
|||
|
|
<template #prefix>
|
|||
|
|
<el-text size="small">{{ selectedHotelDisplay }}</el-text>
|
|||
|
|
</template>
|
|||
|
|
<el-option v-for="hotel in hotels"
|
|||
|
|
:key="hotel.code"
|
|||
|
|
:label="hotel.name"
|
|||
|
|
:value="hotel.code">
|
|||
|
|
<span style="float: left">{{ hotel.name }}</span>
|
|||
|
|
<span style="float: right; color: #8492a6; font-size: 13px"> Code:{{ hotel.code }}</span>
|
|||
|
|
</el-option>
|
|||
|
|
</el-select>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script setup>
|
|||
|
|
import { ref, inject, computed, watch, onMounted, onUnmounted, nextTick, shallowRef } from 'vue';
|
|||
|
|
import { ElMessage, ElButton, ElTag, ElCheckbox, ElMessageBox, ElLoading } from 'element-plus'
|
|||
|
|
import { Setting, Refresh, ArrowDownBold, ArrowUpBold } from '@element-plus/icons-vue'
|
|||
|
|
import dayjs from 'dayjs'
|
|||
|
|
import config from '../../../public/config.js'
|
|||
|
|
import { useRouter, useRoute } from 'vue-router'
|
|||
|
|
import $ from 'jquery'
|
|||
|
|
import qs from 'qs'
|
|||
|
|
import { createAxiosInstance } from '../../axios.js'
|
|||
|
|
|
|||
|
|
const $http = inject('$http')
|
|||
|
|
// 注入方法
|
|||
|
|
const checkLoginStatus = inject('checkLoginStatus');
|
|||
|
|
const isMobile = inject('isMobile');
|
|||
|
|
const fullScreen = inject('fullScreen');
|
|||
|
|
const customHttp = createAxiosInstance(1);
|
|||
|
|
const rcuHttp = createAxiosInstance(2);
|
|||
|
|
|
|||
|
|
const roomHotelCode = ref(null);
|
|||
|
|
const currentRoomHotelCode = ref('');
|
|||
|
|
const allHotels = ref([]); // 所有酒店信息
|
|||
|
|
const allRooms = ref([]); // 当前房间信息
|
|||
|
|
const hotels = ref([]); // 所有酒店信息
|
|||
|
|
const hotelRoomCounts = ref({});
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
const getPowerLog = async () => {
|
|||
|
|
const QueryDate = {
|
|||
|
|
HotelCode: '1003',
|
|||
|
|
HostNumber: '',
|
|||
|
|
Mac: '',
|
|||
|
|
Start_Time: pickerDate.value[0],
|
|||
|
|
End_Time: pickerDate.value[1],
|
|||
|
|
PageSize: 1,
|
|||
|
|
PageIndex: 100000,
|
|||
|
|
};
|
|||
|
|
//console.log(QueryDate);
|
|||
|
|
const rs = await $http.post('Power/GetPowerAnalysis', JSON.stringify(QueryDate));
|
|||
|
|
console.log(rs.data);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
const getAllHotels = async () => {
|
|||
|
|
try {
|
|||
|
|
const rs = await customHttp.post('LowerMachineLog/GetHotelList');
|
|||
|
|
if (rs.data.isok) {
|
|||
|
|
allHotels.value = rs.data.response;
|
|||
|
|
hotels.value = rs.data.response;
|
|||
|
|
|
|||
|
|
// 新增:获取所有酒店的房间数
|
|||
|
|
try {
|
|||
|
|
const roomCountRes = await customHttp.get('BlockIP/GetRoomCount');
|
|||
|
|
roomCountRes.data.response.forEach(item => {
|
|||
|
|
// 将房间数存储在hotelRoomCounts中,key为酒店code
|
|||
|
|
hotelRoomCounts.value[item.hotelID] = item.totalCount;
|
|||
|
|
});
|
|||
|
|
} catch (roomError) {
|
|||
|
|
console.error('获取酒店房间数失败:', roomError);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 设置酒店的默认房间数为"-1"(表示未知)
|
|||
|
|
allHotels.value.forEach(hotel => {
|
|||
|
|
hotel.count = hotelRoomCounts.value[hotel.id] || "-1";
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
} catch (error) {
|
|||
|
|
// ...错误处理
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// 搜索hotel
|
|||
|
|
const remoteHotel = (query) => {
|
|||
|
|
if (query != "" && (hotelCurrent.value == null || hotelCurrent.value == "")) {
|
|||
|
|
hotels.value = [];
|
|||
|
|
const nc = allHotels.value.filter(item => item.code.includes(query) || item.name.includes(query));
|
|||
|
|
if (nc.length > 0) {
|
|||
|
|
hotels.value = nc;
|
|||
|
|
} else {
|
|||
|
|
hotels.value = JSON.parse(JSON.stringify(allHotels.value));
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
hotels.value = JSON.parse(JSON.stringify(allHotels.value));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
onMounted(() => {
|
|||
|
|
localStorage.setItem('url', '/home')
|
|||
|
|
checkLoginStatus()
|
|||
|
|
// 同时获取所有房间和监控列表
|
|||
|
|
getAllHotels();
|
|||
|
|
})
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style scoped>
|
|||
|
|
.container {
|
|||
|
|
padding: 5px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
</style>
|