stats by area
Gitea Actions Demo / build_and_push (push) Failing after 57s
Details
Gitea Actions Demo / build_and_push (push) Failing after 57s
Details
This commit is contained in:
parent
c0d0a3e8ae
commit
1b7c1bd6ef
|
|
@ -103,6 +103,19 @@
|
||||||
<div class="workout-item-params-pointer" v-else><a @click="showModalLink = !showModalLink">Добавить</a> </div>
|
<div class="workout-item-params-pointer" v-else><a @click="showModalLink = !showModalLink">Добавить</a> </div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div v-if="!isEmpty(areaAvgData)" class="area-data">
|
||||||
|
<h4>Данные участка</h4>
|
||||||
|
<div class="workout-item-params" v-for="(item, index) in areaAvgData" :key="item">
|
||||||
|
<div class="workout-item-params-name">{{index}}:</div>
|
||||||
|
<div class="workout-item-params-value">{{ item }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
Чтобы увидеть информацию по области, выделите область на графике
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<VaButton v-on:click="resetChartZoom()" preset="secondary" color="textPrimary" id="zoom-botton">
|
<VaButton v-on:click="resetChartZoom()" preset="secondary" color="textPrimary" id="zoom-botton">
|
||||||
|
|
@ -186,6 +199,10 @@ interface Props {
|
||||||
isPrivate: boolean,
|
isPrivate: boolean,
|
||||||
dzenLink?: string
|
dzenLink?: string
|
||||||
}
|
}
|
||||||
|
interface AvgData {
|
||||||
|
[key: string]: string;
|
||||||
|
}
|
||||||
|
const areaAvgData = ref<AvgData>({});
|
||||||
const markedCoordinats = ref<Array<Array<number>>>([]);
|
const markedCoordinats = ref<Array<Array<number>>>([]);
|
||||||
const { workoutItem, data, mapCenter, lineCoordinates, dzenLink: dzenLinkProps } = defineProps<Props>()
|
const { workoutItem, data, mapCenter, lineCoordinates, dzenLink: dzenLinkProps } = defineProps<Props>()
|
||||||
const dzenLink = ref(dzenLinkProps);
|
const dzenLink = ref(dzenLinkProps);
|
||||||
|
|
@ -239,6 +256,14 @@ const chartPlugins = [
|
||||||
mapX: mapX,
|
mapX: mapX,
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
function isEmpty(obj: any) {
|
||||||
|
for (const prop in obj) {
|
||||||
|
if (Object.hasOwn(obj, prop)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
const chartOptions = {
|
const chartOptions = {
|
||||||
animation: {
|
animation: {
|
||||||
duration: 0
|
duration: 0
|
||||||
|
|
@ -305,18 +330,7 @@ const chartOptions = {
|
||||||
let show_data = [];
|
let show_data = [];
|
||||||
for (let i = 0; i < data.datasets.length; i++) {
|
for (let i = 0; i < data.datasets.length; i++) {
|
||||||
let value = data.datasets[i].label + " :" + Math.floor(data.datasets[i].data[context.dataIndex])
|
let value = data.datasets[i].label + " :" + Math.floor(data.datasets[i].data[context.dataIndex])
|
||||||
if (data.datasets[i].label == "Скорость") {
|
value += getUnit(data.datasets[i].label)
|
||||||
value = value + " км/ч";
|
|
||||||
}
|
|
||||||
if (data.datasets[i].label == "Пульс") {
|
|
||||||
value = value + " уд/мин";
|
|
||||||
}
|
|
||||||
if (data.datasets[i].label == "Мощность") {
|
|
||||||
value = value + " Ватт";
|
|
||||||
}
|
|
||||||
if (data.datasets[i].label == "Подъем") {
|
|
||||||
value = value + " м";
|
|
||||||
}
|
|
||||||
show_data.push(value);
|
show_data.push(value);
|
||||||
}
|
}
|
||||||
return show_data;
|
return show_data;
|
||||||
|
|
@ -347,6 +361,14 @@ const chartOptions = {
|
||||||
end = lineCoordinates.length;
|
end = lineCoordinates.length;
|
||||||
}
|
}
|
||||||
markedCoordinats.value = lineCoordinates.slice(start, end);
|
markedCoordinats.value = lineCoordinates.slice(start, end);
|
||||||
|
let avgData: AvgData = {}
|
||||||
|
for (var key in data.datasets) {
|
||||||
|
const array = data.datasets[key].data.slice(start, end)
|
||||||
|
let sum = array.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
|
||||||
|
let average = sum / array.length;
|
||||||
|
avgData[data.datasets[key].label] = Math.floor(average).toString() + getUnit(data.datasets[key].label);
|
||||||
|
}
|
||||||
|
areaAvgData.value = avgData;
|
||||||
},
|
},
|
||||||
drag: {
|
drag: {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
|
|
@ -359,6 +381,21 @@ const chartOptions = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const getUnit = (label: string) => {
|
||||||
|
|
||||||
|
if (label == "Скорость") {
|
||||||
|
return " км/ч";
|
||||||
|
}
|
||||||
|
if (label == "Пульс") {
|
||||||
|
return " уд/мин";
|
||||||
|
}
|
||||||
|
if (label == "Мощность") {
|
||||||
|
return " Ватт";
|
||||||
|
}
|
||||||
|
if (label == "Подъем") {
|
||||||
|
return " м";
|
||||||
|
}
|
||||||
|
}
|
||||||
const axiosAuth = inject('axiosAuth') as AxiosInstance;
|
const axiosAuth = inject('axiosAuth') as AxiosInstance;
|
||||||
const saveLink = (hide: any) => {
|
const saveLink = (hide: any) => {
|
||||||
if (!dzenLink.value) {
|
if (!dzenLink.value) {
|
||||||
|
|
@ -430,6 +467,7 @@ const changePublic = (value: boolean) => {
|
||||||
|
|
||||||
const resetChartZoom = () => {
|
const resetChartZoom = () => {
|
||||||
resetZoom(chart.value.chart);
|
resetZoom(chart.value.chart);
|
||||||
|
areaAvgData.value = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -487,6 +525,9 @@ h3 {
|
||||||
font-family: sans-serif;
|
font-family: sans-serif;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
.area-data h4 {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
.workout-item-params {
|
.workout-item-params {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue