DeviceInfo.vue 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <template>
  2. <div
  3. class="l-flex--col c-info"
  4. :class="{ 'l-flex__fill': hasMap }"
  5. >
  6. <div class="l-flex--row has-bottom-padding u-bold">设备信息</div>
  7. <div class="l-flex--row c-info__block">
  8. <div class="l-flex--row l-flex__fill c-info__item">
  9. <div class="l-flex__none c-info__title">序列号</div>
  10. <div class="l-flex__fill c-info__value">{{ device.serialNumber }}</div>
  11. </div>
  12. <div class="l-flex--row l-flex__fill c-info__item">
  13. <div class="l-flex__none c-info__title">MAC</div>
  14. <div class="l-flex__fill c-info__value">{{ device.mac }}</div>
  15. </div>
  16. </div>
  17. <div class="l-flex--row c-info__block">
  18. <div class="l-flex--row l-flex__fill c-info__item">
  19. <div class="l-flex__none c-info__title">配置</div>
  20. <div class="l-flex__fill c-info__value">{{ device.productName }}</div>
  21. </div>
  22. <div class="l-flex--row l-flex__fill c-info__item">
  23. <div class="l-flex__none c-info__title">运行时间</div>
  24. <div class="l-flex__fill c-info__value">{{ device.openTime }} - {{ device.closeTime }}</div>
  25. </div>
  26. </div>
  27. <div class="l-flex--row c-info__block">
  28. <div class="l-flex--row l-flex__fill c-info__item">
  29. <div class="l-flex__none c-info__title">分辨率</div>
  30. <div class="l-flex__fill c-info__value">{{ device.resolutionRatio }}</div>
  31. </div>
  32. <div class="l-flex--row l-flex__fill c-info__item">
  33. <div class="l-flex__none c-info__title">内容保护</div>
  34. <div class="l-flex__fill c-info__value primary">
  35. <content-protection :device="device" />
  36. </div>
  37. </div>
  38. </div>
  39. <div class="l-flex--row c-info__block">
  40. <div class="l-flex--row l-flex__fill c-info__item">
  41. <div class="l-flex__none c-info__title">地址</div>
  42. <div class="l-flex__fill c-info__value primary">{{ device.address }}</div>
  43. </div>
  44. </div>
  45. <device-map
  46. v-if="hasMap"
  47. class="l-flex__auto"
  48. :device="device"
  49. />
  50. </div>
  51. </template>
  52. <script>
  53. import DeviceMap from './DeviceMap'
  54. import ContentProtection from './external/ContentProtection'
  55. export default {
  56. name: 'DeviceInfo',
  57. components: {
  58. DeviceMap,
  59. ContentProtection
  60. },
  61. props: {
  62. device: {
  63. type: Object,
  64. required: true
  65. }
  66. },
  67. computed: {
  68. hasMap () {
  69. const { longitude, latitude } = this.device
  70. return longitude && latitude
  71. }
  72. }
  73. }
  74. </script>