MiniBoard.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471
  1. <!-- eslint-disable vue/multi-word-component-names -->
  2. <template>
  3. <div class="mini-board" :class="`mini-board_${type} mini-board_${type}_${getValueDecoClass(value)}`">
  4. <template v-if="layout === 'val-top'">
  5. <slot name="value">
  6. <div class="mini-board__value" :class="`mini-board__value_${type}`">
  7. {{ value }}
  8. </div>
  9. </slot>
  10. <slot name="label">
  11. <div class="mini-board__label" :class="`mini-board__label_${type}`">
  12. {{ label }}
  13. </div>
  14. </slot>
  15. </template>
  16. <template v-if="layout === 'label-top'">
  17. <slot name="label">
  18. <div class="mini-board__label" :class="`mini-board__label_${type}`">
  19. {{ label }}
  20. </div>
  21. </slot>
  22. <slot name="value">
  23. <div class="mini-board__value" :class="`mini-board__value_${type}`">
  24. {{ value }}
  25. </div>
  26. </slot>
  27. </template>
  28. <template v-if="layout === 'new-top'">
  29. <slot name="label">
  30. <div class="mini-board__label" :class="`mini-board__label_${type}`">{{ label }}</div>
  31. </slot>
  32. <slot name="value">
  33. <div class="mini-board__value" :class="`mini-board__value_${type}`">{{ value }}</div>
  34. </slot>
  35. </template>
  36. <template v-if="layout === 'new1-top'">
  37. <slot name="label">
  38. <div class="mini-board__label" :class="`mini-board__label_${type}`">{{ label }}</div>
  39. </slot>
  40. <slot name="value">
  41. <div class="mini-board__value" :class="`mini-board__value_${type}`">{{ value }}</div>
  42. </slot>
  43. </template>
  44. <template v-if="layout === 'new2-top'">
  45. <slot name="value">
  46. <div class="mini-board__value" :class="`mini-board__value_${type}`">{{ value }}</div>
  47. </slot>
  48. <slot name="label">
  49. <div class="mini-board__label" :class="`mini-board__label_${type}`">{{ label }}</div>
  50. </slot>
  51. </template>
  52. <template v-if="layout === 'new3-top'">
  53. <div v-if="label === '进风(m³/min)'" class="mini-board_New3_jin">
  54. <div class="mini-board__label" style="color: #afe6f2" :class="`mini-board__label_${type}`">{{ label }}</div>
  55. <div class="mini-board__value" :class="`mini-board__value_${type}`">{{ value }}</div>
  56. </div>
  57. <div v-if="label === '回风(m³/min)'" class="mini-board_New3_hui">
  58. <div class="mini-board__label" style="color: #afe6f2" :class="`mini-board__label_${type}`">{{ label }}</div>
  59. <div class="mini-board__value" :class="`mini-board__value_${type}`">{{ value }}</div>
  60. </div>
  61. <!-- <slot name="value">
  62. <div class="mini-board__label" :class="`mini-board__label_${type}`">{{ label }}</div>
  63. </slot> -->
  64. <!-- <slot name="lable">
  65. <div class="mini-board__value" :class="`mini-board__value_${type}`">{{ value }}</div>
  66. </slot> -->
  67. </template>
  68. </div>
  69. </template>
  70. <script lang="ts" setup>
  71. withDefaults(
  72. defineProps<{
  73. label: string;
  74. value?: string;
  75. // 告示牌布局,类型为:'val-top' | 'label-top'
  76. layout: string;
  77. // 告示牌类型,类型为:'A' | 'B' | 'C' | 'D' | 'E' | 'F' |'New' | 'localFannew'
  78. type?: string;
  79. }>(),
  80. {
  81. value: '/',
  82. type: 'A',
  83. layout: 'val-top',
  84. }
  85. );
  86. // 获取某些 value 对应的特殊的 装饰用的类名
  87. function getValueDecoClass(value) {
  88. switch (value) {
  89. case '低风险':
  90. return 'low_risk';
  91. case '一般风险':
  92. return 'risk';
  93. case '较大风险':
  94. return 'high_risk';
  95. case '报警':
  96. return 'warning';
  97. default:
  98. return '';
  99. }
  100. }
  101. defineEmits(['click']);
  102. </script>
  103. <style lang="less" scoped>
  104. @import '/@/design/theme.less';
  105. @import '/@/design/theme.less';
  106. @{theme-deepblue} {
  107. .mini-board {
  108. --image-areaNew: url('/@/assets/images/vent/homeNew/databg/1.png');
  109. --image-areaNew1: url('/@/assets/images/vent/homeNew/databg/2.png');
  110. --image-areaNew2: url('/@/assets/images/vent/homeNew/databg/3.png');
  111. --image-areaNew3: url('/@/assets/images/vent/homeNew/databg/8.png');
  112. --image-areaNew4: url('/@/assets/images/vent/homeNew/databg/7.png');
  113. --image-area3: url('/@/assets/images/themify/deepblue/company/area3.png');
  114. --image-value-bg: url('/@/assets/images/themify/deepblue/vent/value-bg.png');
  115. --image-vent-param-bg: url('/@/assets/images/themify/deepblue/vent/vent-param-bg.png');
  116. --image-mini-board-1: url('/@/assets/images/themify/deepblue/vent/home/mini-board-1.png');
  117. --image-board_bg_1: url('/@/assets/images/themify/deepblue/home-container/configurable/board_bg_1.png');
  118. --image-miehuo: url('/@/assets/images/themify/deepblue/home-container/configurable/firehome/miehuo.png');
  119. --image-value-bg-2: url('/@/assets/images/themify/deepblue/vent/value-bg-2.png');
  120. --image-board_bg_3: url('/@/assets/images/themify/deepblue/home-container/configurable/board_bg_3.png');
  121. --image-board_bg_2: url('/@/assets/images/themify/deepblue/home-container/configurable/board_bg_2.png');
  122. --image-board_bg_5: url('/@/assets/images/themify/deepblue/home-container/configurable/board_bg_5.png');
  123. --image-board_bg_4: url('/@/assets/images/themify/deepblue/home-container/configurable/board_bg_4.png');
  124. }
  125. }
  126. .mini-board {
  127. --image-areaNew: url('/@/assets/images/vent/homeNew/databg/1.png');
  128. --image-areaNew1: url('/@/assets/images/vent/homeNew/databg/2.png');
  129. --image-areaNew2: url('/@/assets/images/vent/homeNew/databg/3.png');
  130. --image-areaNew3: url('/@/assets/images/vent/homeNew/databg/8.png');
  131. --image-areaNew4: url('/@/assets/images/vent/homeNew/databg/7.png');
  132. --image-area3: url('/@/assets/images/company/area3.png');
  133. --image-value-bg: url('/@/assets/images/vent/value-bg.png');
  134. --image-vent-param-bg: url('/@/assets/images/vent/vent-param-bg.png');
  135. --image-mini-board-1: url('/@/assets/images/vent/home/mini-board-1.png');
  136. --image-board_bg_1: url('/@/assets/images/home-container/configurable/board_bg_1.png');
  137. --image-miehuo: url('/@/assets/images/home-container/configurable/firehome/miehuo.png');
  138. --image-value-bg-2: url('/@/assets/images/vent/value-bg-2.png');
  139. --image-board_bg_3: url('/@/assets/images/home-container/configurable/board_bg_3.png');
  140. --image-board_bg_2: url('/@/assets/images/home-container/configurable/board_bg_2.png');
  141. --image-board_bg_5: url('/@/assets/images/home-container/configurable/board_bg_5.png');
  142. --image-board_bg_4: url('/@/assets/images/home-container/configurable/board_bg_4.png');
  143. --image-board_bg_6: url('/@/assets/images/home-container/configurable/board_bg_6.png');
  144. --image-board-bg-J: url('/@/assets/images/home-container/configurable/minehome/board-bg-j.png');
  145. --image-board-bg-k1: url('/@/assets/images/home-container/configurable/minehome/board-bg-k1.png');
  146. --image-board-bg-k2: url('/@/assets/images/home-container/configurable/minehome/board-bg-k2.png');
  147. --image-hycd: url(/@/assets/images/home-container/configurable/dusthome/hycd.png);
  148. --image-dyfl: url(/@/assets/images/home-container/configurable/dusthome/dyfl.png);
  149. --image-jdjl: url(/@/assets/images/home-container/configurable/dusthome/jdjl.png);
  150. height: 50px;
  151. line-height: 25px;
  152. width: 130px;
  153. padding: 0 5px 0 5px;
  154. text-align: center;
  155. background-size: 100% 100%;
  156. position: relative;
  157. }
  158. .mini-board_New {
  159. width: 120px;
  160. height: 60px;
  161. background-image: var(--image-areaNew);
  162. background-size: 100% 100%;
  163. }
  164. .mini-board_New1 {
  165. width: 118px;
  166. height: 60px;
  167. background-image: var(--image-areaNew1);
  168. background-size: 100% 100%;
  169. }
  170. .mini-board_New2 {
  171. width: 93px;
  172. height: 60px;
  173. margin: 0px;
  174. background-image: var(--image-areaNew2);
  175. background-size: 100% 100%;
  176. background-repeat: no-repeat;
  177. }
  178. .mini-board_New3 {
  179. margin-bottom: 0;
  180. width: 170px;
  181. height: 50px;
  182. }
  183. .mini-board_New3_jin {
  184. background-image: var(--image-areaNew3);
  185. background-size: 100% 100%;
  186. width: 100%;
  187. height: 100%;
  188. display: flex;
  189. flex-direction: row;
  190. justify-content: center;
  191. align-items: center;
  192. }
  193. .mini-board_New3_hui {
  194. background-image: var(--image-areaNew4);
  195. background-size: 100% 100%;
  196. width: 100%;
  197. height: 100%;
  198. display: flex;
  199. flex-direction: row;
  200. justify-content: center;
  201. align-items: center;
  202. }
  203. .mini-board_A {
  204. width: 120px;
  205. height: 60px;
  206. background-image: var(--image-area3);
  207. background-size: 100% 100%;
  208. }
  209. .mini-board_B {
  210. width: 131px;
  211. height: 64px;
  212. background-image: var(--image-value-bg);
  213. background-size: auto 40px;
  214. background-position: center bottom;
  215. background-repeat: no-repeat;
  216. }
  217. .mini-board_C {
  218. width: 121px;
  219. height: 69px;
  220. background-image: var(--image-vent-param-bg);
  221. }
  222. .mini-board_D {
  223. // width: 105px;
  224. height: 58px;
  225. background-image: var(--image-mini-board-1);
  226. background-position: center bottom;
  227. background-repeat: no-repeat;
  228. }
  229. .mini-board_E {
  230. width: 30%;
  231. height: 180px;
  232. padding: 20px 5px;
  233. background-image: var(--image-board_bg_1);
  234. background-position: center bottom;
  235. background-repeat: no-repeat;
  236. background-size: 100% 100%;
  237. }
  238. .mini-board_F {
  239. width: 140px;
  240. height: 70px;
  241. background-image: var(--image-miehuo);
  242. background-size: 100% 80%;
  243. background-position: center bottom;
  244. background-repeat: no-repeat;
  245. }
  246. .mini-board_G {
  247. width: 98px;
  248. height: 70px;
  249. background-image: var(--image-value-bg-2);
  250. background-size: 100% auto;
  251. background-position: center bottom;
  252. background-repeat: no-repeat;
  253. }
  254. .mini-board_H {
  255. width: 174px;
  256. height: 104px;
  257. background-image: var(--image-board_bg_3);
  258. background-size: 100% auto;
  259. background-position: center bottom;
  260. background-repeat: no-repeat;
  261. padding: 45px 0 0 0;
  262. }
  263. .mini-board_I {
  264. width: 139px;
  265. height: 67px;
  266. background-image: var(--image-board_bg_6);
  267. background-size: 100% 100%;
  268. }
  269. .mini-board_J {
  270. width: 110px;
  271. height: 58px;
  272. background-image: var(--image-board-bg-J);
  273. background-size: 100% 100%;
  274. }
  275. .mini-board_K {
  276. width: 170px;
  277. height: 70px;
  278. background-size: 100% 100%;
  279. }
  280. /* 第一个mini-board_K使用k1背景 */
  281. .mini-board_K:first-of-type {
  282. background-image: var(--image-board-bg-k1);
  283. }
  284. /* 第二个mini-board_K使用k2背景 */
  285. .mini-board_K:first-of-type + .mini-board_K {
  286. background-image: var(--image-board-bg-k2);
  287. }
  288. .mini-board__value_New {
  289. color: @vent-gas-primary-text;
  290. font-size: 15px;
  291. float: left;
  292. margin: 0 0 0 13px;
  293. font-weight: bold;
  294. height: 30px;
  295. line-height: 30px;
  296. }
  297. .mini-board__lable_New {
  298. line-height: 24px;
  299. height: 24px;
  300. }
  301. .mini-board__value_New1 {
  302. color: @vent-gas-primary-text;
  303. font-size: 16px;
  304. float: left;
  305. margin: 0 0 0 45%;
  306. height: 30px;
  307. line-height: 30px;
  308. }
  309. .mini-board__lable_New1 {
  310. line-height: 24px;
  311. height: 24px;
  312. }
  313. .mini-board__value_New2 {
  314. color: @vent-gas-primary-text;
  315. font-size: 15px;
  316. font-weight: bold;
  317. height: 30px;
  318. line-height: 30px;
  319. }
  320. .mini-board__lable_New2 {
  321. line-height: 24px;
  322. height: 24px;
  323. }
  324. .mini-board__value_New3 {
  325. color: #afe6f2;
  326. font-size: 15px;
  327. font-weight: bold;
  328. margin-left: 10px;
  329. }
  330. .mini-board__lable_New3 {
  331. color: #afe6f2;
  332. height: 30px;
  333. font-size: 10px;
  334. }
  335. .mini-board__value_A {
  336. color: @vent-gas-primary-text;
  337. font-size: 20px;
  338. font-weight: bold;
  339. height: 30px;
  340. line-height: 30px;
  341. }
  342. .mini-board__value_B {
  343. color: @vent-gas-primary-text;
  344. font-size: 20px;
  345. font-weight: bold;
  346. height: 40px;
  347. line-height: 40px;
  348. }
  349. .mini-board__label_B {
  350. line-height: 24px;
  351. height: 24px;
  352. }
  353. .mini-board__value_C {
  354. color: @vent-gas-primary-text;
  355. height: 40px;
  356. line-height: 40px;
  357. font-size: 20px;
  358. font-weight: bold;
  359. }
  360. .mini-board__value_D {
  361. font-size: 20px;
  362. font-weight: bold;
  363. height: 40px;
  364. line-height: 40px;
  365. }
  366. .mini-board__label_D {
  367. line-height: 17px;
  368. height: 17px;
  369. }
  370. .mini-board__value_E {
  371. font-size: 20px;
  372. font-weight: bold;
  373. }
  374. .mini-board__label_E {
  375. line-height: 20px;
  376. height: 90px;
  377. padding-top: 30%;
  378. background-repeat: no-repeat;
  379. background-position: center top;
  380. }
  381. .mini-board__value_F {
  382. font-size: 20px;
  383. font-weight: bold;
  384. color: @vent-gas-primary-text;
  385. }
  386. .mini-board__label_F {
  387. line-height: 50px;
  388. }
  389. .mini-board__value_G {
  390. color: @vent-gas-primary-text;
  391. font-size: 20px;
  392. font-weight: bold;
  393. height: 42px;
  394. line-height: 42px;
  395. }
  396. .mini-board__label_G {
  397. line-height: 20px;
  398. height: 20px;
  399. }
  400. .mini-board__value_J {
  401. color: #b3ebf7;
  402. font-size: 16px;
  403. font-weight: bold;
  404. height: 25px;
  405. line-height: 25px;
  406. }
  407. .mini-board__label_J {
  408. line-height: 20px;
  409. height: 20px;
  410. }
  411. .mini-board__value_K {
  412. color: #fff;
  413. font-family: 'douyuFont';
  414. font-size: 16px;
  415. // font-weight: bold;
  416. height: 55px;
  417. line-height: 55px;
  418. padding-left: 60px;
  419. }
  420. .mini-board__label_K {
  421. line-height: 21px;
  422. height: 21px;
  423. text-align: end;
  424. font-size: 13px;
  425. }
  426. .mini-board_E:nth-child(1) {
  427. .mini-board__label_E {
  428. background-image: var(--image-hycd);
  429. }
  430. }
  431. .mini-board_E:nth-child(2) {
  432. .mini-board__label_E {
  433. background-image: var(--image-dyfl);
  434. }
  435. }
  436. .mini-board_E:nth-child(3) {
  437. .mini-board__label_E {
  438. background-image: var(--image-jdjl);
  439. }
  440. }
  441. .mini-board_H_low_risk {
  442. background-image: var(--image-board_bg_3);
  443. }
  444. .mini-board_H_risk {
  445. background-image: var(--image-board_bg_2);
  446. }
  447. .mini-board_H_high_risk {
  448. background-image: var(--image-board_bg_5);
  449. }
  450. .mini-board_H_warning {
  451. background-image: var(--image-board_bg_4);
  452. }
  453. </style>