| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 | <template>  <div class="detail">    <nav-bar></nav-bar>    <van-cell-group>      <van-cell :title="info.deviceName" value-class="cell-title-value" title-style="width:100%;">        <template #right-icon v-if="info.time">          <van-tag v-if="info.endTime">告警结束</van-tag>          <van-tag v-else type="danger">正在告警</van-tag>        </template>      </van-cell>      <van-cell title="所属机构" :value="info.orgName" />      <van-cell title="告警分类" :value="dataTypeText"></van-cell>      <van-cell title="告警类型" :value="info.sourceTypeDes"></van-cell>      <van-cell title="告警开始时间" :value="renderTime(info.time)"></van-cell>      <van-cell title="告警结束时间" :value="renderTime(info.endTime)"></van-cell>      <van-cell title="持续时长" :value="durationText" />      <van-cell title="告警值" :value="valueText" />      <van-cell title="告警内容" :value="info.content" />      <van-cell title="处置时间" :value="renderTime(info.doTime)" />      <van-cell title="处置人" :value="info.doByUser" />      <van-cell title="处置内容" :value="info.doContent" />    </van-cell-group>  </div></template><script>import { detail } from '@/api/iot/alarmCenter.js'import NavBar from '@/components/NavBar'import dayjs from 'dayjs'import { durationText } from '@/utils/date.js'export default {  data() {    return {      info: {},      search: {        sensorId: this.$route.query.id      }    }  },  components: { NavBar },  computed: {    stateUpdateTimeText() {      if (this.info.stateUpdateTime == null) {        return '未上报'      }      return dayjs(this.info.stateUpdateTime).format('YYYY年M月D日H时m分')    },    dataTypeText() {      if (!this.info || this.info.dataType == null) {        return ''      }      if (this.info.dataType == '0') {        return '动环类告警'      } else if (this.info.dataType == '1') {        return '视频类告警'      } else {        return '未知'      }    },    durationText() {      let endTime = this.info.endTime ? this.info.endTime : new Date()      let minutes = dayjs(endTime).diff(this.info.time, 'minute')      if (minutes < 1) {        return dayjs(endTime).diff(this.info.time, 'second') + '秒'      } else {        return durationText(minutes)      }    },        valueText() {      if (!this.info || this.info.valueText == null) {        return ''      }      if(this.info.alarmValue && (this.info.alarmValue.includes("°C") || this.info.alarmValue.includes("%RH") ))        {          return this.info.alarmValue;        }        else{          return this.info.valueText        }    }  },  mounted() {    this.getInfo()  },  methods: {    getInfo() {      detail(this.search.sensorId).then(r => {        this.info = r.data      })    },    renderTime(dateTime) {      if (!dateTime) {        return ''      }      return dayjs(dateTime).format('YYYY年M月D日H时m分')    },  }}</script><style lang="scss" scoped>.cell-title-value {  display: none;}.detail {  margin: 15px;}.cell-gather-alarm-value {  color: #ee0a24;}</style>
 |