消毒机前端代码
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.

267 lines
6.2 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
  1. <template>
  2. <div class="operator_main_content">
  3. <div class="left_contaienr">
  4. <div class="info_cards">
  5. <div class="card">
  6. <DisinfectantLiquidInfo />
  7. </div>
  8. <div class="card">
  9. <EnvironmentInfo />
  10. </div>
  11. <div class="card">
  12. <EnvironmentInfo />
  13. </div>
  14. <div class="card">
  15. <EnvironmentInfo />
  16. </div>
  17. </div>
  18. <div class="warn_wrap">
  19. <p class="warn_text">警报信息</p>
  20. <div class="detail_btn">详情</div>
  21. </div>
  22. </div>
  23. <div class="right_container">
  24. <div class="setting_title">
  25. <p>消毒设置</p>
  26. <p>SET</p>
  27. </div>
  28. <div class="set_form">
  29. <input type="number" v-model="roomSize" class="room_size" />
  30. <div class="log" @click="showLogPicker">{{ logVal }}</div>
  31. </div>
  32. <div class="start" @click="startDisinfect">开始消毒</div>
  33. <div class="progress">
  34. <p class="title">消毒进度</p>
  35. <div class="tube">
  36. <div
  37. class="pro"
  38. :style="{
  39. '--width': '50px',
  40. }"
  41. ></div>
  42. </div>
  43. <div class="num">000/100</div>
  44. </div>
  45. </div>
  46. <!-- <WarnModal /> -->
  47. <LogPicker
  48. v-if="logVisible"
  49. :changeLogVal="changeLogVal"
  50. :logVal="logVal"
  51. />
  52. </div>
  53. </template>
  54. <script setup>
  55. import LogPicker from 'cpns/dialogs/LogPicker'
  56. import WarnModal from 'cpns/dialogs/WarnModal'
  57. import DisinfectantLiquidInfo from 'cpns/info/DisinfectantLiquidInfo'
  58. import EnvironmentInfo from 'cpns/info/EnvironmentInfo'
  59. import { ref } from 'vue'
  60. const logVisible = ref(false)
  61. const logVal = ref(1)
  62. const roomSize = ref(0)
  63. const changeLogVal = val => {
  64. logVal.value = val
  65. logVisible.value = false
  66. }
  67. const startDisinfect = () => {
  68. console.log('开始消毒')
  69. }
  70. const showLogPicker = () => {
  71. logVisible.value = true
  72. }
  73. </script>
  74. <style lang="scss" scoped>
  75. .operator_main_content {
  76. margin-bottom: 30px;
  77. height: 580px;
  78. box-sizing: border-box;
  79. display: flex;
  80. align-items: center;
  81. .left_contaienr {
  82. margin-right: 30px;
  83. width: 766px;
  84. height: 580px;
  85. box-sizing: border-box;
  86. border-radius: 16px;
  87. background: #ffffff;
  88. padding: 20px;
  89. .info_cards {
  90. width: 726px;
  91. height: 470px;
  92. box-sizing: border-box;
  93. display: grid;
  94. grid-template-columns: repeat(2, 1fr);
  95. grid-template-rows: repeat(2, 1fr);
  96. column-gap: 20px;
  97. row-gap: 20px;
  98. margin-bottom: 20px;
  99. .card {
  100. width: 353px;
  101. height: 225px;
  102. border-radius: 17.5px;
  103. background: #06518b;
  104. }
  105. }
  106. .warn_wrap {
  107. display: flex;
  108. align-items: center;
  109. justify-content: space-between;
  110. box-sizing: border-box;
  111. padding: 0 20px;
  112. width: 726px;
  113. height: 50px;
  114. border-radius: 6px;
  115. background: #f6f6f6;
  116. .warn_text {
  117. font-family: Source Han Sans CN;
  118. font-size: 12px;
  119. font-weight: 500;
  120. letter-spacing: 0.1em;
  121. color: #fa1c1c;
  122. }
  123. .detail_btn {
  124. width: 105px;
  125. height: 31px;
  126. border-radius: 16px;
  127. background: #06518b;
  128. display: flex;
  129. align-items: center;
  130. justify-content: center;
  131. font-family: Source Han Sans CN;
  132. font-size: 12px;
  133. font-weight: normal;
  134. letter-spacing: 0.1em;
  135. color: #ffffff;
  136. }
  137. }
  138. }
  139. .right_container {
  140. height: 580px;
  141. box-sizing: border-box;
  142. border-radius: 16px;
  143. background: #ffffff;
  144. flex: 1;
  145. padding: 42px;
  146. padding-top: 32px;
  147. .setting_title {
  148. width: 340px;
  149. height: 45px;
  150. border-radius: 23px;
  151. background: #06518b;
  152. padding: 0 24px;
  153. box-sizing: border-box;
  154. display: flex;
  155. align-items: center;
  156. justify-content: space-between;
  157. font-family: Source Han Sans CN;
  158. font-size: 14px;
  159. font-weight: normal;
  160. letter-spacing: 0.1em;
  161. color: #ffffff;
  162. margin-bottom: 41px;
  163. }
  164. .set_form {
  165. width: 340px;
  166. height: 190px;
  167. box-sizing: border-box;
  168. margin-bottom: 41px;
  169. overflow: hidden;
  170. background: url(../assets/img/operator/form.png) no-repeat;
  171. background-size: 100% 100%;
  172. position: relative;
  173. .room_size {
  174. position: absolute;
  175. top: 45px;
  176. left: 23px;
  177. width: 189px;
  178. height: 20px;
  179. text-align: center;
  180. border: none;
  181. outline: none;
  182. }
  183. .log {
  184. position: absolute;
  185. top: 145px;
  186. left: 0px;
  187. width: 240px;
  188. height: 42px;
  189. text-align: center;
  190. display: flex;
  191. align-items: center;
  192. justify-content: center;
  193. font-family: Source Han Sans CN;
  194. font-size: 14px;
  195. font-weight: 500;
  196. letter-spacing: 0.06em;
  197. color: #0e0e0e;
  198. }
  199. }
  200. .start {
  201. margin-bottom: 30px;
  202. width: 340px;
  203. height: 45px;
  204. border-radius: 23px;
  205. background: #06518b;
  206. display: flex;
  207. align-items: center;
  208. justify-content: center;
  209. font-family: Source Han Sans CN;
  210. font-size: 14px;
  211. font-weight: normal;
  212. letter-spacing: 0.1em;
  213. color: #ffffff;
  214. }
  215. .progress {
  216. width: 340px;
  217. height: 114px;
  218. border-radius: 16px;
  219. opacity: 1;
  220. background: #f6f6f6;
  221. box-sizing: border-box;
  222. padding: 27px 24px 18px 27px;
  223. .title {
  224. font-family: Source Han Sans CN;
  225. font-size: 12px;
  226. font-weight: 350;
  227. letter-spacing: 0.06em;
  228. color: #9e9e9e;
  229. margin-bottom: 13px;
  230. }
  231. .tube {
  232. width: 292px;
  233. height: 14px;
  234. border-radius: 7px;
  235. background: #ffffff;
  236. margin-bottom: 11px;
  237. position: relative;
  238. overflow: hidden;
  239. .pro {
  240. position: absolute;
  241. left: 0;
  242. top: 0;
  243. height: 14px;
  244. width: var(--width);
  245. border-radius: 7px;
  246. background: #06518b;
  247. }
  248. }
  249. .num {
  250. display: flex;
  251. justify-content: flex-end;
  252. font-family: Source Han Sans CN;
  253. font-size: 10px;
  254. font-weight: normal;
  255. letter-spacing: 0.06em;
  256. color: #9e9e9e;
  257. }
  258. }
  259. }
  260. }
  261. </style>