cleaned, started map_mode, added agissante, superposition, proximite fields to graphql

This commit is contained in:
Bachir Soussi Chiadmi 2023-04-26 10:10:29 +02:00
parent 94d5b6bd99
commit 82731a4884
6 changed files with 39 additions and 46 deletions

View File

@ -30,33 +30,6 @@ export default {
...mapActions(ConcernementsStore,['loadConcernements']), ...mapActions(ConcernementsStore,['loadConcernements']),
...mapActions(ConcernementsStore,['loadContentTypeDefinition']), ...mapActions(ConcernementsStore,['loadContentTypeDefinition']),
...mapActions(UserStore,['checkUser']), ...mapActions(UserStore,['checkUser']),
// sortedConcernements () {
// if (this.concernements.length) {
// let cs = this.concernements;
// cs.sort(function(a, b) {
// if (a.opened && !b.opened) {
// return 1;
// }
// if (!a.opened && b.opened) {
// return -1;
// }
// return 0;
// });
// return cs;
// // Object.keys(this.concernementsByID).forEach((id, i) => {
// // console.log(id);
// // if (!this.concernementsByID[id].opened) {
// // console.log('not opened');
// // cs[id] = this.concernementsByID[id];
// // }
// // });
// // console.log('filtered concernements', cs);
// // return cs;
// } else {
// return null
// }
// }
}, },
components: { components: {
MapConcernements, MapConcernements,
@ -87,11 +60,6 @@ export default {
:concernement="concernement" :concernement="concernement"
:opened="concernement.opened" :opened="concernement.opened"
/> />
<!-- <ConcernementMapItem
v-if="opened"
:concernement="opened"
:opened="opened.opened"
/> -->
</MapConcernements> </MapConcernements>
<div id="content"> <div id="content">
<RouterView /> <RouterView />

View File

@ -21,6 +21,15 @@ fragment ConcernementFields on Concernement {
entite { entite {
title title
id id
agissante
proximite {
id
title
}
superposition {
id
title
}
} }
} }
} }

View File

@ -53,6 +53,7 @@ export default {
}, },
props: ['concernement', 'opened'], props: ['concernement', 'opened'],
computed: { computed: {
...mapState(ConcernementsStore,['map_mode']),
...mapState(ConcernementsStore,['concernementsByID']), ...mapState(ConcernementsStore,['concernementsByID']),
...mapState(ConcernementsStore,['opened_entite_id']) ...mapState(ConcernementsStore,['opened_entite_id'])
}, },

View File

@ -21,7 +21,7 @@ export default {
if (this.infos.type === 'concernement') { if (this.infos.type === 'concernement') {
this.concernement = this.concernementsByID[this.infos.id]; this.concernement = this.concernementsByID[this.infos.id];
} else { } else {
this.entite = this.allEntitesById[this.infos.id]; this.entite = this.allEntitesById[this.infos.id].entite;
} }
}, },
mounted () { mounted () {
@ -40,7 +40,7 @@ export default {
if (n.type === 'concernement') { if (n.type === 'concernement') {
this.concernement = this.concernementsByID[n.id]; this.concernement = this.concernementsByID[n.id];
} else { } else {
this.entite = this.allEntitesById[n.id]; this.entite = this.allEntitesById[n.id].entite;
} }
}, },
deep: true deep: true

View File

@ -58,6 +58,7 @@ export default {
} }
}, },
computed: { computed: {
...mapState(ConcernementsStore,['map_mode']),
...mapState(ConcernementsStore,['concernements']), ...mapState(ConcernementsStore,['concernements']),
...mapState(ConcernementsStore,['concernementsByID']), ...mapState(ConcernementsStore,['concernementsByID']),
...mapState(ConcernementsStore,['opened']) ...mapState(ConcernementsStore,['opened'])
@ -105,6 +106,7 @@ export default {
this.animate() this.animate()
}, },
methods: { methods: {
...mapActions(ConcernementsStore,['setMapMode']),
...mapActions(ConcernementsStore,['openCloseConcernements']), ...mapActions(ConcernementsStore,['openCloseConcernements']),
...mapActions(ConcernementsStore,['resetConcernementOpened']), ...mapActions(ConcernementsStore,['resetConcernementOpened']),
animate () { animate () {
@ -236,23 +238,23 @@ export default {
<nav id="map-nav"> <nav id="map-nav">
<ul> <ul>
<li> <li>
<a href="#terraindevie">terrain de vie</a> <a href="#terraindevie" @click="setMapMode('terraindevie')">terrain de vie</a>
</li> </li>
<li> <li>
<a href="#proximite">proximité</a> <a href="#proximite" @click="setMapMode('proximite')">proximité</a>
</li> </li>
<li> <li>
<a href="#superposition">superposition</a> <a href="#superposition" @click="setMapMode('superposition')">superposition</a>
</li> </li>
<!-- <li>
<a href="#puissancedagir" @click="setMapMode('puissancedagir')">puissance d'agir</a>
</li> -->
<li> <li>
<a href="#puissancedagir">puissance d'agir</a> <a href="#action" @click="setMapMode('action')">action</a>
</li>
<li>
<a href="#action">action</a>
</li>
<li>
<a href="#doleancer">doléancer</a>
</li> </li>
<!-- <li>
<a href="#doleancer" @click="setMapMode('doleancer')">doléancer</a>
</li> -->
</ul> </ul>
</nav> </nav>
<ConcernementMapPopup <ConcernementMapPopup

View File

@ -16,18 +16,24 @@ import ConcernementFields from '@api/gql/concernement.fragment.gql'
export const ConcernementsStore = defineStore({ export const ConcernementsStore = defineStore({
id: 'concernements', id: 'concernements',
state: () => ({ state: () => ({
map_mode: "terraindevie",
concernements: [], concernements: [],
concernementsByID: {}, concernementsByID: {},
allEntitesById: {}, allEntitesById: {},
opened: false, opened: false,
opened_entite_id: null, opened_entite_id: null,
ct_concernement: {}, ct_concernement: {},
concernements_loaded: false concernements_loaded: false,
}), }),
getters: { getters: {
}, },
actions: { actions: {
setMapMode(mode) {
console.log(`set map_mode ${mode}`);
// mode can be : terraindevie, proximite, superposition, puissancedagir, action, doleancer
this.map_mode = mode;
},
loadConcernements () { loadConcernements () {
console.log('concernements store loadConcernements'); console.log('concernements store loadConcernements');
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@ -49,7 +55,14 @@ export const ConcernementsStore = defineStore({
concernement.entites.forEach(entite => { concernement.entites.forEach(entite => {
concernement.entites_byid[entite.entite.id] = entite; concernement.entites_byid[entite.entite.id] = entite;
// record a flat list of all entités of all concernement for map-popup // record a flat list of all entités of all concernement for map-popup
this.allEntitesById[entite.entite.id] = entite; if (typeof this.allEntitesById[entite.entite.id] === "undefined") {
this.allEntitesById[entite.entite.id] = {
entite: entite,
concernements: [concernement]
};
} else {
this.allEntitesById[entite.entite.id].concernements.push(concernement);
}
}); });
this.concernements.push(concernement); this.concernements.push(concernement);
this.concernementsByID[concernement.id] = concernement; this.concernementsByID[concernement.id] = concernement;