|
@@ -3,17 +3,20 @@
|
|
|
import { mapActions, mapState } from 'pinia'
|
|
|
import { ConcernementsStore } from '@stores/concernements'
|
|
|
import { UserStore } from '@/stores/user'
|
|
|
+import { CommonStore } from '@/stores/common'
|
|
|
|
|
|
import { print } from 'graphql/language/printer'
|
|
|
import gql from 'graphql-tag'
|
|
|
import GQL from '@api/graphql-axios'
|
|
|
import EntiteFields from '@api/gql/entite.fragment.gql'
|
|
|
|
|
|
+
|
|
|
export default {
|
|
|
props: ['id', 'eid'],
|
|
|
data(){
|
|
|
return {
|
|
|
entite: null,
|
|
|
+ opened_besoin_id: null
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
@@ -23,7 +26,8 @@ export default {
|
|
|
// ...mapState(ConcernementsStore,['opened_entity_id']),
|
|
|
...mapState(ConcernementsStore,['concernements_loaded']),
|
|
|
...mapState(ConcernementsStore,['ct_concernement']),
|
|
|
- ...mapState(ConcernementsStore,['ct_entite'])
|
|
|
+ ...mapState(ConcernementsStore,['ct_entite']),
|
|
|
+ ...mapState(CommonStore,['hover_elmt'])
|
|
|
},
|
|
|
created () {
|
|
|
console.log(`Concernement view created, id: ${this.id}, eid: ${this.eid}, opened:${this.opened}`);
|
|
@@ -82,6 +86,13 @@ export default {
|
|
|
.catch(error => {
|
|
|
console.warn('Issue with load entite', error)
|
|
|
})
|
|
|
+ },
|
|
|
+ onClickBesoin(id){
|
|
|
+ console.log("onClickBesoin", id);
|
|
|
+ this.opened_besoin_id = id === this.opened_besoin_id ? null : id;
|
|
|
+ },
|
|
|
+ besoinClass(id){
|
|
|
+ return this.opened_besoin_id === id ? "opened" : "";
|
|
|
}
|
|
|
},
|
|
|
components: {
|
|
@@ -93,7 +104,11 @@ export default {
|
|
|
<template>
|
|
|
<section v-if="opened" class="concernement">
|
|
|
<header v-if="concernements_loaded">
|
|
|
- <label v-if="ct_concernement && !entite">{{ ct_concernement.title.description }}</label>
|
|
|
+ <label
|
|
|
+ v-if="ct_concernement && !entite && map_mode !== 'puissancedagir'"
|
|
|
+ >
|
|
|
+ {{ ct_concernement.title.description }}
|
|
|
+ </label>
|
|
|
<h3 v-if="entite">{{ entite.title }}</h3>
|
|
|
<span v-if="entite && opened.entites_byid[eid].menacemaintien > 0">menace</span>
|
|
|
<span v-if="entite && opened.entites_byid[eid].menacemaintien < 0">maintient</span>
|
|
@@ -129,19 +144,63 @@ export default {
|
|
|
<section
|
|
|
v-if="map_mode === 'puissancedagir'"
|
|
|
class="content-besoins">
|
|
|
- <ul>
|
|
|
+ <ul class="besoins">
|
|
|
<li
|
|
|
- v-for="(besoin,index) in opened.besoins"
|
|
|
- :key="index"
|
|
|
+ v-for="besoin in opened.besoins"
|
|
|
+ :key="besoin.id"
|
|
|
+ class="besoin"
|
|
|
+ :id="besoin.id"
|
|
|
+ :class="besoinClass(besoin.id)"
|
|
|
>
|
|
|
- <p v-html="besoin.description"/>
|
|
|
- <a
|
|
|
- v-if="isloggedin"
|
|
|
- :href="'/api/node/add/reponse?besoin_id='+besoin.id"
|
|
|
- target="_blank"
|
|
|
- rel="noopener noreferrer">
|
|
|
- contribuer à ce besoin
|
|
|
- </a>
|
|
|
+ <span
|
|
|
+ class="open-btn mdi"
|
|
|
+ :class="{ 'mdi-chevron-right': besoin.id !== opened_besoin_id, 'mdi-chevron-down': besoin.id === opened_besoin_id } "
|
|
|
+ @click="onClickBesoin(besoin.id)"
|
|
|
+ />
|
|
|
+ <header>
|
|
|
+ <label
|
|
|
+ class="mdi mdi-rhombus"
|
|
|
+ :class="{ hover: hover_elmt && hover_elmt.type === 'besoin' && (hover_elmt.id === besoin.id || hover_elmt.bid === besoin.id) }"
|
|
|
+ @click="onClickBesoin(besoin.id)"
|
|
|
+ >
|
|
|
+ Besoin de l'enqueteur
|
|
|
+ </label>
|
|
|
+ <h4 class="besoin-description" v-html="besoin.description"/>
|
|
|
+ <a
|
|
|
+ v-if="isloggedin"
|
|
|
+ :href="'/api/node/add/reponse?besoin_id='+besoin.id"
|
|
|
+ target="_blank"
|
|
|
+ rel="noopener noreferrer"
|
|
|
+ class="contribute-link mdi mdi-pencil-plus">
|
|
|
+ contribuer à ce besoin
|
|
|
+ </a>
|
|
|
+ </header>
|
|
|
+ <ul class="reponses">
|
|
|
+ <li
|
|
|
+ v-for="reponse in besoin.reponses"
|
|
|
+ :key="reponse.id"
|
|
|
+ class="reponse"
|
|
|
+ :id="reponse.id"
|
|
|
+ >
|
|
|
+ <label class="mdi mdi-rhombus-outline">Ressource</label>
|
|
|
+ <section v-if="reponse.qui">
|
|
|
+ <label for="reponse-qui">Qui</label>
|
|
|
+ <p name="reponse-qui" v-html="reponse.qui" />
|
|
|
+ </section>
|
|
|
+ <section v-if="reponse.quoi">
|
|
|
+ <label for="reponse-quoi">Quoi</label>
|
|
|
+ <p name="reponse-quoi" v-html="reponse.quoi" />
|
|
|
+ </section>
|
|
|
+ <section v-if="reponse.ou">
|
|
|
+ <label for="reponse-ou">Où</label>
|
|
|
+ <p name="reponse-ou" v-html="reponse.ou" />
|
|
|
+ </section>
|
|
|
+ <section v-if="reponse.avec">
|
|
|
+ <label for="reponse-avec">Avec</label>
|
|
|
+ <p name="reponse-avec" v-html="reponse.avec" />
|
|
|
+ </section>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</section>
|