diff --git a/src/components/PlayerInfo.vue b/src/components/PlayerInfo.vue
new file mode 100644
index 0000000..b40bff9
--- /dev/null
+++ b/src/components/PlayerInfo.vue
@@ -0,0 +1,46 @@
+
+ {{playerWeapons}}
+
+
+
+
+
diff --git a/src/components/PlayerList.vue b/src/components/PlayerList.vue
index 74ca223..226e6bf 100644
--- a/src/components/PlayerList.vue
+++ b/src/components/PlayerList.vue
@@ -142,6 +142,7 @@ export default defineComponent({
}
.playerTable {
+ grid-area: list;
margin-right: 1rem;
overflow: auto;
height: 100%;
diff --git a/src/views/PlayerView.vue b/src/views/PlayerView.vue
index 6f85782..bcaf25e 100644
--- a/src/views/PlayerView.vue
+++ b/src/views/PlayerView.vue
@@ -12,8 +12,8 @@
-->
-
+
@@ -37,6 +38,7 @@ import { Store, useStore } from 'vuex'
import { Player, Weapon, Server } from '@/store/index'
import PlayerList from '@/components/PlayerList.vue'
import PlayerChart from '@/components/PlayerChart.vue'
+import PlayerInfo from '@/components/PlayerInfo.vue'
import { defineComponent } from 'vue'
import VueMultiselect from 'vue-multiselect'
import 'vue-multiselect/dist/vue-multiselect.css'
@@ -44,7 +46,7 @@ import 'vue-multiselect/dist/vue-multiselect.css'
export default defineComponent({
name: 'PlayerView',
components: {
- PlayerList, PlayerChart, VueMultiselect
+ PlayerList, PlayerChart, VueMultiselect, PlayerInfo
},
data () {
@@ -83,13 +85,15 @@ export default defineComponent({
}
},
watch: {
- test: function (newval) {
- console.log(newval)
+ playerHighlighted: function (newval:string) {
+ this.fetchPlayerData({ player: newval, ...this.filters })
}
},
methods: {
+ async fetchPlayerData ({ player, server }: { player?: string, server?:string }) {
+ if (!this.store.getters.getWeaponList({ player, server })) return await this.store.dispatch('fetchWeapons', { player, server })
+ },
async changeFilter ({ weapon, server }: { weapon?: string, server?: string }) {
- console.log(weapon)
const filters = JSON.parse(JSON.stringify(this.filters))
if (weapon !== undefined) filters.weapon = weapon
if (server !== undefined) filters.server = server
@@ -98,6 +102,7 @@ export default defineComponent({
const promises = []
if (!this.store.getters.getPlayerList(filters)) promises.push(this.store.dispatch('fetchPlayers', filters))
if (!this.store.getters.getWeaponList(filters)) promises.push(this.store.dispatch('fetchWeapons', filters))
+ promises.push(this.fetchPlayerData({ player: this.playerHighlighted, ...filters }))
await Promise.all(promises)
// Delay the update of filters propery after we fetch the data to the API as changing it will cause subcomponents to reload before data is fetched
this.filters = filters
@@ -116,6 +121,9 @@ export default defineComponent({
/* height:100%; */
display: grid;
overflow: auto;
+ grid-template-areas:
+ 'list chart'
+ 'list info';
grid-template-columns: 50% 50%;
}
@@ -125,11 +133,14 @@ export default defineComponent({
/* height:100%; */
display: grid;
overflow: auto;
+ grid-template-areas:
+ 'list list';
grid-template-columns: 100%;
width: calc(100vw - 1em);
margin: 0 0rem 1rem 1rem;
}
- .multiselect{
+
+ .multiselect {
width: calc(100% - 1em)
}
}