DeviceStatusLogList.vue 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <template>
  2. <ContentWrap>
  3. <!-- <div v-loading="loading" style="height: 100%">-->
  4. <el-table :data="deviceStatuses" style="width: 100%">
  5. <el-table-column prop="deviceName" label="设备名称" />
  6. <el-table-column prop="deviceCode" label="设备编码" />
  7. <el-table-column prop="oldStatus" label="调整前状态" >
  8. <template #default="scope">
  9. <dict-tag :type="DICT_TYPE.PMS_DEVICE_STATUS" :value="scope.row.oldStatus" />
  10. </template>
  11. </el-table-column>
  12. <el-table-column prop="newStatus" label="调用后状态" >
  13. <template #default="scope">
  14. <dict-tag :type="DICT_TYPE.PMS_DEVICE_STATUS" :value="scope.row.newStatus" />
  15. </template>
  16. </el-table-column>
  17. <el-table-column prop="reason" label="调整原因" />
  18. <el-table-column prop="creatorName" label="调整人" />
  19. <el-table-column
  20. label="调整时间"
  21. align="center"
  22. prop="createTime"
  23. :formatter="dateFormatter"
  24. />
  25. </el-table>
  26. <!-- 分页 -->
  27. <Pagination
  28. :total="total"
  29. v-model:page="queryParams.pageNo"
  30. v-model:limit="queryParams.pageSize"
  31. @pagination="loadDeviceStatuses(props.deviceId)"
  32. />
  33. <!-- </div>-->
  34. </ContentWrap>
  35. </template>
  36. <script setup lang="ts">
  37. import { ref, watch, defineOptions, defineEmits } from 'vue'
  38. import { ElMessage } from 'element-plus'
  39. import * as IotDeviceStatusLogApi from '@/api/pms/iotdevicestatuslog'
  40. import {dateFormatter} from "@/utils/formatTime";
  41. import {DICT_TYPE} from "@/utils/dict";
  42. const drawerVisible = ref<boolean>(false)
  43. const emit = defineEmits(['update:modelValue', 'add', 'delete'])
  44. defineOptions({
  45. name: 'DeviceStatusLogList'
  46. })
  47. const queryParams = reactive({
  48. pageNo: 1,
  49. pageSize: 10,
  50. createTime: [],
  51. deviceId: '',
  52. name: '',
  53. code: ''
  54. })
  55. const loading = ref(false)
  56. const total = ref(0) // 列表的总页数
  57. const deviceStatuses = ref([])
  58. const props = defineProps({
  59. deviceId: Number
  60. })
  61. // 加载设备的状态调整记录
  62. const loadDeviceStatuses = async (deviceId) => {
  63. queryParams.deviceId = deviceId
  64. queryParams.pageNo = 1
  65. try {
  66. loading.value = true
  67. // API调用
  68. const data = await IotDeviceStatusLogApi.IotDeviceStatusLogApi.getIotDeviceStatusLogPage(queryParams)
  69. deviceStatuses.value = data.list
  70. total.value = data.total
  71. } catch (error) {
  72. ElMessage.error('数据加载失败')
  73. } finally {
  74. loading.value = false
  75. }
  76. }
  77. onMounted(()=>{
  78. loadDeviceStatuses(props.deviceId)
  79. })
  80. </script>
  81. <style lang="scss" scoped></style>