better mode nav, from concernement & main menu

This commit is contained in:
Bachir Soussi Chiadmi 2023-07-03 14:26:11 +02:00
parent 6197db37ee
commit 524b815d37
4 changed files with 141 additions and 29 deletions

View File

@ -4,7 +4,7 @@
app (VueJs) app (VueJs)
part of https://figureslibres.io/gogs/bachir/docker-enfrancais part of https://figureslibres.io/gogs/bachir/docker-ouatterrir
..... .....

View File

@ -76,6 +76,11 @@ body{
@include btn(); @include btn();
display: block; display: block;
line-height: 2.1; line-height: 2.1;
&.disabled{
pointer-events: none;
opacity: 0.4;
cursor: default;
}
} }
} }
} }
@ -108,22 +113,59 @@ body{
>header{ >header{
display: flex; display: flex;
height: 8rem; // height: 8rem;
flex-direction: column; flex-direction: column;
justify-content: flex-end; justify-content: flex-end;
label, h3{ div.pre-header{
// height: 70px; min-height: 10em;
box-sizing: border-box; display: flex;
// padding: 0 0 1em 0; flex-direction: column;
// flex-grow: auto; justify-content: flex-end;
label, h3{
// height: 70px;
box-sizing: border-box;
// padding: 0 0 1em 0;
// flex-grow: auto;
}
h3{
font-weight: 400;
font-size: 1.323em;
}
span.menacemaintient{
display: block;
font-weight: 100;
font-size: 0.882em;
padding: 1em 0 1em 0;
}
} }
h2{ div.concernement-cartouche{
font-weight: 400; h2{
font-size: 1.512em; font-weight: 400;
} font-size: 1.323em;
h3{ // &.faded{
font-weight: 400; // font-weight: 100;
font-size: 1.2em; // }
}
nav.icons{
ul{
display: flex;
flex-direction: row;
li{
margin: 0.4em 0.6em 0 0;
>svg{
display: inline-block;
$d: 35px;
width:$d; height:$d;
border-radius: $d * 0.5;
background-color: #fff;
padding: 2px;
box-sizing: border-box;
color: #333;
// font-size: 2em;
}
}
}
}
} }
} }

View File

@ -55,7 +55,7 @@ export default {
...mapState(ConcernementsStore,['map_mode']), ...mapState(ConcernementsStore,['map_mode']),
...mapState(ConcernementsStore,['concernements']), ...mapState(ConcernementsStore,['concernements']),
...mapState(ConcernementsStore,['concernementsByID']), ...mapState(ConcernementsStore,['concernementsByID']),
// ...mapState(ConcernementsStore,['opened_concernement']), ...mapState(ConcernementsStore,['opened_concernement']),
...mapState(CommonStore,['hover_elmt']), ...mapState(CommonStore,['hover_elmt']),
...mapState(CommonStore,['paper_symbol_definitions']) ...mapState(CommonStore,['paper_symbol_definitions'])
}, },
@ -919,22 +919,51 @@ export default {
<nav id="map-nav"> <nav id="map-nav">
<ul> <ul>
<li> <li>
<a href="#terraindevie" @click="setMapMode('terraindevie')"><span class="icon terraindevie"></span> terrain de vie</a> <a
href="#terraindevie" @click="setMapMode('terraindevie')"
>
<span class="icon terraindevie"></span> terrain de vie
</a>
</li> </li>
<li> <li>
<a href="#proximite" @click="setMapMode('proximite')"><span class="icon proximite"></span> proximité</a> <a
href="#proximite" @click="setMapMode('proximite')"
:class="{ disabled: opened_concernement && !opened_concernement.has_proximite }"
>
<span class="icon proximite"></span> proximité
</a>
</li> </li>
<li> <li>
<a href="#superposition" @click="setMapMode('superposition')"><span class="icon superposition"></span> superposition</a> <a
href="#superposition" @click="setMapMode('superposition')"
:class="{ disabled: opened_concernement && !opened_concernement.has_superposition }"
>
<span class="icon superposition"></span> superposition
</a>
</li> </li>
<li> <li>
<a href="#puissancedagir" @click="setMapMode('puissancedagir')"><span class="icon puissancedagir"></span> puissance d'agir</a> <a
href="#puissancedagir" @click="setMapMode('puissancedagir')"
:class="{ disabled: opened_concernement && !opened_concernement.has_puissancedagir }"
>
<span class="icon puissancedagir"></span> puissance d'agir
</a>
</li> </li>
<li> <li>
<a href="#action" @click="setMapMode('action')"><span class="icon action"></span> action</a> <a
href="#action" @click="setMapMode('action')"
:class="{ disabled: opened_concernement && !opened_concernement.has_agissantes }"
>
<span class="icon action"></span> action
</a>
</li> </li>
<li> <li>
<a href="#doleancer" @click="setMapMode('doleancer')"><span class="icon doleancer"></span> cercle politique</a> <a
href="#doleancer" @click="setMapMode('doleancer')"
:class="{ disabled: opened_concernement && !opened_concernement.has_doleance }"
>
<span class="icon doleancer"></span> cercle politique
</a>
</li> </li>
</ul> </ul>
</nav> </nav>

View File

@ -10,13 +10,17 @@ import gql from 'graphql-tag'
import GQL from '@api/graphql-axios' import GQL from '@api/graphql-axios'
import EntiteFields from '@api/gql/entite.fragment.gql' import EntiteFields from '@api/gql/entite.fragment.gql'
import SvgIcon from '@jamescoyle/vue-icon';
import { mdiHeadphones } from '@mdi/js';
export default { export default {
props: ['id', 'eid'], props: ['id', 'eid'],
data(){ data(){
return { return {
entite: null, entite: null,
opened_besoin_id: null opened_besoin_id: null,
headphones_path: mdiHeadphones
} }
}, },
computed: { computed: {
@ -32,7 +36,10 @@ export default {
...mapState(ConcernementsStore,['p_reception_et_traitement']), ...mapState(ConcernementsStore,['p_reception_et_traitement']),
...mapState(ConcernementsStore,['p_mise_en_oeuvre_decision']), ...mapState(ConcernementsStore,['p_mise_en_oeuvre_decision']),
...mapState(ConcernementsStore,['p_reception_application_decision']), ...mapState(ConcernementsStore,['p_reception_application_decision']),
...mapState(CommonStore,['hover_elmt']) ...mapState(CommonStore,['hover_elmt']),
display_concernement(){
return this.ct_concernement && !this.entite && this.map_mode !== 'puissancedagir'&& this.map_mode !== 'doleancer';
}
}, },
created () { created () {
console.log(`Concernement view created, id: ${this.id}, eid: ${this.eid}, opened_concernement:${this.opened_concernement}`); console.log(`Concernement view created, id: ${this.id}, eid: ${this.eid}, opened_concernement:${this.opened_concernement}`);
@ -70,6 +77,7 @@ export default {
methods: { methods: {
...mapActions(ConcernementsStore,['openCloseConcernements']), ...mapActions(ConcernementsStore,['openCloseConcernements']),
...mapActions(ConcernementsStore,['setOpenedEntityId']), ...mapActions(ConcernementsStore,['setOpenedEntityId']),
...mapActions(ConcernementsStore,['setMapMode']),
openEntity(){ openEntity(){
this.setOpenedEntityId(parseInt(this.eid)) this.setOpenedEntityId(parseInt(this.eid))
this.loadEntite() this.loadEntite()
@ -101,6 +109,7 @@ export default {
} }
}, },
components: { components: {
SvgIcon
} }
} }
@ -109,15 +118,47 @@ export default {
<template> <template>
<section v-if="opened_concernement" class="concernement"> <section v-if="opened_concernement" class="concernement">
<header v-if="concernements_loaded"> <header v-if="concernements_loaded">
<label <div class="pre-header">
v-if="ct_concernement && !entite && map_mode !== 'puissancedagir'&& map_mode !== 'doleancer'" <!-- concernement -->
<label
v-if="display_concernement"
> >
{{ ct_concernement.title.description }} {{ ct_concernement.title.description }}
</label> </label>
<h3 v-if="entite">{{ entite.title }}</h3> <!-- entite -->
<span v-if="entite && opened_concernement.entites_byid[eid].menacemaintien < 0">menace</span> <h3 v-if="entite">{{ entite.title }}</h3>
<span v-if="entite && opened_concernement.entites_byid[eid].menacemaintien > 0">maintient</span> <span v-if="entite && opened_concernement.entites_byid[eid].menacemaintien < 0" class="menacemaintient">menace</span>
<h2>{{ opened_concernement.title }}</h2> <span v-if="entite && opened_concernement.entites_byid[eid].menacemaintien > 0" class="menacemaintient">maintient</span>
</div>
<div class="concernement-cartouche">
<h2 :class='{ faded: !display_concernement}'>{{ opened_concernement.title }}</h2>
<nav class="icons">
<ul>
<li v-if="opened_concernement.has_recit" >
<svg-icon type="mdi" :path="headphones_path"></svg-icon>
</li>
<li>
<a href="#terraindevie" @click="setMapMode('terraindevie')"><span class="icon terraindevie"></span></a>
</li>
<li v-if="opened_concernement.has_puissancedagir" >
<a href="#puissanceagir" @click="setMapMode('puissanceagit')"><span class="icon puissancedagir"></span></a>
</li>
<li v-if="opened_concernement.has_proximite" >
<a href="#proximite" @click="setMapMode('proximite')"><span class="icon proximite"></span></a>
</li>
<li v-if="opened_concernement.has_superposition" >
<a href="#superposition" @click="setMapMode('superposition')"><span class="icon superposition"></span></a>
</li>
<li v-if="opened_concernement.has_agissantes" >
<a href="#action" @click="setMapMode('action')"><span class="icon action"></span></a>
</li>
<li v-if="opened_concernement.has_doleance" >
<a href="#doleancer" @click="setMapMode('doleancer')"><span class="icon doleancer"></span></a>
</li>
</ul>
</nav>
</div>
</header> </header>
<!-- concernement --> <!-- concernement -->
<section <section