logDetail.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <template>
  2. <el-dialog v-model="visible" :title="`${formConfig.data.deviceCode} - 上线/离线记录`" width="80%" @closed="$emit('closed')">
  3. <scTable :apiObj="formConfig.data.deviceCode && $API.passqrcode.online" min-height="108" max-height="600" framework="zeroLite" :formConfig="formConfig" :paramsColums="paramsColums" :columns="columns"></scTable>
  4. </el-dialog>
  5. </template>
  6. <script setup>
  7. import moment from "moment";
  8. import XEUtils from "xe-utils";
  9. import TOOL from "@/utils/tool";
  10. import { deviceRecordStateDic } from "@/utils/basicDic";
  11. import { mapFormItemDatePicker } from "@/components/scTable/helper";
  12. const visible = ref(false);
  13. const open = deviceCode => {
  14. visible.value = true;
  15. formConfig.data.deviceCode = deviceCode;
  16. }
  17. const daterangeConfig = reactive({
  18. span: 9,
  19. showTitle: false,
  20. resetValue: [moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"), moment().format("YYYY-MM-DD HH:mm:ss")],
  21. props: {
  22. type: "datetimerange",
  23. startPlaceholder: "开始时间",
  24. endPlaceholder: "结束时间",
  25. format: "YYYY-MM-DD HH:mm"
  26. }
  27. })
  28. const formConfig = reactive({
  29. data: {
  30. deviceCode: null,
  31. createTime: [moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"), moment().format("YYYY-MM-DD HH:mm:ss")]
  32. },
  33. items: [
  34. mapFormItemDatePicker("createTime", "", daterangeConfig)
  35. ]
  36. })
  37. const paramsColums = reactive([
  38. { type: "relation", column: "deviceCode", symbol: "eq" },
  39. { type: "relation", column: "createTime", symbol: "eqgt", field: "createTime[0]", formatValue: value => moment(value).format("YYYY-MM-DDTHH:mm:ss[Z]") },
  40. { type: "relation", column: "createTime", symbol: "eqlt", field: "createTime[1]", formatValue: value => moment(value).format("YYYY-MM-DDTHH:mm:ss[Z]") },
  41. { type: "orderby", column: "createTime", symbol: "desc" }
  42. ]);
  43. const columns = reactive([
  44. { field: "status", title: "上线/离线", minWidth: 100, align: "center", formatter: ({ cellValue }) => XEUtils.get(deviceRecordStateDic, cellValue, cellValue) },
  45. { field: "createTime", title: "触发时间", minWidth: 160, align: "center", formatter: ({ cellValue }) => TOOL.dateFormat(cellValue) }
  46. ])
  47. defineExpose({
  48. open
  49. })
  50. </script>