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,['loadContentTypeDefinition']),
...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: {
MapConcernements,
@ -87,11 +60,6 @@ export default {
:concernement="concernement"
:opened="concernement.opened"
/>
<!-- <ConcernementMapItem
v-if="opened"
:concernement="opened"
:opened="opened.opened"
/> -->
</MapConcernements>
<div id="content">
<RouterView />

View File

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

View File

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

View File

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

View File

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

View File

@ -16,18 +16,24 @@ import ConcernementFields from '@api/gql/concernement.fragment.gql'
export const ConcernementsStore = defineStore({
id: 'concernements',
state: () => ({
map_mode: "terraindevie",
concernements: [],
concernementsByID: {},
allEntitesById: {},
opened: false,
opened_entite_id: null,
ct_concernement: {},
concernements_loaded: false
concernements_loaded: false,
}),
getters: {
},
actions: {
setMapMode(mode) {
console.log(`set map_mode ${mode}`);
// mode can be : terraindevie, proximite, superposition, puissancedagir, action, doleancer
this.map_mode = mode;
},
loadConcernements () {
console.log('concernements store loadConcernements');
return new Promise((resolve, reject) => {
@ -49,7 +55,14 @@ export const ConcernementsStore = defineStore({
concernement.entites.forEach(entite => {
concernement.entites_byid[entite.entite.id] = entite;
// 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.concernementsByID[concernement.id] = concernement;