//import axios from 'axios'
export const state = () => ({
lang: '',
error: {},
message: {},
entry:{
nav: {
brandLabel: {},
brandUrl: '',
menu: [],
},
userRole: '',
appParams:{
organization:{},
country:{},
}
}
})
export const mutations = {
setLang(state, lang) {
state.lang=lang;
},
clearError(state){
//state.error=Object.assign({});
//if ("message" in state.error)
state.error={};
},
clearMessage(state){
state.message={};
},
setBrandLabel(state, val){
state.entry.nav.brandLabel = val
},
setBrandUrl(state, val){
state.entry.nav.brandUrl = val
},
setMenu(state, val){
state.entry.nav.menu = val
},
setUserRole(state, val){
state.entry.userRole = val
},
setOrganization(state, val){
state.entry.appParams.organization = val
},
setCountry(state, val) {
state.entry.appParams.country = val
},
}
export const actions = {
async getMenu({state, commit, $axios }){
await this.$axios.get('menu')
.then(response=>{
//console.log(response.data)
let d = response.data;
commit('setBrandLabel', d.brandLabel)
commit('setBrandUrl', d.brandUrl)
commit('setMenu', d.menu)
commit('setLang', d.lang)
commit('setUserRole', d.userRole)
commit('setOrganization', d.appParams.organization)
commit('setCountry', d.appParams.country)
//console.log(state.entry)
return Promise.resolve(d.lang);
})
.catch(e => {
state.error = e.response;
});
}
}
export const getters = {
lang: state => state.lang,
userRole: state => state.entry.userRole,
error(state){
if ((state.error instanceof Object) && ('message' in state.error)){
return ('name' in state.error) ? `${state.error.name}. ${state.error.message}`.split(';') : state.error.message.split(';');
}
else if (JSON.stringify(state.error)=='{}' || state.error=='')
return false;
return [state.error];
},
message(state){
if(JSON.stringify(state.message)=='{}' || state.message=='') {
return false;
} else return state.message;
},
}
<template>
<div id="app">
<Navbar :nav="entry.nav" :lang="lang" />
<main>
{{test}}
<div class='container'>
<Nuxt />
</div>
</main>
</div>
</template>
<script>
import Navbar from '@/components/Navbar'
import {mapState, mapActions} from 'vuex'
import axios from 'axios'
export default {
components: {
Navbar
},
data(){
return {
test: '',
}
},
watch: {
'$route' (to, from) {
if (to.path.search(/^\/language/)>-1) {
this.changeLanguage(to,from);
}
this.$store.commit('clearError');
},
},
computed: {
...mapState(['lang', 'entry']),
},
methods: {
...mapActions(['getMenu']),
changeLanguage(to, from){
this.$router.replace(from.path);
if (this.lang!=to.params.lang)
{
this.setLang(to.params.lang);
this.sendLang(to.path);
}
},
sendLang(path){
axios.put(path)
.catch(e=>{
this.$store.dispatch('setError', e);
});
},
setLang(lang){
this.$store.commit('setLang', lang);
},
},
//*************************************** после добавления этого кода начинает рендериться как надо
async fetch() {
const t = await fetch('http://localhost:8000/menu').then(res =>
res.json())
},
asyncData() {
return {
name: 'Alex',
food: 'apple'
}
},
//*********************************конец странного и непонятного кода
created(){
this.getMenu()
},
}
</script>
<template>
<div class="home">
<h1>front page</h1>
<img alt="Vue logo" class='front-logo' src="../assets/logo-front.png">
<FrontGuest v-if="userRole == 'roleGuest'" :msg = "voc.h1[lang]"/>
<FrontUser v-if="userRole == 'roleUser' || userRole == 'roleAdmin'" :msg = "voc.h1[lang]"/>
<div class="generate"></div>
</div>
</template>
<script>
import FrontGuest from '@/components/FrontPage/FrontGuest.vue'
import FrontUser from '@/components/FrontPage/FrontUser.vue'
import translations from '@/components/FrontPage/translations';
export default {
components: {
FrontGuest, FrontUser
},
data(){
return {
name: 'Home',
voc: translations,
}
},
head: {
title: 'Home page',
data() {
return {
voc: translations,
}
},
computed: {
lang(){
return this.$store.getters.lang;
},
userRole() {
return this.$store.getters.userRole;
},
},
}
</script>
'/api': 'http://localhost:8000/api'
mode: 'universal',
ip addr
выдал только 127.0.0.1 и какой то двойной ip:inet 192.168.5.177/24 brd 192.168.5.255 scope global noprefixroute dynamic eno50332176
openssl s_client -connect address:443
- сертификат отдает. Получается с файерволом все ок.