dz-scroll-list.vue 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. <template>
  2. <div class="dzScrollList">
  3. <div class="item item1">
  4. <div class="icon"></div>
  5. <vue3-seamless-scroll hover-stop="true" :list="fireMonitor1" :hover="true" :step="0.18"
  6. :limit-scroll-num="fireMonitor1.length" class="seamless-warp1">
  7. <div class="data-box" v-for="(item, index) in fireMonitor1" :key="index">
  8. <div class="box-item">
  9. <div :class="{
  10. value1: item.warnLevel == '绿色预警',
  11. value2: item.warnLevel == '黄色预警',
  12. value3: item.warnLevel == '红色预警',
  13. }">{{ item.value1 ? item.value1 : '--' }}</div>
  14. <div class="title">监测位置</div>
  15. </div>
  16. <div class="box-item">
  17. <div :class="{
  18. value1: item.warnLevel == '绿色预警',
  19. value2: item.warnLevel == '黄色预警',
  20. value3: item.warnLevel == '红色预警',
  21. }">{{ item.warnLevel || '-' }}
  22. </div>
  23. <div class="title">预警等级</div>
  24. </div>
  25. <div class="box-item1">
  26. <div :class="{
  27. value1: item.warnLevel == '绿色预警',
  28. value2: item.warnLevel == '黄色预警',
  29. value3: item.warnLevel == '红色预警',
  30. }">{{ item.smokeJd || '-' }}
  31. </div>
  32. <div class="title">煤自燃阶段</div>
  33. </div>
  34. </div>
  35. </vue3-seamless-scroll>
  36. </div>
  37. </div>
  38. </template>
  39. <script lang="ts" setup>
  40. import { ref, reactive } from 'vue'
  41. import { Vue3SeamlessScroll } from 'vue3-seamless-scroll';
  42. let fireMonitor1 = reactive<any[]>([
  43. { warnLevel: '束管1', smokeJd: '绿色预警', value1: '潜伏期阶段' },
  44. { warnLevel: '束管2', smokeJd: '黄色预警', value1: '加速氧化阶段' },
  45. ]);
  46. </script>
  47. <style lang="less" scoped>
  48. .dzScrollList {
  49. position: relative;
  50. width: 100%;
  51. height: 100%;
  52. .item {
  53. height: 102px;
  54. width: 100%;
  55. position: relative;
  56. display: flex;
  57. align-content: center;
  58. padding-top: 35px;
  59. &::before {
  60. content: '';
  61. width: 100%;
  62. height: 120px;
  63. position: absolute;
  64. top: 0px;
  65. background: url(/src/assets/images/vent/fire-bg-top.png);
  66. background-size: 100% 100%;
  67. }
  68. .icon {
  69. width: 72px;
  70. height: 36px;
  71. margin: 0 15px 0 45px;
  72. background: url(/src/assets/images/vent/icon-bottom-bg.png);
  73. position: relative;
  74. top: 30px;
  75. background-size: 100% 100%;
  76. &::after {
  77. position: absolute;
  78. content: '';
  79. width: 50px;
  80. height: 50px;
  81. top: -25px;
  82. left: 17px;
  83. background: url(/src/assets/images/vent/outer-icon.svg) no-repeat;
  84. }
  85. }
  86. .seamless-warp1 {
  87. width: 382px;
  88. height: 80%;
  89. overflow: hidden;
  90. .data-box {
  91. display: flex;
  92. width: 382px;
  93. justify-content: center;
  94. align-items: center;
  95. margin: 30px auto;
  96. .box-item {
  97. width: 30%;
  98. height: 100%;
  99. display: flex;
  100. flex-direction: column;
  101. align-items: center;
  102. padding: 0 10px;
  103. .value {
  104. font-size: 14px;
  105. font-family: 'douyuFont';
  106. color: #2bdcff;
  107. margin-bottom: 5px;
  108. }
  109. .value1 {
  110. font-size: 14px;
  111. font-family: 'douyuFont';
  112. margin-bottom: 5px;
  113. color: rgb(145, 230, 9);
  114. }
  115. .value2 {
  116. font-size: 14px;
  117. font-family: 'douyuFont';
  118. margin-bottom: 5px;
  119. color: #ffff35;
  120. }
  121. .value3 {
  122. font-size: 14px;
  123. font-family: 'douyuFont';
  124. margin-bottom: 5px;
  125. color: #ff0000;
  126. }
  127. .value4 {
  128. font-size: 14px;
  129. font-family: 'douyuFont';
  130. margin-bottom: 5px;
  131. color: #ffbe69;
  132. }
  133. .value5 {
  134. font-size: 14px;
  135. font-family: 'douyuFont';
  136. margin-bottom: 5px;
  137. color: #ff6f00;
  138. }
  139. .value6 {
  140. font-size: 14px;
  141. font-family: 'douyuFont';
  142. margin-bottom: 5px;
  143. color: #ff0000;
  144. }
  145. .title {
  146. font-size: 12px;
  147. }
  148. }
  149. .box-item1 {
  150. width: 40%;
  151. height: 100%;
  152. display: flex;
  153. flex-direction: column;
  154. align-items: center;
  155. padding: 0 10px;
  156. .value {
  157. font-size: 14px;
  158. font-family: 'douyuFont';
  159. color: #2bdcff;
  160. margin-bottom: 5px;
  161. }
  162. .value1 {
  163. font-size: 14px;
  164. font-family: 'douyuFont';
  165. margin-bottom: 5px;
  166. color: rgb(145, 230, 9);
  167. }
  168. .value2 {
  169. font-size: 14px;
  170. font-family: 'douyuFont';
  171. margin-bottom: 5px;
  172. color: #ffff35;
  173. }
  174. .value3 {
  175. font-size: 14px;
  176. font-family: 'douyuFont';
  177. margin-bottom: 5px;
  178. color: #ff0000;
  179. }
  180. .value4 {
  181. font-size: 14px;
  182. font-family: 'douyuFont';
  183. margin-bottom: 5px;
  184. color: #ffbe69;
  185. }
  186. .value5 {
  187. font-size: 14px;
  188. font-family: 'douyuFont';
  189. margin-bottom: 5px;
  190. color: #ff6f00;
  191. }
  192. .value6 {
  193. font-size: 14px;
  194. font-family: 'douyuFont';
  195. margin-bottom: 5px;
  196. color: #ff0000;
  197. }
  198. .title {
  199. font-size: 12px;
  200. }
  201. }
  202. }
  203. }
  204. }
  205. .item1 {
  206. top: 0px;
  207. &::before {
  208. transform: matrix(1, 0, 0, -1, 0, 0);
  209. }
  210. .icon {
  211. &::after {
  212. background: url('@/assets/images/vent/inner-icon.svg') no-repeat;
  213. }
  214. }
  215. }
  216. }
  217. </style>