BuLi-Tipp Tabelle, Punkterechnung, Rangliste weiter programmiert

This commit is contained in:
R40fendt
2025-05-03 22:48:27 +02:00
parent 6bc82f96a2
commit 1c1069a7a3
6 changed files with 76 additions and 65 deletions

View File

@@ -21,7 +21,7 @@
<td>Punkte</td>
</tr>
<tr v-for="(user, i) in users">
<td>{{ i }}</td>
<td>{{ i+1 }}</td>
<td>
<!-- <iframe class="iframeRanglisteDetailansicht"
data-src="">Detailansicht User 1</iframe> -->

View File

@@ -1,26 +1,20 @@
<script lang="ts">
export default {
props: {
users: {
type: Array,
type: Array<any>,
required: true,
},
spieltage: {
type: null,
required: true,
},
},
computed: {
spieltage() {
let result=[
[5,10,15,20,25,30],
[5,10,15,20,25,30],
[5,10,15,20,25,30]
];
return result;
},
},
methods: {
tagessumme(spieltag:number, user:number){
return 5;
}
}
};
</script>
@@ -29,22 +23,22 @@ export default {
<br /><br />
<h2>Punktetabelle</h2>
<div id="load-table-btn-container">
<!--<div id="load-table-btn-container">
<button id="load-table-btn">Punkte ausrechnen</button>
</div>
</div>-->
<table>
<tbody>
<tr>
<td>Tag</td>
<td v-for="user in users">{{ user.name }}</td>
<td v-for="spieltag in spieltage[0]">{{ spieltag.user.name }}</td>
</tr>
<tr v-for="spieltag,i in spieltage">
<tr v-for="spieltag, i in spieltage">
<td>{{ i+1 }}</td>
<!-- Modal -->
<!-- Open BTN -->
<td class="as-link" v-for="userpoints in spieltag">{{ userpoints }}</td>
<td class="as-link" v-for="userpoints in spieltag">{{ userpoints.points }}</td>
</tr>
<tr>

View File

@@ -1,7 +1,9 @@
import { createApp } from "vue";
import App from "./App.vue";
import router from "./router";
import AsyncComputed from "vue-async-computed";
createApp(App)
.use(router)
.use(AsyncComputed)
.mount("#app");

View File

@@ -6,6 +6,8 @@ import Uebersicht from "../components/bulitipp/Uebersicht.vue";
import Rangliste from "../components/bulitipp/Rangliste.vue";
import Paarungsergebnisse from "../components/bulitipp/Paarungsergebnisse.vue";
import Tabelle from "../components/bulitipp/Tabelle.vue";
import $ from "jquery";
import RitzenbergenLib from "../ritzenbergenlib.ts";
export default {
components: {
@@ -15,51 +17,36 @@ export default {
Uebersicht,
Rangliste,
Paarungsergebnisse,
Tabelle
Tabelle,
},
asyncComputed: {
async users() {
return fetch(RitzenbergenLib.api("/bulitipp/get-users.php"))
.then((response) => response.json())
.then((result) => {
result.forEach((user, i) => {
let sum = 0;
this.spieltage.forEach((spieltag) => {
let points = spieltag.find((element) => {
return element.user.id === user.id;
});
sum += points.points;
});
user.points = sum;
});
})
.catch((error) => console.error("Error:", error));
},
},
computed: {
tippenoffen() {
return this.$route.path === "/bulitipp/tippen";
},
users() {
return [
{
id: 1,
name: "User 1",
points: 10,
kuerzel: "U1",
},
{
id: 2,
name: "User 2",
points: 20,
kuerzel: "U2",
},
{
id: 3,
name: "User 3",
points: 10,
kuerzel: "U3",
},
{
id: 4,
name: "User 4",
points: 20,
kuerzel: "U4",
},
{
id: 5,
name: "User 5",
points: 10,
kuerzel: "U5",
},
{
id: 6,
name: "User 6",
points: 20,
kuerzel: "U6",
},
].sort((a, b) => b.points - a.points);
sortedUsers() {
if(this.users instanceof Array) return [...this.users].sort((a, b) => b.points - a.points);
},
teams() {
return {
@@ -186,11 +173,29 @@ export default {
},
];
},
spieltage() {
let result: number[][] = [];
$.ajax(RitzenbergenLib.api("/bulitipp/ts.php"), {
async: false,
success(data) {
console.log("success");
result = JSON.parse(data);
},
});
return result;
},
},
methods: {
tippenschliessen() {
this.$router.push("/bulitipp");
},
gs(i: number) {
let result = 0;
this.spieltage[i].forEach((element) => {
result += element;
});
return result;
},
},
};
</script>
@@ -226,30 +231,29 @@ export default {
<h1>Test</h1>
</Modal>
<Uebersicht :users="users" />
<!-- Rangliste -->
<Rangliste :users="users"/>
<Rangliste :users="sortedUsers" />
<!-- Paarungsergebnisse -->
<Paarungsergebnisse :paarungen="paarungen" :teams="teams"/>
<Paarungsergebnisse :paarungen="paarungen" :teams="teams" />
<!-- Punktetabelle -->
<Tabelle :users="users"/>
<Tabelle :users="users" :spieltage="spieltage" />
<br />
<br />
<br />
<Footer />
</template>
<style scoped>
@import "../assets/css/bulitipp2.css";
#hero-17-u6k7q0xIhk{
#hero-17-u6k7q0xIhk {
margin-bottom: 100px;
}
</style>