Added selector

This commit is contained in:
Douglas Barone 2023-07-04 09:12:09 -04:00
parent 34668e7c17
commit 41e347d668
5 changed files with 83 additions and 10 deletions

View File

@ -4,19 +4,27 @@
Em desenvolvimento! Versão 0.0.0.½ Alpha Gambiarra Em desenvolvimento! Versão 0.0.0.½ Alpha Gambiarra
</div> </div>
<v-app> <v-app>
<v-main><RouterView /></v-main> <v-main>
<keep-alive>
<RouterView />
</keep-alive>
</v-main>
</v-app> </v-app>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { useAppStore } from './store/appStore' import { useAppStore } from './store/appStore'
import { onMounted } from 'vue' import { onMounted, onBeforeMount } from 'vue'
const appStore = useAppStore() const appStore = useAppStore()
onMounted(async () => { onMounted(async () => {
await appStore.fetchMe() await appStore.fetchMe()
}) })
onBeforeMount(() => {
appStore.selectedCampus = appStore.me?.campus || ''
})
</script> </script>
<style> <style>
.alpha-banner { .alpha-banner {

View File

@ -20,13 +20,18 @@
v-model.lazy="appStore.printerFilter" v-model.lazy="appStore.printerFilter"
/> />
<v-checkbox <v-select
class="ml-2" class="ml-3"
v-model="appStore.onlyMyCampus" :items="campiSelectItems"
v-model="appStore.selectedCampus"
@update:model-value="appStore.fetchPrinters" @update:model-value="appStore.fetchPrinters"
color="primary"
:label="`Apenas ${appStore.me?.campus}`"
hide-details hide-details
variant="solo"
density="compact"
style="max-width: 200px"
prepend-inner-icon="mdi-domain"
label="Campus"
rounded
/> />
<v-spacer /> <v-spacer />
<v-btn <v-btn
@ -59,6 +64,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { useAppStore } from '@/store/appStore' import { useAppStore } from '@/store/appStore'
import { removeJwtToken } from '@/auth' import { removeJwtToken } from '@/auth'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
@ -67,6 +73,57 @@ const appStore = useAppStore()
const router = useRouter() const router = useRouter()
const campiSelectItems = [
{
title: 'Todos',
value: ''
},
{
title: 'Reitoria',
value: 'RT'
},
{
title: 'Aquidauana',
value: 'AQ'
},
{
title: 'Campo Grande',
value: 'CG'
},
{
title: 'Corumbá',
value: 'CB'
},
{
title: 'Coxim',
value: 'CX'
},
{
title: 'Nova Andradina',
value: 'NA'
},
{
title: 'Ponta Porã',
value: 'PP'
},
{
title: 'Três Lagoas',
value: 'TL'
},
{
title: 'Jardim',
value: 'JD'
},
{
title: 'Naviraí',
value: 'NV'
},
{
title: 'Dourados',
value: 'DR'
}
]
function logout() { function logout() {
removeJwtToken() removeJwtToken()

View File

@ -9,7 +9,7 @@ export const useAppStore = defineStore('app', {
me: null as User | null, me: null as User | null,
printers: [] as any[], printers: [] as any[],
printerFilter: '', printerFilter: '',
onlyMyCampus: true, selectedCampus: '',
loadingPrinters: false loadingPrinters: false
}), }),
@ -19,7 +19,7 @@ export const useAppStore = defineStore('app', {
try { try {
this.printers = await api<any[]>( this.printers = await api<any[]>(
`printer?${new URLSearchParams({ `printer?${new URLSearchParams({
campus: this.onlyMyCampus ? this.me?.campus || '' : '' campus: this.selectedCampus
})}`, })}`,
{ method: 'GET' } { method: 'GET' }
) )

View File

@ -1,5 +1,13 @@
<template> <template>
<v-container fluid> <v-container fluid>
<v-alert
type="info"
v-if="appStore.filteredPrinters.length == 0 && appStore.printerFilter"
closable
variant="outlined"
>
Nenhuma impressora encontrada com este filtro
</v-alert>
<v-row> <v-row>
<v-col <v-col
cols="12" cols="12"

View File

@ -1,4 +1,4 @@
<template> <template>
<div>Hello</div> <div>Nada aqui.... Ainda ;)</div>
</template> </template>
<script lang="ts" setup></script> <script lang="ts" setup></script>