烟花爆竹批发企业仓库安全风险监测前端
zhouwx
2025-04-15 f2593d3cf80998a831d07cc94ac49e4f51b04429
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<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>