Some optimizations and virtual list

This commit is contained in:
2023-05-04 21:35:33 +02:00
parent 7755022227
commit dc772a2dab
10 changed files with 203 additions and 70 deletions
+6 -16
View File
@@ -1,16 +1,5 @@
<template>
<div id="filters">
<!-- <input type="number" min="0" v-model="filters.minKills">
<input type="number" min="0" v-model="filters.minDeaths"> -->
<!-- <select v-on:change="changeFilter({ server: ($event.target as HTMLInputElement).value })">
<option></option>
<option v-for="(serverData) in servers" v-bind:key="serverData.id" :value="serverData.id">{{ serverData.name }}
</option>
</select>
<select v-on:change="changeFilter({ weapon: ($event.target as HTMLInputElement).value })">
<option></option>
<option v-for="weaponId in sortedWeaponList" v-bind:key="weaponId" :value="weaponId">{{ weaponId }}</option>
</select> -->
<span class="multiselect-wrapper">
<VueMultiselect
selectLabel=""
@@ -67,6 +56,7 @@
:playerHighlighted="playerHighlighted?.id"
>
</PlayerList>
<PlayerChart
:filters="filters"
v-on:highlightPlayer="highlight_player"
@@ -86,7 +76,7 @@ import { Player, Weapon, Server, useKillStore, Filters } from '@/stores/kill'
import PlayerList from '@/components/PlayerList.vue'
import PlayerChart from '@/components/PlayerChart.vue'
import WeaponChart from '@/components/WeaponChart.vue'
import { Ref, defineComponent, toRaw, unref } from 'vue'
import { Ref, defineComponent, unref } from 'vue'
import VueMultiselect from 'vue-multiselect'
import 'vue-multiselect/dist/vue-multiselect.css'
import weapons from '../stores/weapons.json'
@@ -171,9 +161,9 @@ export default defineComponent({
if (!this.players) return []
const players = Object.entries(this.players).map((e) => ({
id: e[0],
...toRaw(e[1].value)
...e[1]._rawValue
}))
return players.sort((a: Player, b: Player) => {
return players.sort((a, b) => {
if (a.username < b.username) {
return -1
}
@@ -202,7 +192,7 @@ export default defineComponent({
handler (newValue) {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const { server: _, weapon: _2, ...withoutFilters } = this.$route.query
router.push({ query: { ...newValue, ...withoutFilters } }).then(e => { console.log(e) })
router.push({ query: { ...newValue, ...withoutFilters } })// .then(e => { console.log(e) })
},
deep: true
},
@@ -210,7 +200,7 @@ export default defineComponent({
if (newValue?.id === oldValue?.id) return
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const { player: _, ...withoutPlayer } = this.$route.query
router.push({ query: { player: newValue?.id, ...withoutPlayer } }).then(e => { console.log(e) })
router.push({ query: { player: newValue?.id, ...withoutPlayer } })// .then(e => { console.log(e) })
},
'$route' (to) {
if (this.playerHighlighted?.id !== to.query.player) {