wind-site-weather.vue 4.4 KB

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