Entite.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <script>
  2. import REST from '@api/rest-axios'
  3. import JSONAPI from '@api/json-axios'
  4. import { mapActions, mapState } from 'pinia'
  5. import { ConcernementsStore } from '@stores/concernements'
  6. import { UserStore } from '@stores/user'
  7. import Source from '@components/contents/Source.vue';
  8. import ContentEditable from '@components/editable/ContentEditable.vue';
  9. import CheckboxEditable from '@components/editable/CheckboxEditable.vue';
  10. import ImageEditable from '@components/editable/ImageEditable.vue';
  11. export default {
  12. props: ['concernement', 'entite', 'eid'],
  13. emits: ['reloadEntite'],
  14. data() {
  15. return {
  16. }
  17. },
  18. computed: {
  19. ...mapState(ConcernementsStore,['opened_concernement',
  20. 'ct_concernement',
  21. 'ct_entite']),
  22. field_menace_maintien_label (){
  23. let str;
  24. if (this.concernement.entites_byid[this.eid].menacemaintien < 0) {
  25. str = this.ct_entite.field_menace_maintien.description.replace('/maintient', '')
  26. } else {
  27. str = this.ct_entite.field_menace_maintien.description.replace('menace/', '')
  28. }
  29. return str;
  30. },
  31. },
  32. methods: {
  33. reloadEntite(){
  34. this.$emit('reloadEntite');
  35. }
  36. },
  37. components: {
  38. Source,
  39. ContentEditable,
  40. CheckboxEditable,
  41. ImageEditable,
  42. }
  43. }
  44. </script>
  45. <template>
  46. <section class="entite">
  47. <section v-if="entite.image.length || entite.can_update" class="image">
  48. <ImageEditable
  49. :can_update="entite.can_update"
  50. :image="entite.image[0]"
  51. :data="{
  52. entitytype: 'node',
  53. bundle: 'entite',
  54. id: this.entite.id,
  55. uuid: this.entite.uuid,
  56. field: 'field_image'
  57. }"
  58. v-on:updated="reloadEntite" />
  59. </section>
  60. <section v-if="entite.action || entite.can_update" class="action">
  61. <label v-if="ct_entite">{{ ct_entite.field_action.description }}</label>
  62. <!-- <p>{{ entite.action }}</p> -->
  63. <ContentEditable
  64. tag="p"
  65. :value="entite.action"
  66. :contenteditable="entite.can_update"
  67. :data="{
  68. entitytype: 'node',
  69. bundle: 'entite',
  70. id: this.entite.id,
  71. field: {field_name: 'field_action', value:'value'}
  72. }"
  73. v-on:updated="reloadEntite" />
  74. </section>
  75. <section v-if="entite.menacemaintien || entite.can_update" class="menace-maintien">
  76. <label v-if="ct_entite">{{ field_menace_maintien_label }}</label>
  77. <!-- <p>{{ entite.menacemaintien }}</p> -->
  78. <ContentEditable
  79. tag="p"
  80. :value="entite.menacemaintien"
  81. :contenteditable="entite.can_update"
  82. :data="{
  83. entitytype: 'node',
  84. bundle: 'entite',
  85. id: this.entite.id,
  86. field: {field_name: 'field_menace_maintien', value:'value'}
  87. }"
  88. v-on:updated="reloadEntite" />
  89. </section>
  90. <!-- SOURCES (experiences vecues) -->
  91. <section
  92. v-if="entite.sources.length"
  93. class="sources multiple">
  94. <!-- <h5>Experience(s) Vécue(s)</h5> -->
  95. <Source
  96. v-for="(source, index) in entite.sources"
  97. :key="index"
  98. :concernement="concernement"
  99. :entite="entite"
  100. :eid="eid"
  101. :source="source"
  102. v-on:reloadEntite="reloadEntite" />
  103. </section>
  104. </section>
  105. </template>
  106. <style lang="css">
  107. section.action p,
  108. section.menace-maintien p {
  109. white-space: pre-wrap;
  110. }
  111. </style>