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
|
Dienstarten
|
||||||
</v-list-item-title>
|
</v-list-item-title>
|
||||||
</v-list-item>
|
</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>
|
</v-list>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ const url = {
|
||||||
freeDrinkListHistory: main + 'freeDrinkListHistory',
|
freeDrinkListHistory: main + 'freeDrinkListHistory',
|
||||||
deleteDrinkListHistory: main + 'deleteDrinkListHistory',
|
deleteDrinkListHistory: main + 'deleteDrinkListHistory',
|
||||||
freeDrinkListReasons: main + 'freeDrinkListReasons',
|
freeDrinkListReasons: main + 'freeDrinkListReasons',
|
||||||
|
freeDrinkTypes: main + 'freeDrinkTypes',
|
||||||
vorstand: {
|
vorstand: {
|
||||||
sm: {
|
sm: {
|
||||||
addUser: main + 'sm/addUser',
|
addUser: main + 'sm/addUser',
|
||||||
|
|
|
@ -28,6 +28,9 @@ import WorkgroupManagement from '@/components/vorstand/WorkgroupManagement'
|
||||||
import JobKindManager from '@/components/vorstand/JobKindManager'
|
import JobKindManager from '@/components/vorstand/JobKindManager'
|
||||||
import JobsRequest from '@/components/user/JobsRequest'
|
import JobsRequest from '@/components/user/JobsRequest'
|
||||||
import ResetPassword from '@/components/ResetPassword'
|
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)
|
Vue.use(VueRouter)
|
||||||
|
|
||||||
|
@ -82,6 +85,23 @@ const routes = [
|
||||||
path: 'jobkindmanagement',
|
path: 'jobkindmanagement',
|
||||||
name: 'jobkindManagement',
|
name: 'jobkindManagement',
|
||||||
component: JobKindManager
|
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_config: [],
|
||||||
free_drink_list_history: [],
|
free_drink_list_history: [],
|
||||||
free_drink_list_reasons: [],
|
free_drink_list_reasons: [],
|
||||||
|
free_drink_types: [],
|
||||||
free_drink_list_config_loading: false,
|
free_drink_list_config_loading: false,
|
||||||
free_drink_list_history_loading: false,
|
free_drink_list_history_loading: false,
|
||||||
free_drink_list_reasons_loading: false,
|
free_drink_list_reasons_loading: false,
|
||||||
|
free_drink_types_loading: false,
|
||||||
snackbar_messages: []
|
snackbar_messages: []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,6 +57,12 @@ const mutations = {
|
||||||
},
|
},
|
||||||
set_free_drink_list_reasons(state, data) {
|
set_free_drink_list_reasons(state, data) {
|
||||||
state.free_drink_list_reasons = 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 {
|
} finally {
|
||||||
commit('set_free_drink_list_reasons_loading', false)
|
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) {
|
free_drink_list_reasons_loading(state) {
|
||||||
return state.free_drink_list_reasons_loading
|
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