消毒机前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

959 lines
43 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. <template>
  2. <div class="progress_container">
  3. <div class="header_wrap">
  4. <div class="left_time">
  5. <p class="time">
  6. {{
  7. operatorStore.estimatedRemainingTimeS == 0
  8. ? '已结束'
  9. : operatorStore.disinfectStatus == 1
  10. ? `${time_To_hhmmss(operatorStore.estimatedRemainingTimeS)}`
  11. : operatorStore.estimatedRemainingTimeS < 0
  12. ? '评估中'
  13. : `${time_To_hhmmss(operatorStore.estimatedRemainingTimeS)}`
  14. }}
  15. </p>
  16. </div>
  17. <svg
  18. v-if="[2, 3].includes(operatorStore.disinfectStatus)"
  19. xmlns="http://www.w3.org/2000/svg"
  20. xmlns:xlink="http://www.w3.org/1999/xlink"
  21. fill="none"
  22. version="1.1"
  23. width="181"
  24. height="52"
  25. viewBox="0 0 181 52"
  26. >
  27. <g>
  28. <g>
  29. <g>
  30. <path
  31. d="M82.64,13.3438C81.84,15.7875,80.28,18.9925,79.12,21.0362L83.28,22.5987C84.52000000000001,20.6756,86,17.8306,87.28,15.0263L82.64,13.3438ZM62.72,15.4269C64.28,17.7506,65.84,20.8756,66.36,22.8794L70.72,20.8356C70.08,18.7925,68.4,15.8275,66.8,13.6244L62.72,15.4269ZM52,16.1481C54.480000000000004,17.4706,57.56,19.5537,59,21.0762L61.96,17.35C60.4,15.8675,57.24,13.9444,54.8,12.7825L52,16.1481ZM50.12,26.76C52.68,28.08,55.88,30.2,57.32,31.72L60.24,27.96C58.6,26.48,55.36,24.56,52.84,23.36L50.12,26.76ZM51.24,46.76L55.480000000000004,49.84C57.6,45.8,59.84,41.12,61.68,36.84L58.16,33.92C55.96,38.64,53.2,43.68,51.24,46.76ZM68.68,35.08L80.88,35.08L80.88,38.08L68.68,38.08L68.68,35.08ZM68.68,31.04L68.68,28.08L80.88,28.08L80.88,31.04L68.68,31.04ZM72.48,12.4225L72.48,23.64L64,23.64L64,49.9606L68.68,49.9606L68.68,42.12L80.88,42.12L80.88,44.76C80.88,45.28,80.68,45.48,80.03999999999999,45.52C79.44,45.52,77.32,45.52,75.48,45.4C76.12,46.64,76.76,48.64,76.92,49.92C79.96000000000001,49.92,82.08,49.88,83.6,49.12C85.12,48.4,85.56,47.12,85.56,44.84L85.56,23.64L77.32,23.64L77.32,12.4225L72.48,12.4225ZM121.2,33.76L121.08,35.92L114.16,35.92L115.16,35.36C115,34.88,114.64,34.32,114.16,33.76L121.2,33.76ZM100.72,30.32C100.6,32.08,100.44,34,100.24000000000001,35.92L94.28,35.92L94.28,39.44L99.88,39.44C99.6,41.56,99.36,43.52,99.08,45.12L119.96,45.12C119.8,45.6,119.64,45.88,119.48,46.08C119.12,46.52,118.76,46.6,118.08,46.6C117.36,46.64,115.8,46.6,114.08,46.44C114.6,47.36,115.08,48.84,115.12,49.8C117.2,49.8812,119.2,49.9219,120.44,49.72C121.72,49.6,122.8,49.28,123.68,48.2C124.12,47.64,124.52,46.68,124.84,45.12L129.44,45.12L129.44,41.68L125.36,41.68L125.56,39.44L131.72,39.44L131.72,35.92L125.84,35.92L126.04,32.16C126.08,31.6,126.12,30.32,126.12,30.32L100.72,30.32ZM110.08,34.24C110.56,34.72,111,35.32,111.4,35.92L104.96000000000001,35.92L105.16,33.76L111,33.76L110.08,34.24ZM120.84,39.44L120.6,41.68L113.68,41.68L114.96,41C114.76,40.52,114.4,39.96,113.96,39.44L120.84,39.44ZM109.75999999999999,39.88C110.28,40.4,110.8,41.04,111.16,41.68L104.32,41.68L104.6,39.44L110.6,39.44L109.75999999999999,39.88ZM110.52000000000001,12.4262L110.52000000000001,15.36L97.2,15.36L97.2,18.72L110.52000000000001,18.72L110.52000000000001,20.36L99.88,20.36L99.88,23.68L110.52000000000001,23.68L110.52000000000001,25.4L95.36,25.4L95.36,28.88L130.64,28.88L130.64,25.4L115.44,25.4L115.44,23.68L126.64,23.68L126.64,20.36L115.44,20.36L115.44,18.72L129.36,18.72L129.36,15.36L115.44,15.36L115.44,12.4262L110.52000000000001,12.4262ZM154.36,12.4231L154.36,19.4L140.51999999999998,19.4L140.51999999999998,39.6838L145.32,39.6838L145.32,37.48L154.36,37.48L154.36,50.0187L159.44,50.0187L159.44,37.48L168.51999999999998,37.48L168.51999999999998,39.4831L173.56,39.4831L173.56,19.4L159.44,19.4L159.44,12.4231L154.36,12.4231ZM145.32,32.76L145.32,24.12L154.36,24.12L154.36,32.76L145.32,32.76ZM168.51999999999998,32.76L159.44,32.76L159.44,24.12L168.51999999999998,24.12L168.51999999999998,32.76Z"
  32. fill="#17F179"
  33. fill-opacity="1"
  34. />
  35. </g>
  36. <g transform="matrix(0,1,-1,0,52,-22)">
  37. <path
  38. d="M61.3114,50.5847L56.491,45.7322C62.778400000000005,44.923500000000004,67.8084,39.8689,67.8084,33.8033C67.8084,27.9399,63.1976,22.88525,57.1198,21.87432L52.7186,17.62841L54.6048,17.62841C64.24549999999999,17.62841,72,24.9071,72,33.8033C72,39.8689,68.2276,45.3279,62.988,47.9563L62.988,52L61.3114,50.5847ZM56.7006,49.776C56.0719,49.776,55.2335,49.9781,54.3952,49.9781C44.75449,49.9781,37,42.6995,37,33.8033C37,27.7377,40.77246,22.27869,46.01198,19.650280000000002L46.01198,15L48.7365,17.62842L52.9281,21.67213C46.43114,22.27869,41.4012,27.5355,41.4012,33.8033C41.4012,39.8689,46.22156,44.923500000000004,52.509,45.7322L56.7006,49.776Z"
  39. fill="#17F179"
  40. fill-opacity="1"
  41. />
  42. </g>
  43. </g>
  44. </g>
  45. </svg>
  46. <svg
  47. v-if="operatorStore.disinfectStatus == 1"
  48. xmlns="http://www.w3.org/2000/svg"
  49. xmlns:xlink="http://www.w3.org/1999/xlink"
  50. fill="none"
  51. version="1.1"
  52. width="132"
  53. height="52"
  54. viewBox="0 0 132 52"
  55. >
  56. <g>
  57. <g>
  58. <g>
  59. <g>
  60. <path
  61. d="M26.04,27.36L26.04,34.68C26.04,38.44,24.84,43.48,16,46.44C17.12,47.28,18.4,48.84,19,49.8C28.92,46.04,30.52,39.96,30.52,34.72L30.52,27.36L26.04,27.36ZM28.96,43.8C31.2,45.76,34.32,48.48,35.76,50.2037L39.08,46.96C37.48,45.32,34.24,42.72,32.04,40.92L28.96,43.8ZM2.68,23.2C4.56,24.4,7,25.92,9.04,27.32L1.04,27.32L1.04,31.56L7,31.56L7,44.8C7,45.24,6.84,45.36,6.28,45.4C5.72,45.4,3.84,45.4,2.16,45.36C2.76,46.64,3.4,48.6,3.6,49.96C6.28,49.96,8.28,49.84,9.76,49.12C11.28,48.4,11.64,47.12,11.64,44.88L11.64,31.56L14.04,31.56C13.6,33.44,13.08,35.28,12.64,36.6L16.2,37.36C17.12,34.96,18.2,31.2,19.08,27.84L16.12,27.2L15.48,27.32L13.64,27.32L14.68,25.92C13.92,25.36,12.88,24.72,11.76,24C14,21.76,16.36,18.68,18.04,15.92L15.16,13.9187L14.32,14.16L2,14.16L2,18.32L11.32,18.32C10.4,19.64,9.36,20.96,8.36,21.96L5.2,20.12L2.68,23.2ZM19.52,21.08L19.52,40.4L23.96,40.4L23.96,25.36L32.6,25.36L32.6,40.24L37.28,40.24L37.28,21.08L30.16,21.08L31.12,18.2L38.84,18.2L38.84,14L18.24,14L18.24,18.2L26,18.2L25.52,21.08L19.52,21.08ZM57.08,42.0844C57.52,44.5687,57.84,47.8544,57.84,49.8175L62.56,49.1369C62.52,47.1731,62.04,44.0075,61.52,41.5637L57.08,42.0844ZM65.24,42.0044C66.12,44.4888,67.04,47.6944,67.28,49.6575L72.08,48.7356C71.76,46.7325,70.72,43.6069,69.72,41.2431L65.24,42.0044ZM73.4,41.9244C75.2,44.5287,77.32,48.055,78.16,50.2188L82.72,48.175C81.72,45.9712,79.48,42.565,77.64,40.1612L73.4,41.9244ZM50.24,40.4412C48.96,43.2463,46.92,46.4519,45.32,48.335L49.92,50.2188C51.56,47.9744,53.56,44.5687,54.84,41.6437L50.24,40.4412ZM65.64,12.3838L65.56,18L60.88,18L60.88,22.04L65.4,22.04C65.28,23.88,65.08,25.56,64.8,27.08L62.44,25.76L60.4,28.72L59.96,24.6L56,25.52L56,22.2L60.16,22.2L60.16,17.8L56,17.8L56,12.5444L51.6,12.5444L51.6,17.8L46.28,17.8L46.28,22.2L51.6,22.2L51.6,26.52L45.36,27.84L46.32,32.48L51.6,31.16L51.6,34.88C51.6,35.36,51.44,35.52,50.88,35.52C50.36,35.52,48.68,35.52,47.08,35.44C47.64,36.68,48.24,38.52,48.36,39.76C51.04,39.76,52.92,39.64,54.28,38.96C55.64,38.24,56,37.08,56,34.92L56,30.04L60.24,28.96L60.16,29.08L63.52,31.12C62.44,33.4,60.84,35.28,58.36,36.76C59.4,37.56,60.76,39.24,61.32,40.3212C64.16,38.56,66.08,36.36,67.36,33.64C68.88,34.68,70.24,35.64,71.16,36.48L73.56,32.64C72.4,31.72,70.68,30.6,68.8,29.44C69.36,27.24,69.68,24.76,69.84,22.04L73.56,22.04C73.36,32.84,73.4,39.6,78.52,39.6C81.52,39.6,82.76,38.16,83.2,33.24C82.12,32.92,80.52,32.2,79.64,31.44C79.52,34.28,79.28,35.48,78.72,35.48C77.48,35.48,77.64,29.12,78.08,18L70.04,18L70.16,12.3838L65.64,12.3838ZM105.36,12.4231L105.36,19.4L91.52,19.4L91.52,39.6838L96.32,39.6838L96.32,37.48L105.36,37.48L105.36,50.0187L110.44,50.0187L110.44,37.48L119.52,37.48L119.52,39.4831L124.56,39.4831L124.56,19.4L110.44,19.4L110.44,12.4231L105.36,12.4231ZM96.32,32.76L96.32,24.12L105.36,24.12L105.36,32.76L96.32,32.76ZM119.52,32.76L110.44,32.76L110.44,24.12L119.52,24.12L119.52,32.76Z"
  62. fill="#F74104"
  63. fill-opacity="1"
  64. />
  65. </g>
  66. </g>
  67. </g>
  68. </g>
  69. </svg>
  70. <svg
  71. v-if="operatorStore.disinfectStatus == 4"
  72. xmlns="http://www.w3.org/2000/svg"
  73. xmlns:xlink="http://www.w3.org/1999/xlink"
  74. fill="none"
  75. version="1.1"
  76. width="132"
  77. height="52"
  78. viewBox="0 0 132 52"
  79. >
  80. <g>
  81. <g>
  82. <g>
  83. <path
  84. d="M30.16,19.56C29.16,20.88,27.96,22.04,26.56,23.12C25.16,22.08,24,20.96,23.08,19.68L23.16,19.56L30.16,19.56ZM22.84,12.5056C21.2,15.5187,18.32,19,14.16,21.56C15.12,22.28,16.56,23.88,17.2,24.88C18.28,24.12,19.32,23.32,20.24,22.48C21.04,23.52,21.92,24.48,22.92,25.36C20.16,26.76,17,27.84,13.72,28.48C14.56,29.4,15.6,31.2,16.04,32.32C19.88,31.36,23.48,30,26.64,28.12C29.48,29.84,32.76,31.08,36.48,31.84C37.12,30.64,38.32,28.84,39.32,27.92C36.04,27.44,33.04,26.56,30.48,25.4C33.04,23.16,35.16,20.4,36.56,17.08L33.6,15.6394L32.84,15.84L26.08,15.84C26.6,15.0369,27.08,14.2331,27.56,13.43L22.84,12.5056ZM16.76,32.4L16.76,36.52L25.12,36.52L25.12,40.44L20.76,40.44L21.44,37.88L17.12,37.36C16.6,39.72,15.76,42.6,15.04,44.56L16.96,44.56L25.12,44.6006L25.12,50.0169L29.72,50.0169L29.72,44.6L37.96,44.6L37.96,40.44L29.72,40.44L29.72,36.52L37,36.52L37,32.4L29.72,32.4L29.72,30.12L25.12,30.12L25.12,32.4L16.76,32.4ZM2.6,14.04L2.6,49.8962L6.8,49.8962L6.8,18.32L10.12,18.32C9.36,20.96,8.4,24.2,7.48,26.6C10.12,29.44,10.8,32.04,10.8,33.96C10.84,35.16,10.6,36,10.04,36.36C9.72,36.6,9.28,36.72,8.8,36.72C8.28,36.72,7.64,36.72,6.84,36.64C7.52,37.8,7.88,39.6,7.92,40.76C8.92,40.8006,9.92,40.8006,10.72,40.68C11.68,40.52,12.44,40.28,13.12,39.8C14.44,38.84,15.04,37.04,15.04,34.48C15.04,32.08,14.48,29.28,11.68,26.08C12.96,23.04,14.44,19.04,15.6,15.64L12.44,13.8387L11.76,14.04L2.6,14.04ZM54.04,26.28L54.04,29.72L51.88,29.72L51.88,26.28L54.04,26.28ZM57.2,26.28L59.48,26.28L59.48,29.72L57.2,29.72L57.2,26.28ZM51.36,22.76C51.88,21.8,52.32,20.84,52.76,19.8L56.72,19.8C56.4,20.84,56,21.88,55.6,22.76L51.36,22.76ZM50.72,12.425C49.6,17.2,47.52,21.88,44.76,24.84C45.6,25.36,47.08,26.6,47.92,27.4L47.92,33.36C47.92,37.84,47.68,43.8,44.96,47.9625C45.92,48.405,47.68,49.4906,48.4,50.1744C50.12,47.6006,51,44.16,51.44,40.72L54.04,40.72L54.04,47.52L57.2,47.52L57.2,46.12C57.64,47.2,58,48.6,58.08,49.52C59.88,49.52,61.12,49.44,62.16,48.72C63.16,48.04,63.4,46.84,63.4,45.12L63.4,36.8C64.36,37.24,66,38.08,66.76,38.6C67.36,37.72,67.88,36.68,68.4,35.48L72.16,35.48L72.16,39.12L64.56,39.12L64.56,43.24L72.16,43.24L72.16,50.0175L76.72,50.0175L76.72,43.24L82.68,43.24L82.68,39.12L76.72,39.12L76.72,35.48L81.84,35.48L81.84,31.44L76.72,31.44L76.72,28.28L72.16,28.28L72.16,31.44L69.76,31.44C69.96,30.6,70.16,29.76,70.32,28.92L66.8,28.2C70.8,25.96,72.28,22.6,72.96,18.44L77.4,18.44C77.24,21.76,77.04,23.12,76.68,23.56C76.4,23.92,76.08,23.96,75.6,23.96C75.08,23.96,74,23.92,72.72,23.8C73.32,24.84,73.72,26.48,73.8,27.68C75.44,27.72,76.96,27.72,77.88,27.56C78.88,27.44,79.64,27.08,80.32,26.28C81.2,25.2,81.52,22.44,81.72,16.04C81.76,15.52,81.8,14.48,81.8,14.48L64.16,14.48L64.16,18.44L68.64,18.44C68.08,21.4,66.88,23.8,63.4,25.36L63.4,22.76L59.76,22.76C60.6,21.12,61.44,19.32,62,17.76L59.16,15.9994L58.52,16.16L54.12,16.16C54.44,15.2369,54.72,14.2725,54.96,13.3488L50.72,12.425ZM54.04,33.16L54.04,37.2L51.76,37.2C51.84,35.88,51.88,34.56,51.88,33.4L51.88,33.16L54.04,33.16ZM57.2,33.16L59.48,33.16L59.48,37.2L57.2,37.2L57.2,33.16ZM57.2,40.72L59.48,40.72L59.48,45.04C59.48,45.44,59.4,45.56,59.04,45.56L57.2,45.52L57.2,40.72ZM63.4,36.6L63.4,25.8C64.28,26.6006,65.16,27.8819,65.6,28.8025L66.4,28.4025C65.84,31.44,64.8,34.48,63.4,36.6ZM105.36,12.4231L105.36,19.4L91.52,19.4L91.52,39.6838L96.32,39.6838L96.32,37.48L105.36,37.48L105.36,50.0187L110.44,50.0187L110.44,37.48L119.52,37.48L119.52,39.4831L124.56,39.4831L124.56,19.4L110.44,19.4L110.44,12.4231L105.36,12.4231ZM96.32,32.76L96.32,24.12L105.36,24.12L105.36,32.76L96.32,32.76ZM119.52,32.76L110.44,32.76L110.44,24.12L119.52,24.12L119.52,32.76Z"
  85. fill="#2485FF"
  86. fill-opacity="1"
  87. />
  88. </g>
  89. </g>
  90. </g>
  91. </svg>
  92. <div
  93. class="left_log_wrap"
  94. v-if="[1, 2, 3, 4].includes(operatorStore.disinfectStatus)"
  95. >
  96. <p class="text">当前剩余</p>
  97. <p class="val">
  98. {{
  99. (deviceStore.targetlog - (deviceStore.nowlog || 0)).toFixed(2) < 0
  100. ? 0
  101. : Math.abs(
  102. (deviceStore.targetlog - (deviceStore.nowlog || 0)).toFixed(
  103. 2,
  104. ),
  105. )
  106. }}log
  107. </p>
  108. </div>
  109. <div
  110. class="btn"
  111. v-if="[1, 2, 3, 4].includes(operatorStore.disinfectStatus)"
  112. @click="stopDisinfect"
  113. >
  114. 结束消毒
  115. </div>
  116. <div
  117. class="btn"
  118. v-if="
  119. operatorStore.disinfectStatus == 0 ||
  120. operatorStore.disinfectStatus == 5
  121. "
  122. @click="showDetail"
  123. >
  124. 返回
  125. </div>
  126. </div>
  127. <div class="echarts_wrap">
  128. <div class="single_wrap">
  129. <p class="title">设备</p>
  130. <div
  131. class="echarts_box"
  132. id="bin"
  133. v-if="operatorStore.disinfectStatus != 0 || binLocal"
  134. ></div>
  135. </div>
  136. <div class="single_wrap">
  137. <p class="title">环境1</p>
  138. <div
  139. class="echarts_box"
  140. id="envir1"
  141. v-if="operatorStore.disinfectStatus != 0 || envir1Local"
  142. ></div>
  143. </div>
  144. <div class="single_wrap">
  145. <p class="title">环境2</p>
  146. <div
  147. class="echarts_box"
  148. id="envir2"
  149. v-if="operatorStore.disinfectStatus != 0 || envir2Local"
  150. ></div>
  151. </div>
  152. </div>
  153. <div class="detail_wrap">
  154. <div class="tip_info">警报信息</div>
  155. <div class="speed_wrap">
  156. <p class="speed">{{ settingStore.sprinklerPumpGPM }}</p>
  157. </div>
  158. <svg
  159. @click="showDetail"
  160. xmlns="http://www.w3.org/2000/svg"
  161. xmlns:xlink="http://www.w3.org/1999/xlink"
  162. fill="none"
  163. version="1.1"
  164. width="222"
  165. height="50"
  166. viewBox="0 0 222 50"
  167. >
  168. <g>
  169. <g>
  170. <rect
  171. x="0"
  172. y="0"
  173. width="222"
  174. height="50"
  175. rx="25"
  176. fill="#06518B"
  177. fill-opacity="1"
  178. />
  179. </g>
  180. <g>
  181. <path
  182. d="M59.16,27.84L66.68,27.84L66.68,29.24L59.16,29.24L59.16,27.84ZM59.16,25.22L66.68,25.22L66.68,26.58L59.16,26.58L59.16,25.22ZM57.28,23.939999999999998L57.28,30.52L68.64,30.52L68.64,23.939999999999998L57.28,23.939999999999998ZM54.36,31.62L54.36,33.3L71.7,33.3L71.7,31.62L54.36,31.62ZM62,15.3325L62,17.740000000000002L54.1,17.740000000000002L54.1,19.4L60.08,19.4C58.42,21.14,55.96,22.68,53.62,23.46C54.02,23.84,54.56,24.52,54.84,24.98C57.5,23.92,60.2,21.96,62,19.68L62,23.32L63.88,23.32L63.88,19.68C65.72,21.9,68.44,23.82,71.12,24.82C71.4,24.34,71.96000000000001,23.64,72.36,23.28C69.94,22.52,67.44,21.08,65.78,19.4L71.92,19.4L71.92,17.740000000000002L63.88,17.740000000000002L63.88,15.3325L62,15.3325ZM81.36,28.06L89.44,28.06L89.44,29.24L81.36,29.24L81.36,28.06ZM81.36,26.82L81.36,25.68L89.44,25.68L89.44,26.82L81.36,26.82ZM81.36,30.48L89.44,30.48L89.44,31.72L81.36,31.72L81.36,30.48ZM90.84,15.455C87.56,16.05844,81.62,16.34,76.72,16.36C76.88,16.740000000000002,77.06,17.380000000000003,77.08,17.8C78.74,17.8,80.52,17.759999999999998,82.32,17.7L81.98,18.86L76.96000000000001,18.86L76.96000000000001,20.32L81.44,20.32C81.28,20.72,81.1,21.119999999999997,80.92,21.52L75.53999999999999,21.52L75.53999999999999,23.060000000000002L80.08,23.060000000000002C78.84,25.08,77.18,26.86,74.98,28.08C75.36,28.46,75.9,29.14,76.16,29.58C77.44,28.82,78.56,27.9,79.53999999999999,26.86L79.53999999999999,33.965599999999995L81.36,33.965599999999995L81.36,33.18L89.44,33.18L89.44,33.965599999999995L91.32,33.965599999999995L91.32,24.22L81.56,24.22C81.8,23.84,82.02,23.46,82.24,23.060000000000002L93.25999999999999,23.060000000000002L93.25999999999999,21.52L83,21.52L83.5,20.32L92.14,20.32L92.14,18.86L84.02,18.86L84.4,17.6C87.22,17.439999999999998,89.92,17.2,92,16.82L90.84,15.455ZM112.86,15.83219C112.42,17.03406,111.56,18.63656,110.9,19.658099999999997L112.53999999999999,20.3191C113.2,19.3375,114.02000000000001,17.895310000000002,114.7,16.53312L112.86,15.83219ZM102.75999999999999,16.67344C103.58,17.83531,104.4,19.4178,104.68,20.4394L106.4,19.6181C106.06,18.596249999999998,105.18,17.07406,104.36,15.972190000000001L102.75999999999999,16.67344ZM97.42,16.833750000000002C98.66,17.49469,100.18,18.536250000000003,100.88,19.2975L102.06,17.83531C101.3,17.09406,99.75999999999999,16.1325,98.52000000000001,15.531559999999999L97.42,16.833750000000002ZM96.47999999999999,22.18C97.74000000000001,22.82,99.3,23.880000000000003,100.03999999999999,24.6L101.18,23.119999999999997C100.4,22.4,98.8,21.439999999999998,97.56,20.84L96.47999999999999,22.18ZM97.08,32.519999999999996L98.72,33.739999999999995C99.78,31.8,100.97999999999999,29.36,101.9,27.22L100.5,26.08C99.44,28.38,98.06,30.98,97.08,32.519999999999996ZM105.2,26.22L112.02000000000001,26.22L112.02000000000001,28.1L105.2,28.1L105.2,26.22ZM105.2,24.6L105.2,22.759999999999998L112.02000000000001,22.759999999999998L112.02000000000001,24.6L105.2,24.6ZM107.72,15.311250000000001L107.72,21L103.34,21L103.34,33.8809L105.2,33.8809L105.2,29.72L112.02000000000001,29.72L112.02000000000001,31.68C112.02000000000001,31.96,111.92,32.04,111.62,32.06C111.3,32.08,110.24000000000001,32.08,109.2,32.019999999999996C109.44,32.519999999999996,109.72,33.32,109.78,33.82C111.3,33.82,112.34,33.8,113,33.5C113.68,33.2,113.86,32.68,113.86,31.7L113.86,21L109.64,21L109.64,15.311250000000001L107.72,15.311250000000001ZM131.66,25.68L131.57999999999998,27.14L127.72,27.14L128.2,26.86C128.06,26.52,127.76,26.08,127.42,25.68L131.66,25.68ZM121.28,24.3L121.02,27.14L117.94,27.14L117.94,28.58L120.84,28.58C120.72,29.66,120.56,30.68,120.42,31.5L131.04000000000002,31.5C130.94,31.9,130.82,32.14,130.7,32.28C130.51999999999998,32.480000000000004,130.34,32.519999999999996,129.98000000000002,32.519999999999996C129.6,32.54,128.72,32.519999999999996,127.76,32.42C127.98,32.8,128.16,33.4,128.18,33.78C129.24,33.8612,130.26,33.8612,130.84,33.8003C131.45999999999998,33.760000000000005,131.95999999999998,33.6,132.34,33.14C132.6,32.84,132.8,32.36,132.95999999999998,31.5L135.18,31.5L135.18,30.1L133.18,30.1L133.34,28.58L136.45999999999998,28.58L136.45999999999998,27.14L133.45999999999998,2
  183. fill="#FFFFFF"
  184. fill-opacity="1"
  185. />
  186. </g>
  187. <g>
  188. <ellipse
  189. cx="25"
  190. cy="25"
  191. rx="19"
  192. ry="19"
  193. fill="#FFFFFF"
  194. fill-opacity="1"
  195. />
  196. </g>
  197. <g>
  198. <path
  199. d="M19.02871,32.7154L26.9271,32.7154C27.2819,32.7154,27.5694,33.003,27.5694,33.3577C27.5694,33.7124,27.2819,34,26.9271,34L19.02878,34C17.35495,34.0013,15.99791543,32.643699999999995,16.00000275899,30.969900000000003L16.00000275899,19.03051C15.99771433,17.35657,17.35476,15.99871462,19.02871,16L30.9681,16C32.6422,15.999239749,33.9994,17.35649,33.998599999999996,19.03051L33.998599999999996,19.03261L33.972,26.9309C33.9678,27.2836,33.6803,27.5672,33.3275,27.5666C32.9747,27.566000000000003,32.688199999999995,27.281599999999997,32.685,26.928800000000003L32.685,26.9267L32.712199999999996,19.02978C32.712,18.56363,32.5319,18.1255,32.2024,17.79601C31.875799999999998,17.46756,31.4313,17.28341,30.9681,17.28457L19.02871,17.28457C18.06486,17.28485,17.28386,18.06666,17.28458,19.03051L17.28458,30.969900000000003C17.2839,31.9336,18.06494,32.7153,19.02871,32.7154ZM30.7872,21.14739C30.787100000000002,21.50206,30.4996,21.79142,30.1449,21.79142L19.85856,21.78772C19.50381,21.78772,19.21634,21.497709999999998,19.21634,21.142960000000002C19.21634,20.788,19.50375,20.50011,19.858629999999998,20.49959L30.145,20.50293C30.4997,20.503,30.787300000000002,20.79272,30.7872,21.14739ZM31.3598,30.4513L33.812200000000004,32.9037C34.0627,33.1546,34.0626,33.561,33.8119,33.8117C33.5612,34.0624,33.1548,34.0626,32.9039,33.8121L30.4514,31.3596C28.1824,32.973600000000005,25.00281,31.7287,24.432969999999997,29.0031C23.86314,26.2775,26.2776,23.86302,29.0032,24.432850000000002C31.7289,25.002679999999998,32.9738,28.1822,31.3598,30.4513ZM24.35822,25.002850000000002C24.35822,25.35758,24.07066,25.645139999999998,23.71593,25.645139999999998L19.85856,25.643909999999998C19.50417,25.643909999999998,19.21688,25.35662,19.21688,25.00224C19.21688,24.64785,19.50417,24.36057,19.85856,24.36057L23.71593,24.36057C24.07066,24.36057,24.35822,24.648130000000002,24.35822,25.002850000000002ZM25.73168,27.5503C25.29392,29.1839,26.5248,30.7881,28.2161,30.7882C28.898699999999998,30.79,29.5536,30.518700000000003,30.0349,30.0348C31.230800000000002,28.839,30.966900000000003,26.8342,29.502299999999998,25.98853C28.037599999999998,25.142879999999998,26.1694,25.91666,25.73168,27.5503ZM19.21681,28.8564C19.21681,28.5018,19.50429,28.2143,19.85892,28.2143L22.43048,28.2155C22.78752,28.2117,23.07899,28.5001,23.07899,28.8572C23.07899,29.2143,22.78752,29.5026,22.43048,29.4989L19.85892,29.4985C19.50429,29.4985,19.21681,29.211,19.21681,28.8564Z"
  200. fill-rule="evenodd"
  201. fill="#06518B"
  202. fill-opacity="1"
  203. />
  204. </g>
  205. </g>
  206. </svg>
  207. </div>
  208. <DisinfectModal
  209. v-if="disinfectWarnVisible"
  210. :hideDisinfectModal="hideDisinfectModal"
  211. />
  212. <van-overlay :show="operatorStore.showStopReady" z-index="3">
  213. <div class="wrapper" @click.stop>
  214. <div class="block">
  215. <van-loading />
  216. <p class="shutdown_text">结束消毒中</p>
  217. </div>
  218. </div>
  219. </van-overlay>
  220. </div>
  221. </template>
  222. <script setup>
  223. import {
  224. useOperatorStore,
  225. useWebSocketStore,
  226. useEchartsStore,
  227. useSettingStore,
  228. useDeviceStore,
  229. } from '@/store'
  230. import { time_To_hhmmss } from '@/utils'
  231. import {
  232. stopDisinfectionJSON,
  233. getStateJSON,
  234. continueDisinfectionJSON,
  235. pauseDisinfectionJSON,
  236. } from '@/mock/command'
  237. import DisinfectModal from 'cpns/dialogs/DisinfectModal'
  238. import { onMounted, onUnmounted, ref, computed, watch } from 'vue'
  239. import * as echarts from 'echarts'
  240. import { storeToRefs } from 'pinia'
  241. const echartsStore = useEchartsStore()
  242. const settingStore = useSettingStore()
  243. const deviceStore = useDeviceStore()
  244. const binLocal = computed(() => {
  245. return echartsStore?.binCharts || localStorage.getItem('bin')
  246. })
  247. const envir1Local = computed(() => {
  248. return echartsStore?.envir1Charts || localStorage.getItem('envir1')
  249. })
  250. const envir2Local = computed(() => {
  251. return echartsStore?.envir2Charts || localStorage.getItem('envir2')
  252. })
  253. const binOption = ref({
  254. tooltip: {
  255. trigger: 'axis',
  256. },
  257. legend: {
  258. data: ['温度', '湿度', 'H2O2浓度', 'H2O2饱和度'],
  259. },
  260. grid: {
  261. left: '3%',
  262. right: '4%',
  263. bottom: '3%',
  264. containLabel: true,
  265. },
  266. xAxis: {
  267. type: 'category',
  268. boundaryGap: false,
  269. data: echartsStore.abscissaFormater,
  270. },
  271. yAxis: {
  272. type: 'value',
  273. },
  274. series: [
  275. {
  276. name: '温度',
  277. type: 'line',
  278. stack: 'binTemp',
  279. data: echartsStore.binTemp,
  280. },
  281. {
  282. name: '湿度',
  283. type: 'line',
  284. stack: 'binHumidity',
  285. data: echartsStore.binHumidity,
  286. },
  287. {
  288. name: 'H2O2浓度',
  289. type: 'line',
  290. stack: 'binHP',
  291. data: echartsStore.binHP,
  292. },
  293. {
  294. name: 'H2O2饱和度',
  295. type: 'line',
  296. stack: 'binSaturation',
  297. data: echartsStore.binSaturation,
  298. },
  299. ],
  300. })
  301. const envir1Option = ref({
  302. tooltip: {
  303. trigger: 'axis',
  304. },
  305. legend: {
  306. data: ['温度', '湿度', 'H2O2浓度', 'H2O2饱和度'],
  307. },
  308. grid: {
  309. left: '3%',
  310. right: '4%',
  311. bottom: '3%',
  312. containLabel: true,
  313. },
  314. xAxis: {
  315. type: 'category',
  316. boundaryGap: false,
  317. data: echartsStore.abscissaFormater,
  318. },
  319. yAxis: {
  320. type: 'value',
  321. },
  322. series: [
  323. {
  324. name: '温度',
  325. type: 'line',
  326. stack: '1',
  327. data: [],
  328. },
  329. {
  330. name: '湿度',
  331. type: 'line',
  332. stack: '2',
  333. data: [],
  334. },
  335. {
  336. name: 'H2O2浓度',
  337. type: 'line',
  338. stack: '3',
  339. data: [],
  340. },
  341. {
  342. name: 'H2O2饱和度',
  343. type: 'line',
  344. stack: '4',
  345. data: [],
  346. },
  347. ],
  348. })
  349. const envir2Option = ref({
  350. tooltip: {
  351. trigger: 'axis',
  352. },
  353. legend: {
  354. data: ['温度', '湿度', 'H2O2浓度', 'H2O2饱和度'],
  355. },
  356. grid: {
  357. left: '3%',
  358. right: '4%',
  359. bottom: '3%',
  360. containLabel: true,
  361. },
  362. xAxis: {
  363. type: 'category',
  364. boundaryGap: false,
  365. data: echartsStore.abscissaFormater,
  366. },
  367. yAxis: {
  368. type: 'value',
  369. },
  370. series: [
  371. {
  372. name: '温度',
  373. type: 'line',
  374. stack: '1',
  375. data: [],
  376. },
  377. {
  378. name: '湿度',
  379. type: 'line',
  380. stack: '2',
  381. data: [],
  382. },
  383. {
  384. name: 'H2O2浓度',
  385. type: 'line',
  386. stack: '3',
  387. data: [],
  388. },
  389. {
  390. name: 'H2O2饱和度',
  391. type: 'line',
  392. stack: '4',
  393. data: [],
  394. },
  395. ],
  396. })
  397. const operatorStore = useOperatorStore()
  398. const webSocketStore = useWebSocketStore()
  399. const props = defineProps({
  400. changeShowOperator: {
  401. type: Function,
  402. },
  403. })
  404. const showDetail = () => {
  405. props.changeShowOperator(true)
  406. }
  407. const timer = ref(null)
  408. const binCharts = ref(null)
  409. const envir1Charts = ref(null)
  410. const envir2Charts = ref(null)
  411. const time1 = ref(null)
  412. const time2 = ref(null)
  413. onMounted(() => {
  414. timer.value = setInterval(() => {
  415. webSocketStore.sendCommandMsg(getStateJSON)
  416. }, 1000)
  417. let a = echarts.getInstanceByDom(document.getElementById('bin'))
  418. if (a == undefined) {
  419. binCharts.value = echarts.init(document.getElementById('bin'))
  420. binCharts.value.setOption(binOption.value)
  421. }
  422. let b = echarts.getInstanceByDom(document.getElementById('envir1'))
  423. if (b == undefined) {
  424. envir1Charts.value = echarts.init(document.getElementById('envir1'))
  425. envir1Charts.value.setOption(envir1Option.value)
  426. }
  427. let c = echarts.getInstanceByDom(document.getElementById('envir2'))
  428. if (c == undefined) {
  429. envir2Charts.value = echarts.init(document.getElementById('envir2'))
  430. envir2Charts.value.setOption(envir2Option.value)
  431. }
  432. time1.value = setInterval(() => {
  433. binCharts.value?.setOption({
  434. tooltip: {
  435. trigger: 'axis',
  436. },
  437. legend: {
  438. data: ['温度', '湿度', 'H2O2浓度', 'H2O2饱和度'],
  439. },
  440. grid: {
  441. left: '3%',
  442. right: '4%',
  443. bottom: '3%',
  444. containLabel: true,
  445. },
  446. xAxis: {
  447. type: 'category',
  448. boundaryGap: false,
  449. data: echartsStore.abscissaFormater,
  450. },
  451. yAxis: {
  452. type: 'value',
  453. },
  454. series: [
  455. {
  456. name: '温度',
  457. type: 'line',
  458. stack: 'binTemp',
  459. data: echartsStore.binTemp,
  460. },
  461. {
  462. name: '湿度',
  463. type: 'line',
  464. stack: 'binHumidity',
  465. data: echartsStore.binHumidity,
  466. },
  467. {
  468. name: 'H2O2浓度',
  469. type: 'line',
  470. stack: 'binHP',
  471. data: echartsStore.binHP,
  472. },
  473. {
  474. name: 'H2O2饱和度',
  475. type: 'line',
  476. stack: 'binSaturation',
  477. data: echartsStore.binSaturation,
  478. },
  479. ],
  480. })
  481. envir1Charts.value?.setOption({
  482. tooltip: {
  483. trigger: 'axis',
  484. },
  485. legend: {
  486. data: ['温度', '湿度', 'H2O2浓度', 'H2O2饱和度'],
  487. },
  488. grid: {
  489. left: '3%',
  490. right: '4%',
  491. bottom: '3%',
  492. containLabel: true,
  493. },
  494. xAxis: {
  495. type: 'category',
  496. boundaryGap: false,
  497. data: echartsStore.abscissaFormater,
  498. },
  499. yAxis: {
  500. type: 'value',
  501. },
  502. series: [
  503. {
  504. name: '温度',
  505. type: 'line',
  506. stack: '1',
  507. data: [],
  508. },
  509. {
  510. name: '湿度',
  511. type: 'line',
  512. stack: '2',
  513. data: [],
  514. },
  515. {
  516. name: 'H2O2浓度',
  517. type: 'line',
  518. stack: '3',
  519. data: [],
  520. },
  521. {
  522. name: 'H2O2饱和度',
  523. type: 'line',
  524. stack: '4',
  525. data: [],
  526. },
  527. ],
  528. })
  529. envir2Charts.value?.setOption({
  530. tooltip: {
  531. trigger: 'axis',
  532. },
  533. legend: {
  534. data: ['温度', '湿度', 'H2O2浓度', 'H2O2饱和度'],
  535. },
  536. grid: {
  537. left: '3%',
  538. right: '4%',
  539. bottom: '3%',
  540. containLabel: true,
  541. },
  542. xAxis: {
  543. type: 'category',
  544. boundaryGap: false,
  545. data: echartsStore.abscissaFormater,
  546. },
  547. yAxis: {
  548. type: 'value',
  549. },
  550. series: [
  551. {
  552. name: '温度',
  553. type: 'line',
  554. stack: '1',
  555. data: [],
  556. },
  557. {
  558. name: '湿度',
  559. type: 'line',
  560. stack: '2',
  561. data: [],
  562. },
  563. {
  564. name: 'H2O2浓度',
  565. type: 'line',
  566. stack: '3',
  567. data: [],
  568. },
  569. {
  570. name: 'H2O2饱和度',
  571. type: 'line',
  572. stack: '4',
  573. data: [],
  574. },
  575. ],
  576. })
  577. }, 1000 * 20)
  578. time1.value = setInterval(() => {
  579. binCharts.value?.setOption({
  580. tooltip: {
  581. trigger: 'axis',
  582. },
  583. legend: {
  584. data: ['温度', '湿度', 'H2O2浓度', 'H2O2饱和度'],
  585. },
  586. grid: {
  587. left: '3%',
  588. right: '4%',
  589. bottom: '3%',
  590. containLabel: true,
  591. },
  592. xAxis: {
  593. type: 'category',
  594. boundaryGap: false,
  595. data: echartsStore.abscissaFormater,
  596. },
  597. yAxis: {
  598. type: 'value',
  599. },
  600. series: [
  601. {
  602. name: '温度',
  603. type: 'line',
  604. stack: 'binTemp',
  605. data: echartsStore.binTemp,
  606. },
  607. {
  608. name: '湿度',
  609. type: 'line',
  610. stack: 'binHumidity',
  611. data: echartsStore.binHumidity,
  612. },
  613. {
  614. name: 'H2O2浓度',
  615. type: 'line',
  616. stack: 'binHP',
  617. data: echartsStore.binHP,
  618. },
  619. {
  620. name: 'H2O2饱和度',
  621. type: 'line',
  622. stack: 'binSaturation',
  623. data: echartsStore.binSaturation,
  624. },
  625. ],
  626. })
  627. envir1Charts.value?.setOption({
  628. tooltip: {
  629. trigger: 'axis',
  630. },
  631. legend: {
  632. data: ['温度', '湿度', 'H2O2浓度', 'H2O2饱和度'],
  633. },
  634. grid: {
  635. left: '3%',
  636. right: '4%',
  637. bottom: '3%',
  638. containLabel: true,
  639. },
  640. xAxis: {
  641. type: 'category',
  642. boundaryGap: false,
  643. data: echartsStore.abscissaFormater,
  644. },
  645. yAxis: {
  646. type: 'value',
  647. },
  648. series: [
  649. {
  650. name: '温度',
  651. type: 'line',
  652. stack: '1',
  653. data: [],
  654. },
  655. {
  656. name: '湿度',
  657. type: 'line',
  658. stack: '2',
  659. data: [],
  660. },
  661. {
  662. name: 'H2O2浓度',
  663. type: 'line',
  664. stack: '3',
  665. data: [],
  666. },
  667. {
  668. name: 'H2O2饱和度',
  669. type: 'line',
  670. stack: '4',
  671. data: [],
  672. },
  673. ],
  674. })
  675. envir2Charts.value?.setOption({
  676. tooltip: {
  677. trigger: 'axis',
  678. },
  679. legend: {
  680. data: ['温度', '湿度', 'H2O2浓度', 'H2O2饱和度'],
  681. },
  682. grid: {
  683. left: '3%',
  684. right: '4%',
  685. bottom: '3%',
  686. containLabel: true,
  687. },
  688. xAxis: {
  689. type: 'category',
  690. boundaryGap: false,
  691. data: echartsStore.abscissaFormater,
  692. },
  693. yAxis: {
  694. type: 'value',
  695. },
  696. series: [
  697. {
  698. name: '温度',
  699. type: 'line',
  700. stack: '1',
  701. data: [],
  702. },
  703. {
  704. name: '湿度',
  705. type: 'line',
  706. stack: '2',
  707. data: [],
  708. },
  709. {
  710. name: 'H2O2浓度',
  711. type: 'line',
  712. stack: '3',
  713. data: [],
  714. },
  715. {
  716. name: 'H2O2饱和度',
  717. type: 'line',
  718. stack: '4',
  719. data: [],
  720. },
  721. ],
  722. })
  723. }, 1000)
  724. })
  725. // 监听到store中的数据变化动态更改options
  726. onUnmounted(() => {
  727. timer.value = null
  728. time1.value = null
  729. time2.value = null
  730. })
  731. const pauseDisinfect = () => {
  732. // if (operatorStore.disinfectStatus == 1) {
  733. // webSocketStore.sendCommandMsg(pauseDisinfectionJSON)
  734. // }
  735. }
  736. const disinfectWarnVisible = ref(false)
  737. const stopDisinfect = () => {
  738. disinfectWarnVisible.value = true
  739. // if ([1, 2, 3, 4].includes(operatorStore.disinfectStatus)) {
  740. // webSocketStore.sendCommandMsg(stopDisinfectionJSON)
  741. // }
  742. }
  743. const hideDisinfectModal = () => {
  744. disinfectWarnVisible.value = false
  745. }
  746. const continueDisinfect = () => {
  747. // if (operatorStore.disinfectStatus == 2) {
  748. // webSocketStore.sendCommandMsg(continueDisinfectionJSON)
  749. // }
  750. }
  751. </script>
  752. <style lang="scss" scoped>
  753. .progress_container {
  754. margin-bottom: 19px;
  755. height: 580px;
  756. box-sizing: border-box;
  757. background: #ffffff;
  758. border-radius: 16px;
  759. padding-bottom: 30px;
  760. .header_wrap {
  761. display: flex;
  762. align-items: center;
  763. justify-content: space-between;
  764. margin-bottom: 34px;
  765. height: 107px;
  766. box-sizing: border-box;
  767. padding: 13px 36px 13px 20px;
  768. background: #f6f6f6;
  769. border-radius: 16px 16px 0 0;
  770. .left_time {
  771. position: relative;
  772. width: 377px;
  773. height: 61px;
  774. background: url(../assets/img/operator/time.png) no-repeat;
  775. background-size: 100% 100%;
  776. .time {
  777. font-family: Source Han Sans CN;
  778. font-size: 28px;
  779. font-weight: bold;
  780. line-height: normal;
  781. letter-spacing: 0.1em;
  782. color: #ffffff;
  783. position: absolute;
  784. left: 165px;
  785. top: 12px;
  786. width: 178px;
  787. height: 41px;
  788. text-align: center;
  789. }
  790. }
  791. .left_log_wrap {
  792. display: flex;
  793. align-items: center;
  794. .text {
  795. font-family: Source Han Sans CN;
  796. font-size: 30px;
  797. font-weight: bold;
  798. line-height: normal;
  799. letter-spacing: 0.1em;
  800. color: #06518b;
  801. }
  802. .val {
  803. margin-left: 10px;
  804. font-family: Poppins;
  805. font-size: 32px;
  806. font-weight: bold;
  807. line-height: normal;
  808. letter-spacing: 0.1em;
  809. color: #17f179;
  810. }
  811. }
  812. .btn {
  813. padding: 12px 28px;
  814. white-space: nowrap;
  815. box-sizing: border-box;
  816. width: 140px;
  817. height: 50px;
  818. border-radius: 25px;
  819. background: #06518b;
  820. display: flex;
  821. align-items: center;
  822. justify-content: center;
  823. font-family: Source Han Sans CN;
  824. font-size: 20px;
  825. font-weight: 500;
  826. line-height: normal;
  827. letter-spacing: 0.07em;
  828. color: #ffffff;
  829. }
  830. }
  831. .echarts_wrap {
  832. height: 351px;
  833. display: flex;
  834. padding-left: 20px;
  835. align-items: center;
  836. margin-bottom: 19px;
  837. .single_wrap {
  838. flex: 1;
  839. height: 351px;
  840. .title {
  841. margin-left: 28px;
  842. padding: 5px 13px;
  843. margin-bottom: 24px;
  844. font-family: Source Han Sans CN;
  845. font-size: 14px;
  846. font-weight: 500;
  847. line-height: normal;
  848. letter-spacing: 0.1em;
  849. color: #ffffff;
  850. height: 27px;
  851. border-radius: 14px;
  852. opacity: 1;
  853. background: #06518b;
  854. width: 70px;
  855. box-sizing: border-box;
  856. display: flex;
  857. align-items: center;
  858. justify-content: center;
  859. }
  860. .echarts_box {
  861. width: 380px;
  862. height: 308px;
  863. }
  864. }
  865. }
  866. .detail_wrap {
  867. padding-left: 20px;
  868. display: flex;
  869. align-items: center;
  870. padding-right: 16px;
  871. height: 50px;
  872. .tip_info {
  873. padding: 12px 20px;
  874. box-sizing: border-box;
  875. overflow: hidden;
  876. text-overflow: ellipsis;
  877. white-space: nowrap;
  878. width: 550px;
  879. height: 50px;
  880. border-radius: 6px;
  881. opacity: 1;
  882. background: #f6f6f6;
  883. font-family: Source Han Sans CN;
  884. font-size: 18px;
  885. font-weight: bold;
  886. line-height: normal;
  887. letter-spacing: 0.1em;
  888. margin-right: 20px;
  889. color: #fa1c1c;
  890. }
  891. .speed_wrap {
  892. background: url(../assets/img/operator/speed.png) no-repeat;
  893. background-size: 100% 100%;
  894. position: relative;
  895. width: 335px;
  896. height: 41px;
  897. margin-right: 37px;
  898. .speed {
  899. position: absolute;
  900. font-family: Source Han Sans CN;
  901. font-size: 28px;
  902. font-weight: bold;
  903. line-height: normal;
  904. letter-spacing: 0.02em;
  905. color: #17f179;
  906. left: 194px;
  907. bottom: -2px;
  908. width: 68px;
  909. height: 41px;
  910. white-space: nowrap;
  911. text-align: center;
  912. }
  913. }
  914. }
  915. }
  916. .wrapper {
  917. display: flex;
  918. align-items: center;
  919. justify-content: center;
  920. height: 100%;
  921. }
  922. .block {
  923. width: 120px;
  924. height: 120px;
  925. display: flex;
  926. flex-direction: column;
  927. padding: 16px;
  928. align-items: center;
  929. justify-content: center;
  930. .shutdown_text {
  931. margin-top: 24px;
  932. font-family: Source Han Sans CN;
  933. font-size: 18px;
  934. font-weight: normal;
  935. line-height: normal;
  936. letter-spacing: 0.06em;
  937. color: #fff;
  938. white-space: nowrap;
  939. }
  940. }
  941. </style>