mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
121 lines
3.7 KiB
Vue
121 lines
3.7 KiB
Vue
<script setup lang="ts">
|
|
// @ts-nocheck
|
|
const { distance } = require("qth-locator");
|
|
|
|
import { setActivePinia } from "pinia";
|
|
import pinia from "../store/index";
|
|
setActivePinia(pinia);
|
|
|
|
import { settingsStore as settings } from "../store/settingsStore.js";
|
|
|
|
import { useStateStore } from "../store/stateStore.js";
|
|
const state = useStateStore(pinia);
|
|
|
|
function getDateTime(timestampRaw) {
|
|
var datetime = new Date(timestampRaw * 1000).toLocaleString(
|
|
navigator.language,
|
|
{
|
|
hourCycle: "h23",
|
|
year: "numeric",
|
|
month: "2-digit",
|
|
day: "2-digit",
|
|
hour: "2-digit",
|
|
minute: "2-digit",
|
|
second: "2-digit",
|
|
},
|
|
);
|
|
return datetime;
|
|
}
|
|
|
|
function getMaidenheadDistance(dxGrid) {
|
|
try {
|
|
|
|
return parseInt(distance(settings.remote.STATION.mygrid, dxGrid));
|
|
} catch (e) {
|
|
console.warn(e);
|
|
}
|
|
}
|
|
</script>
|
|
<template>
|
|
<div class="card mb-1 h-100">
|
|
<!--325px-->
|
|
<div class="card-header p-1">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-auto">
|
|
<i class="bi bi-list-columns-reverse" style="font-size: 1.2rem"></i>
|
|
</div>
|
|
<div class="col-10">
|
|
<strong class="fs-5">Heard stations</strong>
|
|
</div>
|
|
<div class="col-1 text-end">
|
|
<button
|
|
type="button"
|
|
id="openHelpModalHeardStations"
|
|
data-bs-toggle="modal"
|
|
data-bs-target="#heardStationsHelpModal"
|
|
class="btn m-0 p-0 border-0"
|
|
>
|
|
<i class="bi bi-question-circle" style="font-size: 1rem"></i>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card-body p-0" style="overflow-y: overlay">
|
|
<div class="table-responsive">
|
|
<!-- START OF TABLE FOR HEARD STATIONS -->
|
|
<table class="table table-sm" id="tblHeardStationList">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col" id="thTime">
|
|
<i id="hslSort" class="bi bi-sort-up"></i>Time
|
|
</th>
|
|
<th scope="col" id="thFreq">Freq</th>
|
|
<th scope="col" id="thDxcall">DXCall</th>
|
|
<th scope="col" id="thDxgrid">Grid</th>
|
|
<th scope="col" id="thDist">Dist</th>
|
|
<th scope="col" id="thType">Type</th>
|
|
<th scope="col" id="thSnr">SNR</th>
|
|
<!--<th scope="col">Off</th>-->
|
|
</tr>
|
|
</thead>
|
|
<tbody id="heardstations">
|
|
<!--https://vuejs.org/guide/essentials/list.html-->
|
|
<tr v-for="item in state.activities" :key="item[0]">
|
|
<td>
|
|
<span class="badge bg-secondary">{{
|
|
getDateTime(item[1].timestamp)
|
|
}}</span>
|
|
</td>
|
|
<td>
|
|
<span class="badge bg-secondary"
|
|
>{{ item[1].frequency / 1000 }} kHz</span
|
|
>
|
|
</td>
|
|
<td>
|
|
<span class="badge bg-secondary">{{ item[1].origin }}</span>
|
|
</td>
|
|
<td>
|
|
<span class="badge bg-secondary">{{ item[1].gridsquare }}</span>
|
|
</td>
|
|
<td>
|
|
<span class="badge bg-secondary"
|
|
>{{ getMaidenheadDistance(item[1].gridsquare) }} km</span
|
|
>
|
|
</td>
|
|
<td>
|
|
<span class="badge bg-secondary">{{ item[1].activity_type }}</span>
|
|
</td>
|
|
<td>
|
|
<span class="badge bg-secondary">{{ item[1].snr }}</span>
|
|
</td>
|
|
<!--<td>{{ item.offset }}</td>-->
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- END OF HEARD STATIONS TABLE -->
|
|
</div>
|
|
</div>
|
|
</template>
|