浏览代码

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

bach 2 年之前
父节点
当前提交
82731a4884

+ 0 - 32
src/App.vue

@@ -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 />

+ 9 - 0
src/api/gql/concernement.fragment.gql

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

+ 1 - 0
src/components/ConcernementMapItem.vue

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

+ 2 - 2
src/components/ConcernementMapPopup.vue

@@ -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

+ 12 - 10
src/components/MapConcernements.vue

@@ -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

+ 15 - 2
src/stores/concernements.js

@@ -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;