wind-site-weather.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. // 天气分析
  2. <template>
  3. <div class="wind-site-weather">
  4. <!-- <div class="title">风场 {{ nowTime }} 实况</div> -->
  5. <div class="title" v-if="paramsId.includes('FDC')">
  6. 风场 {{ nowTime }} 实况
  7. </div>
  8. <div class="title" v-else-if="paramsId.includes('GDC')">
  9. 光电场 {{ nowTime }} 实况
  10. </div>
  11. <div class="weather">
  12. <div class="weather-info">
  13. <span class="svg-icon">
  14. <svg-icon class="weather-icon" svgid="svg-duoyun" />
  15. </span>
  16. <div class="temperature-info">
  17. <div class="temperature">{{ sourceMap.wd }} °</div>
  18. <div class="other">
  19. <div>{{ sourceMap.tqmc }}</div>
  20. <span>{{ sourceMap.fx }}</span>
  21. <span>{{ sourceMap.fs }}</span>
  22. </div>
  23. </div>
  24. </div>
  25. <div class="other-info">
  26. <Row>
  27. <Col>
  28. <div class="svg-icon svg-icon-sm svg-icon-green">
  29. <svg-icon svgid="svg-能见度" />
  30. </div>
  31. <div class="value">{{ sourceMap.qxd }}</div>
  32. <div class="text">能见度</div>
  33. </Col>
  34. <Col>
  35. <div class="svg-icon svg-icon-sm svg-icon-green">
  36. <svg-icon svgid="svg-湿度" />
  37. </div>
  38. <div class="value">{{ sourceMap.sd }}</div>
  39. <div class="text">湿度</div>
  40. </Col>
  41. <Col>
  42. <div class="svg-icon svg-icon-sm svg-icon-green">
  43. <svg-icon svgid="svg-气压" />
  44. </div>
  45. <div class="value">{{ sourceMap.dqyl }}kPa</div>
  46. <div class="text">气压</div>
  47. </Col>
  48. <Col>
  49. <div class="svg-icon svg-icon-sm svg-icon-green">
  50. <svg-icon svgid="svg-日出" />
  51. </div>
  52. <div class="value">{{ sunrise }}</div>
  53. <div class="text">日出时间</div>
  54. </Col>
  55. <Col>
  56. <div class="svg-icon svg-icon-sm svg-icon-green">
  57. <svg-icon svgid="svg-日落" />
  58. </div>
  59. <div class="value">{{ sunset }}</div>
  60. <div class="text">日落时间</div>
  61. </Col>
  62. </Row>
  63. </div>
  64. </div>
  65. </div>
  66. </template>
  67. <script>
  68. import Home from "./Home.vue";
  69. import Col from "@/components/coms/grid/col.vue";
  70. import Row from "@/components/coms/grid/row.vue";
  71. import SvgIcon from "@/components/coms/icon/svg-icon.vue";
  72. export default {
  73. components: { Home, Row, Col, SvgIcon },
  74. props: {
  75. time: String,
  76. data: {
  77. type: Object,
  78. default: () => {},
  79. },
  80. paramsId: "",
  81. },
  82. data() {
  83. return {
  84. // paramsId:"",
  85. sourceMap: {},
  86. nowTime: "",
  87. weather: "阴", // 气象法
  88. temperature: "11", // 温度
  89. windDirection: "北风", // 风向
  90. windSpeed: "3-4级", // 风速
  91. visibility: "20KM", //能见度
  92. humidity: "75.0%", // 湿度
  93. pressure: "994kPa", // 气压
  94. sunrise: "4:06", // 日出
  95. sunset: "18:50", // 日落
  96. };
  97. },
  98. created() {
  99. // let that = this;
  100. // that.paramsId = that.$route.params.wpId
  101. },
  102. mounted() {
  103. this.sourceMap = this.data;
  104. },
  105. watch: {
  106. data(res) {
  107. this.sourceMap = res;
  108. },
  109. time(value) {
  110. this.nowTime = value;
  111. },
  112. },
  113. };
  114. </script>
  115. <style lang="less" scoped>
  116. .wind-site-weather {
  117. background: rgba(255, 255, 255, 0.1);
  118. padding: 8px;
  119. display: inline-block;
  120. border: 1px solid #536268;
  121. .title {
  122. font-size: @fontsize;
  123. color: @gray;
  124. }
  125. .weather {
  126. display: inline-flex;
  127. .weather-info {
  128. display: flex;
  129. .title {
  130. display: inline-block;
  131. }
  132. .weather-icon {
  133. width: 50px;
  134. height: 50px;
  135. margin-right: 8px;
  136. }
  137. .temperature-info {
  138. display: flex;
  139. .temperature {
  140. font-size: 1.5625vw;
  141. }
  142. .other {
  143. margin-left: -32px;
  144. margin-right: 8px;
  145. div {
  146. text-align: right;
  147. margin: 8px 0;
  148. }
  149. span {
  150. font-size: 12px;
  151. margin-left: 24px;
  152. }
  153. }
  154. }
  155. }
  156. .other-info {
  157. text-align: center;
  158. font-size: 12px;
  159. .svg-icon {
  160. margin: auto;
  161. }
  162. .text {
  163. color: @gray;
  164. width: 50px;
  165. }
  166. .value {
  167. margin: 4px 0;
  168. }
  169. .col + .col {
  170. margin-left: 8px;
  171. }
  172. }
  173. }
  174. }
  175. </style>