release v2.0.0 #4
|
@ -0,0 +1,55 @@
|
|||
<template>
|
||||
<div>
|
||||
<v-bottom-navigation v-model="bottom_nav" horizontal>
|
||||
<v-btn link :to="{ name: 'freeDrinkListMain' }">
|
||||
<span>Übersicht</span>
|
||||
</v-btn>
|
||||
<v-btn>
|
||||
<span>Liste 1</span>
|
||||
</v-btn>
|
||||
<v-btn>
|
||||
<span>Liste 2</span>
|
||||
</v-btn>
|
||||
<v-btn>
|
||||
<span>Liste 3</span>
|
||||
</v-btn>
|
||||
<v-btn link :to="{ name: 'freeDrinkListConfig' }">
|
||||
<span>Einstellungen</span>
|
||||
<v-icon>mdi-cogs</v-icon>
|
||||
</v-btn>
|
||||
</v-bottom-navigation>
|
||||
<div>
|
||||
<router-view />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapActions } from 'vuex'
|
||||
export default {
|
||||
name: 'FreeDrinkList',
|
||||
data() {
|
||||
return {
|
||||
bottom_nav: true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.get_free_drink_list_reasons()
|
||||
this.get_free_drink_list_config()
|
||||
this.get_free_drink_list_history()
|
||||
this.get_free_drink_types()
|
||||
this.getPriceList()
|
||||
},
|
||||
methods: {
|
||||
...mapActions('freeDrinkList', [
|
||||
'get_free_drink_list_config',
|
||||
'get_free_drink_list_history',
|
||||
'get_free_drink_list_reasons',
|
||||
'get_free_drink_types'
|
||||
]),
|
||||
...mapActions('priceList', ['getPriceList'])
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,76 @@
|
|||
<template>
|
||||
<div>
|
||||
<v-card tile>
|
||||
<v-card-title>
|
||||
Freigetränke
|
||||
</v-card-title>
|
||||
<v-card-text>
|
||||
<v-list>
|
||||
<v-list-item
|
||||
v-for="free_drink_config in free_drink_list_config"
|
||||
:key="free_drink_config.id"
|
||||
>
|
||||
<v-text-field
|
||||
outlined
|
||||
label="Label"
|
||||
:value="free_drink_config.label"
|
||||
/>
|
||||
<v-autocomplete
|
||||
outlined
|
||||
label="Zugeordnetes Getränk"
|
||||
:items="priceList"
|
||||
:item-text="item => {return item.name + '/' + (item.price_club/100).toFixed(2) + '€'}"
|
||||
item-value="id"
|
||||
:value="free_drink_config.drink"
|
||||
/>
|
||||
<v-autocomplete
|
||||
outlined
|
||||
label="Freigetränkaufnahme"
|
||||
multiple
|
||||
:items="free_drink_types"
|
||||
item-text="name"
|
||||
item-value="id"
|
||||
:value="free_drink_config.free_drink_types"
|
||||
/>
|
||||
<v-text-field
|
||||
outlined
|
||||
label="Preis in €"
|
||||
type="number"
|
||||
:value="(free_drink_config.price / 100).toFixed(2)"
|
||||
/>
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-btn @click="log">
|
||||
LOG
|
||||
</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
<v-card tile>
|
||||
<v-card-title>Gründe für Freigetränke</v-card-title>
|
||||
</v-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex'
|
||||
export default {
|
||||
name: 'FreeDrinkListConfig',
|
||||
methods: {
|
||||
log() {
|
||||
console.log(this.free_drink_list_config)
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('freeDrinkList', [
|
||||
'free_drink_list_config',
|
||||
'free_drink_list_reasons',
|
||||
'free_drink_types'
|
||||
]),
|
||||
...mapGetters('priceList', ["priceList"])
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,15 @@
|
|||
<template>
|
||||
<div>
|
||||
Übersicht
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "FreeDrinkListMain"
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
|
@ -31,6 +31,14 @@
|
|||
Dienstarten
|
||||
</v-list-item-title>
|
||||
</v-list-item>
|
||||
<v-list-item link :to="{name: 'freeDrinkList'}">
|
||||
<v-list-item-icon>
|
||||
<v-icon>mdi-beer</v-icon>
|
||||
</v-list-item-icon>
|
||||
<v-list-item-title>
|
||||
Freigetränke
|
||||
</v-list-item-title>
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@ const url = {
|
|||
freeDrinkListHistory: main + 'freeDrinkListHistory',
|
||||
deleteDrinkListHistory: main + 'deleteDrinkListHistory',
|
||||
freeDrinkListReasons: main + 'freeDrinkListReasons',
|
||||
freeDrinkTypes: main + 'freeDrinkTypes',
|
||||
vorstand: {
|
||||
sm: {
|
||||
addUser: main + 'sm/addUser',
|
||||
|
|
|
@ -28,6 +28,9 @@ import WorkgroupManagement from '@/components/vorstand/WorkgroupManagement'
|
|||
import JobKindManager from '@/components/vorstand/JobKindManager'
|
||||
import JobsRequest from '@/components/user/JobsRequest'
|
||||
import ResetPassword from '@/components/ResetPassword'
|
||||
import FreeDrinkList from '@/components/vorstand/FreeDrinkList'
|
||||
import FreeDrinkListMain from '@/components/vorstand/FreeDrinkList/FreeDrinkListMain'
|
||||
import FreeDrinkListConfig from '@/components/vorstand/FreeDrinkList/FreeDrinkListConfig'
|
||||
|
||||
Vue.use(VueRouter)
|
||||
|
||||
|
@ -82,6 +85,23 @@ const routes = [
|
|||
path: 'jobkindmanagement',
|
||||
name: 'jobkindManagement',
|
||||
component: JobKindManager
|
||||
},
|
||||
{
|
||||
path: 'freeDrinkList',
|
||||
name: 'freeDrinkList',
|
||||
component: FreeDrinkList,
|
||||
children: [
|
||||
{
|
||||
path: 'main',
|
||||
name: 'freeDrinkListMain',
|
||||
component: FreeDrinkListMain
|
||||
},
|
||||
{
|
||||
path: 'config',
|
||||
name: 'freeDrinkListConfig',
|
||||
component: FreeDrinkListConfig
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -6,9 +6,11 @@ const state = {
|
|||
free_drink_list_config: [],
|
||||
free_drink_list_history: [],
|
||||
free_drink_list_reasons: [],
|
||||
free_drink_types: [],
|
||||
free_drink_list_config_loading: false,
|
||||
free_drink_list_history_loading: false,
|
||||
free_drink_list_reasons_loading: false,
|
||||
free_drink_types_loading: false,
|
||||
snackbar_messages: []
|
||||
}
|
||||
|
||||
|
@ -55,6 +57,12 @@ const mutations = {
|
|||
},
|
||||
set_free_drink_list_reasons(state, data) {
|
||||
state.free_drink_list_reasons = data
|
||||
},
|
||||
set_free_drink_types(state, data) {
|
||||
state.free_drink_types = data
|
||||
},
|
||||
set_free_drink_types_loading(state, loading) {
|
||||
state.free_drink_types_loading = loading
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -158,6 +166,25 @@ const actions = {
|
|||
} finally {
|
||||
commit('set_free_drink_list_reasons_loading', false)
|
||||
}
|
||||
},
|
||||
async get_free_drink_types({ commit, dispatch, rootState }) {
|
||||
try {
|
||||
commit('set_free_drink_types_loading', true)
|
||||
const response = await axios.get(url.freeDrinkTypes, {
|
||||
headers: { Token: rootState.login.user.accessToken },
|
||||
timeout
|
||||
})
|
||||
commit('set_free_drink_types', response.data)
|
||||
} catch (e) {
|
||||
dispatch('connectionError/addError', null, { root: true })
|
||||
if (e.message == 'Network Error') {
|
||||
dispatch('connectionError/addError', null, { root: true })
|
||||
}
|
||||
if (e.response)
|
||||
if (e.response.status === 401) dispatch('logout', null, { root: true })
|
||||
} finally {
|
||||
commit('set_free_drink_types_loading', false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -234,6 +261,12 @@ const getters = {
|
|||
},
|
||||
free_drink_list_reasons_loading(state) {
|
||||
return state.free_drink_list_reasons_loading
|
||||
},
|
||||
free_drink_types(state) {
|
||||
return state.free_drink_types
|
||||
},
|
||||
free_drink_types_loading(state) {
|
||||
return state.free_drink_types_loading
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue