<template>
|
<div class="notice">
|
<el-dialog
|
v-model="dialogVisible"
|
title="历史记录"
|
width="50%"
|
:before-close="handleClose"
|
:close-on-press-escape="false"
|
:close-on-click-modal="false"
|
>
|
<el-table v-loading="loading" :data="state.tableList" :border="true">
|
<el-table-column label="序号" type="index" align="center" width="80" />
|
<el-table-column label="探测器" prop="deviceName" align="center" />
|
<el-table-column label="浓度值" prop="realValue" align="center" >
|
<template #default="scope">
|
<div>{{scope.row.realValue}}<span v-if="state.type == '温度'">℃</span><span v-else>%RH</span></div>
|
</template>
|
</el-table-column>
|
<el-table-column label="状态" prop="deviceWarning" align="center" >
|
<template #default="scope">
|
<span v-if="scope.row.deviceWarning == 0" style="color: #42b983">正常</span>
|
<span v-else style="color: #ed5565">报警</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="属性" align="center" >
|
<template #default="scope">
|
<span>{{state.type}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="时间" prop="createDate" align="center" width="120" />
|
|
</el-table>
|
<pagination
|
v-show="total > 0"
|
:total="total"
|
v-model:page="queryParams.pageIndex"
|
v-model:limit="queryParams.pageSize"
|
@pagination="getList"
|
/>
|
</el-dialog>
|
</div>
|
</template>
|
<script setup>
|
import {reactive, ref, toRefs} from "vue";
|
import {getHumidity, getTemperature} from "@/api/company/warehouse";
|
|
const dialogVisible = ref(false);
|
const emit = defineEmits(["getList"]);
|
const loading = ref(false)
|
const state = reactive({
|
type: '',
|
tableList: [],
|
total: 0,
|
queryParams: {
|
pageIndex: 1,
|
pageSize: 10,
|
filter: {
|
deviceId: null
|
}
|
},
|
|
})
|
const { queryParams, total } = toRefs(state);
|
const openDialog = async (type,value) => {
|
state.type = type
|
state.queryParams.filter.deviceId = value.deviceId
|
await getList()
|
dialogVisible.value = true;
|
}
|
const getList = async () => {
|
loading.value = true
|
if(state.type == '湿度'){
|
const res = await getHumidity(state.queryParams)
|
if(res.code == 200){
|
state.tableList = res.result.records
|
state.total = res.result.total
|
}else{
|
ElMessage.warning(res.message)
|
}
|
loading.value = false
|
}else {
|
const res = await getTemperature(state.queryParams)
|
if(res.code == 200){
|
state.tableList = res.result.records
|
state.total = res.result.total
|
}else{
|
ElMessage.warning(res.message)
|
}
|
loading.value = false
|
}
|
|
}
|
const handleClose = () => {
|
dialogVisible.value = false;
|
emit("getList")
|
}
|
defineExpose({
|
openDialog
|
});
|
|
</script>
|
|
<style scoped lang="scss">
|
|
</style>
|