Newer
Older
shipFront / src / views / overview / weather.vue
[wangxitong] on 30 May 2022 3 KB v1.1.2
<template>
  <div class="container">
    <div class="title">洋流指标</div>
    <div class="content">
      <div class="block" v-for="(value,key,index) in data" :key="index">
        <item :data="value" />
      </div>
    </div>
    <div class="title" style="color:#50C55C">台风指标</div>
    <div class="content">
      <div class="block" v-for="(value,key,index) in data1" :key="index">
        <item :data="value" />
      </div>
    </div>
  </div>
</template>

<script>
  import Item from "./components/item";
  import { getTyphoonOcean, getTyphoonList,getShelterPosition} from "@/api/typhoon"
  import { dateToString } from '@/utils/formatDate'
export default {
  name: 'Weather',
  components: {Item},
  data() {
    return {
      data:[
        {name:'风速风向',value:'***°',color:'#50C55C'},
        {name:'海温',value:'',color:'#00f5ff'},
        {name:'气压',value:'',color:'#00f5ff'},
        {name:'海拔',value:'',color:'#00f5ff'},
        {name:'风浪方向/高度',value:'',color:'#50C55C'},
        {name:'涌浪方向/高度',value:'',color:'#00f5ff'},
        {name:'流向/流速',value:'***',color:'#00f5ff'},
        {name:'波浪预报',value:'*****************************************',color:'#00f5ff'},
      ],
    data1:[
      {name:'台风预报',value:'********************************************',color:'#50C55C'}
      ]
    }
  },
  mounted() {
    this.init()
  },
  methods: {
    init(){
      getShelterPosition().then(res => {
        if (res.code === 200) {
          let params = {
            lng: res.data.lng,
            lat: res.data.lat,
            date: dateToString(new Date(), 'y-m-d'),
            days: 0,
            hour: new Date().getHours()
          }
          getTyphoonOcean(params).then(res => {
            if (res.code === 200) {
              this.data[0].value =  res.data.windSpeed + 'm/s  '+res.data.windDir + '°'
              this.data[1].value = res.data.temperature + '℃ '
              this.data[2].value = res.data.pressure + 'hPa '
              this.data[3].value = res.data.altitude + 'm '
              this.data[4].value = res.data.waveDir + '° '+ res.data.waveHeight + 'm '
              this.data[5].value = res.data.swellDir + '° '+ res.data.swellHeight + 'm '
              this.data[6].value = res.data.oceanDir + '° '+ res.data.speed + 'm/s'
              this.data[7].value = '风浪:' + res.data.forecast.waveDir + '° '+ res.data.forecast.waveHeight + 'm\n' +
                '涌浪:' + res.data.forecast.swellDir + '° '+res.data.forecast.swellHeight + 'm'

            }
          })
        }
      })
      getTyphoonList().then(res => {
        if (res.code === 200) {
          if(res.data.length===0) {this.data1[0].value = '暂无台风'}
          else {
            this.data1[0].value = ''
            for(let i=0;i<res.data.length;i++){
              this.data1[0].value += (res.data[i].name+'台风('+res.data[i].lng+','+res.data[i].lat+'),'+ res.data[i].power +'级风 \n')
            }
          }
        }
      })
    }
  }
}
</script>

<style rel="stylesheet/scss" lang="scss" scoped>
  .container{
    background: url("../../assets/images/bg.png") no-repeat;
    -webkit-background-size: 100% 100%;
    background-size: 100% 100%;
    .title{
      font-size: 17px;
      color: #00f5ff;
      margin: 10px 0px 10px 20px;
      font-weight: bold;
    }
    .content{
      padding: 0px 20px;
      display: flex;
      flex-direction: column;
      flex: 1;
      .block{
        width: 100%;
        height: 38px;
      }
    }
  }
</style>