github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/server/frontend/bv/src/shared/Document.vue (about)

     1  <template>
     2    <b-row>
     3      <b-col cols="6" class="align-self-center">
     4        <b-row v-if="!!title">
     5          <b-col>
     6            <div v-html="title"></div>
     7          </b-col>
     8        </b-row>
     9        <b-row>
    10          <b-col>
    11            <b>{{ document.nom_client }}</b>
    12          </b-col>
    13        </b-row>
    14        <b-row>
    15          <b-col>{{ taille }}</b-col>
    16        </b-row>
    17        <b-row>
    18          <b-col>
    19            <i>{{ dateHeureModif }}</i>
    20          </b-col>
    21        </b-row>
    22      </b-col>
    23      <b-col cols="3" class="align-self-center text-center">
    24        <controle-document
    25          :controller="controller"
    26          :document="document"
    27          :hideUpload="hideUpload"
    28          :hideDelete="hideDelete"
    29          @uploaded="$emit('uploaded', $event)"
    30          @deleted="$emit('deleted', $event)"
    31        ></controle-document>
    32      </b-col>
    33      <b-col cols="3" class="text-right my-auto">
    34        <b-img
    35          thumbnail
    36          width="120"
    37          height="120"
    38          alt="aperçu"
    39          :src="document.url_miniature"
    40        ></b-img>
    41      </b-col>
    42    </b-row>
    43  </template>
    44  
    45  <script lang="ts">
    46  import Vue from "vue";
    47  import Component from "vue-class-component";
    48  import ControleDocument from "./ControleDocument.vue";
    49  
    50  import { formatDateTime } from "./logic/utils";
    51  import { ControllerDocument } from "./logic/controller";
    52  import { PublicDocument } from "@/shared/logic/types";
    53  
    54  const DocumentProps = Vue.extend({
    55    props: {
    56      controller: Object as () => ControllerDocument,
    57      document: Object as () => PublicDocument,
    58      hideDelete: {
    59        type: Boolean,
    60        default: false
    61      },
    62      hideUpload: {
    63        type: Boolean,
    64        default: false
    65      },
    66      title: {
    67        type: String,
    68        default: ""
    69      }
    70    }
    71  });
    72  
    73  @Component({
    74    components: { ControleDocument }
    75  })
    76  export default class Document extends DocumentProps {
    77    get taille() {
    78      if (!this.document.taille) return "";
    79      if (this.document.taille < 1_000_000) {
    80        return (this.document.taille / 1_000).toFixed(2) + " Ko";
    81      }
    82      return (this.document.taille / 1_000_000).toFixed(2) + " Mo";
    83    }
    84  
    85    get dateHeureModif() {
    86      let d = formatDateTime(this.document.date_heure_modif);
    87      if (d) {
    88        d = "déposé le " + d;
    89      }
    90      return d;
    91    }
    92  }
    93  </script>
    94  
    95  <style scoped></style>