Advertisement
Guest User

EnCours

a guest
Jun 18th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <template>
  2.   <section class="inner encours-root">
  3.     <div class="encours-content">
  4.       <div class="dossiers-en-cours">
  5.         <v-card>
  6.           <v-card-title class="px-4">
  7.             <v-radio-group row v-model="showFoldersFrom" hide-details class="mt-0 pt-0">
  8.               <v-radio :color="x_colors.primaryDarkColor" label="Tous" :value="'all'"></v-radio>
  9.               <v-radio :color="x_colors.primaryDarkColor" label="Me concernant" :value="'forMe'"></v-radio>
  10.               <v-radio :color="x_colors.primaryDarkColor" label="Concernant" :value="'forUser'"></v-radio>
  11.               <v-autocomplete
  12.                 :color="x_colors.primaryDarkColor"
  13.                 ref="autocompleteUsers"
  14.                 v-model="selectedUserKey"
  15.                 @click="showFoldersFrom = 'forUser'"
  16.                 :items="x_users"
  17.                 :single-line="true"
  18.                 :item-text="'fullName'"
  19.                 :item-value="'formattedName'"
  20.                 :clearable="true"
  21.                 :open-on-clear="true"
  22.                 :readonly="false"
  23.               ></v-autocomplete>
  24.             </v-radio-group>
  25.             <v-spacer></v-spacer>
  26.             <v-text-field
  27.               v-model="searchDossiersEnCours"
  28.               prepend-icon="search"
  29.               label="Rechercher dans les dossiers en cours"
  30.               single-line
  31.               hide-details
  32.               :color="x_colors.primaryDarkColor"
  33.             ></v-text-field>
  34.           </v-card-title>
  35.         </v-card>
  36.         <v-layout row>
  37.           <v-flex xs3 mr-2>
  38.             <v-card class="mt-4">
  39.               <v-list two-line>
  40.                 <template v-for="(item, index) in x_dossiersATraiter">
  41.                   <v-subheader v-if="item.header" :key="item.header">{{ item.header }}</v-subheader>
  42.  
  43.                   <v-divider v-if="index !== x_dossiersATraiter.length && index > 1" :key="index"></v-divider>
  44.  
  45.                   <v-list-tile v-if="item.id" :key="item.id">
  46.                     <v-list-tile-content>
  47.                       <v-list-tile-title
  48.                         class="font-weight-bold"
  49.                         v-html="item.id + ' ' + item.client"
  50.                       ></v-list-tile-title>
  51.                       <v-list-tile-sub-title v-html="item.comments"></v-list-tile-sub-title>
  52.                     </v-list-tile-content>
  53.                   </v-list-tile>
  54.                 </template>
  55.               </v-list>
  56.             </v-card>
  57.           </v-flex>
  58.           <v-flex xs9 ml-3>
  59.             <v-card class="mt-4">
  60.               <v-data-table
  61.                 :headers="x_tableHeaders"
  62.                 :items="x_tableData"
  63.                 color="dark"
  64.                 class="elevation-0 tlz-datatable"
  65.               >
  66.                 <template v-slot:items="props">
  67.                   <tr @dblclick="openModal(props.item.id)" class="cursor-pointer">
  68.                     <td>{{ props.item.id }}</td>
  69.                     <td>{{ props.item.client }}</td>
  70.                     <td>{{ props.item.mission }}</td>
  71.                     <td>{{ props.item.type }}</td>
  72.                     <td>{{ props.item.demandeur }}</td>
  73.                     <td>{{ props.item.validateur }}</td>
  74.                     <td>{{ props.item.associe }}</td>
  75.                     <!-- <td>
  76.                       <div>
  77.                         <span class="statut-text">{{
  78.                           x_statutText(props.item.statut)
  79.                         }}</span>
  80.                         <v-progress-linear
  81.                           class="statut-progress my-0"
  82.                           :color="x_statutColor(props.item.statut)"
  83.                           :value="x_statutValue(props.item.statut)"
  84.                           height="15"
  85.                         ></v-progress-linear>
  86.                       </div>
  87.                     </td>-->
  88.                     <td class="text-xs-center">
  89.                       <v-btn fab flat small class="tlz-btn" @click="openModal(props.item.id)">
  90.                         <v-icon>remove_red_eye</v-icon>
  91.                       </v-btn>
  92.                     </td>
  93.                   </tr>
  94.                 </template>
  95.               </v-data-table>
  96.             </v-card>
  97.           </v-flex>
  98.         </v-layout>
  99.       </div>
  100.     </div>
  101.   </section>
  102. </template>
  103.  
  104. <script>
  105. import { mapGetters } from "vuex";
  106.  
  107. export default {
  108.   // Component name
  109.   name: "EnCours",
  110.  
  111.   // Middleware
  112.   middleware: "",
  113.  
  114.   // Mount in view
  115.   layout: "",
  116.  
  117.   // Dependencies
  118.   components: {},
  119.  
  120.   // Stuff to do before component creation
  121.   beforeCreate() {},
  122.  
  123.   // Stuff to do on component created
  124.   created() {},
  125.  
  126.   // Async data
  127.   asyncData(store) {},
  128.  
  129.   // Stuff to do on component mounted
  130.   mounted() {},
  131.  
  132.   // Component properties
  133.   props: {},
  134.  
  135.   // Page head tag
  136.   head: () => ({}),
  137.  
  138.   // Reactive data
  139.   data: () => ({
  140.     selectedUserKey: ""
  141.   }),
  142.  
  143.   // Conputed properties
  144.   computed: {
  145.     ...mapGetters({
  146.       x_showFoldersFrom: "encours/showFoldersFrom",
  147.       x_selectedUserKey: "encours/selectedUserKey",
  148.       x_users: "app/users",
  149.       x_user: "app/user",
  150.       x_searchDossiersEnCours: "encours/searchDossiersEnCours",
  151.       x_colors: "app/colors",
  152.       x_tableHeaders: "encours/tableHeaders",
  153.       x_tableData: "encours/tableData",
  154.       x_dossiersATraiter: "encours/dossiersATraiter",
  155.       x_modalData: "encours/modalData",
  156.       x_statutText: "encours/statutText",
  157.       x_statutColor: "encours/statutColor",
  158.       x_statutValue: "encours/statutValue"
  159.     }),
  160.  
  161.     showFoldersFrom: {
  162.       get() {
  163.         return this.x_showFoldersFrom;
  164.       },
  165.       set(value) {
  166.         if (value === "forUser") {
  167.           this.$refs.autocompleteUsers.$el
  168.             .getElementsByTagName("input")[0]
  169.             .click();
  170.         }
  171.  
  172.         this.$store.commit("encours/UPDATE_SHOW_FOLDERS_FROM", {
  173.           showFoldersFrom: value,
  174.           selectedUserKey:
  175.             value === "forMe" ? this.x_user.formattedName : this.selectedUserKey
  176.         });
  177.       }
  178.     },
  179.  
  180.     searchDossiersEnCours: {
  181.       get() {
  182.         return this.x_searchDossiersEnCours;
  183.       },
  184.       set(value) {
  185.         this.$store.commit("encours/UPDATE_SEARCH_DOSSIERS_EN_COURS", {
  186.           data: value
  187.         });
  188.       }
  189.     }
  190.   },
  191.  
  192.   // Watch reactive data
  193.   watch: {
  194.     selectedUserKey(value) {
  195.       this.showFoldersFrom = "forUser";
  196.       this.$store.commit("encours/UPDATE_SHOW_FOLDERS_FROM", {
  197.         showFoldersFrom: this.showFoldersFrom,
  198.         selectedUserKey: value
  199.       });
  200.     }
  201.   },
  202.  
  203.   // Component methods
  204.   methods: {
  205.     openModal(id) {
  206.       this.$store.commit("app/OPEN_MODAL", { data: this.x_modalData(id) });
  207.     }
  208.   }
  209. };
  210. </script>
  211.  
  212. <style lang="css"></style>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement