diff --git a/package-lock.json b/package-lock.json index 07377a4..42433f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "sloc": "^0.3.2", "striptags": "^3.2.0", "vue": "^3.5.13", + "vue-async-computed": "^4.0.1", "vue-router": "^4.5.0" }, "devDependencies": { @@ -2278,6 +2279,15 @@ } } }, + "node_modules/vue-async-computed": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/vue-async-computed/-/vue-async-computed-4.0.1.tgz", + "integrity": "sha512-INDaMHK7MSkfSLdIDSxmeFCeW+JO+Hj7wO+tVNE4u+W7ixSEPfGi4hlwBnv2pk/NmyDCTqSnmcfgxYZpofE5eQ==", + "license": "MIT", + "peerDependencies": { + "vue": "~3" + } + }, "node_modules/vue-router": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.0.tgz", diff --git a/package.json b/package.json index 6eebf92..9bf4a29 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "sloc": "^0.3.2", "striptags": "^3.2.0", "vue": "^3.5.13", + "vue-async-computed": "^4.0.1", "vue-router": "^4.5.0" }, "devDependencies": { diff --git a/src/components/bulitipp/Rangliste.vue b/src/components/bulitipp/Rangliste.vue index 76ae289..49e0b00 100644 --- a/src/components/bulitipp/Rangliste.vue +++ b/src/components/bulitipp/Rangliste.vue @@ -21,7 +21,7 @@ Punkte - {{ i }} + {{ i+1 }} diff --git a/src/components/bulitipp/Tabelle.vue b/src/components/bulitipp/Tabelle.vue index 1eba7a3..d4dcd82 100644 --- a/src/components/bulitipp/Tabelle.vue +++ b/src/components/bulitipp/Tabelle.vue @@ -1,26 +1,20 @@ @@ -29,22 +23,22 @@ export default {

Punktetabelle

-
+ - + - + - + diff --git a/src/main.ts b/src/main.ts index 3f0fb84..f8d2d06 100644 --- a/src/main.ts +++ b/src/main.ts @@ -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"); diff --git a/src/views/Bulitipp.vue b/src/views/Bulitipp.vue index ee0c8fd..d24e57f 100644 --- a/src/views/Bulitipp.vue +++ b/src/views/Bulitipp.vue @@ -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; + }, }, }; @@ -226,30 +231,29 @@ export default {

Test

- - - + - + - +


+
Tag{{ user.name }}{{ spieltag.user.name }}
{{ i+1 }}