<template>
   <v-layout class="fill-height" column>
      <v-card class="grow">
         <!-- <v-subheader>
            <h3 class="title">DAFTAR PASIEN</h3>
         </v-subheader> -->
            <hr style="border-top:0px solid #c8c8c8;" />
         <v-data-table
            :headers="headers" :items="pxs"
            :loading="isLoading"
            hide-actions class="xelevation-1">
            <template slot="items" slot-scope="props">
               <td class="text-xs-left pt-2 pb-2 pr-2 green--text" v-bind:class="[margin_left(props.item), validation_color(props.item)]"
                   @click="select(props.index, props.item)" v-if="props.item.is_result == 'N'" colspan="7">
                  {{ props.item.t_testname }}
               </td>

               <td class="text-xs-left pt-2 pb-2 pr-2 green--text" v-bind:class="[margin_left(props.item), validation_color(props.item)]"
                   @click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'">
                  {{ props.item.t_testname }}
               </td>

               <td class="text-xs-left pa-2" v-bind:class="[is_selected(props.item), validation_color(props.item)]"
                   @click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'" style="position: relative">
                  <v-textarea
                      label=""
                      solo
                      rows=2
                      hide-details
                      v-on:keyup="update_result(props.index, $event.target.value)"
                      :value="props.item.result"
                      flat
                      readonly
                  ></v-textarea>
               </td>

               <td class="text-xs-left pa-2" v-bind:class="[is_selected(props.item), validation_color(props.item)]"
                   @click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'">
                  
               </td>

               <td class="text-xs-left pa-2" v-bind:class="[is_selected(props.item), validation_color(props.item)]"
                   @click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'">
                  -
               </td>

               <td class="text-xs-left pa-2" v-bind:class="[is_selected(props.item), validation_color(props.item)]"
                   @click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'">
                  -
               </td>

               <td class="text-xs-left pa-2" v-bind:class="[is_selected(props.item), validation_color(props.item)]"
                   @click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'">
                  <v-textarea
                      label=""
                      solo
                      rows=2
                      hide-details
                      v-on:keyup="update_note(props.index, $event.target.value)"
                      :value="props.item.note"
                      flat
                      readonly
                  ></v-textarea>
               </td>

               <td class="text-xs-left pa-1" v-if="props.item.is_result == 'Y'" v-bind:class="[validation_color(props.item)]">
                  <div class="text-xs-center">
                     <div class="text-xs-center">
                        <v-checkbox label="" :input-value="validation(props.item)" value="Y" false-value="N" @change="validation_change($event, props.index)" class="mt-1 mr-1 ml-0 mb-0 cb-auto-ver" :disabled="props.item.validation == 'Y' ? false : true"></v-checkbox>

                     </div>
                  </div>
                  
               </td>
            </template>

         </v-data-table>

      </v-card>

      <one-process-re-rerun-result></one-process-re-rerun-result>
      <one-process-re-history></one-process-re-history>
      <v-snackbar
         v-model="snackbar"
         :timeout="5000"
         bottom right
      >
         {{ save_text }}
         <v-btn
         color="pink"
         flat
         @click="snackbar = false"
         >
         Close
         </v-btn>
      </v-snackbar>

      <v-snackbar
         v-model="snackbar_err"
         :timeout="5000"
         bottom right
         color="red"
      >
         {{ err_text }}
         <v-btn
         color="pink"
         flat
         @click="snackbar_err = false"
         >
         Close
         </v-btn>
      </v-snackbar>

      <one-process-rv-dialog-trend></one-process-rv-dialog-trend>
   </v-layout>
</template>

<style scoped>
.searchbox .v-input.v-text-field .v-input__slot{
   min-height:60px;
}
.searchbox .v-btn {
   min-height:60px;
}
table.v-table tbody td,table.v-table tbody th {
   height: 40px;
}

table.v-table thead tr {
   height: 40px;
}

.btn_rerun {
   position: absolute; 
   top: 4px;
   right: 2px
}

.v-btn--floating {
   border-radius: 0%;
}

.cb-auto-ver {
   float: left;
}

.cb-auto-ver .v-icon {
   font-size: 40px;
}

.v-btn--floating.v-btn--small {
   height: 30px;
   width: 30px;
}
</style>

<script>
module.exports = {
   components : {
      'one-process-re-rerun-result': httpVueLoader('./oneProcessReRerunResult.vue'),
      'one-process-re-history': httpVueLoader('./oneProcessReHistory.vue'),
      'one-process-rv-dialog-trend': httpVueLoader('./oneProcessRvDialogTrend.vue')
   },

   data() {
      return {
         query: "",
         save_text: "Data berhasil diUnvalidasi.",
         err_text: "Tidak ada data yang perlu diunvalidasi !",
         items: [],
         headers: [
            {
               text: "NAMA PEMERIKSAAN",
               align: "left",
               sortable: false,
               value: "mr",
               width: "15%",
               class: "pa-2 blue lighten-3 white--text"
            },
            {
               text: "HASIL",
               align: "left",
               sortable: false,
               value: "mr",
               width: "15%",
               class: "pa-2 blue lighten-3 white--text"
            },
            {
               text: "FLAG",
               align: "left",
               sortable: false,
               value: "mr",
               width: "10%",
               class: "pa-2 blue lighten-3 white--text"
            },
            {
               text: "NILAI NORMAL",
               align: "left",
               sortable: false,
               value: "mr",
               width: "15%",
               class: "pa-2 blue lighten-3 white--text"
            },
            {
               text: "UNIT",
               align: "left",
               sortable: false,
               value: "mr",
               width: "10%",
               class: "pa-2 blue lighten-3 white--text"
            },
            {
               text: "CATATAN",
               align: "left",
               sortable: false,
               value: "mr",
               width: "20%",
               class: "pa-2 blue lighten-3 white--text"
            },
            {
               text: "UNVALIDASI",
               align: "left",
               sortable: false,
               value: "mr",
               width: "15%",
               class: "pa-2 blue lighten-3 white--text"
            }
         ],

         isLoading: false
      };
   },

   methods : {
      oneMoment : function(d) {
         return window.oneMoment(d)
      },

      select (idx, item) {
         this.$store.commit('re_px/update_selected_px', item)
         this.$store.commit('re_px/update_selected_px_idx', idx)
         // this.$store.commit('ver_validation/update_selected_sent_sample', item)
      },

      is_selected (item) {

         return ''
      },

      margin_left (item) {
         if (item.level == 3 || item.level == 2)
            return 'pl-5'

         return 'pl-2'
      },

      rerun_me () {
         this.$store.commit('re_px/update_dialog_rerun', true)
      },

      update_result(idx, result) {
         
         let x = this.$store.state.re_px.pxs
         x[idx]['result'] = result

         this.$store.commit('re_px/update_pxs', {records:x})
      },

      update_note(idx, note) {
         
         let x = this.$store.state.re_px.pxs
         x[idx]['note'] = note

         this.$store.commit('re_px/update_pxs', {records:x})
      },

      validation(i) {
         return i.unvalidation
      },

      validation_change(e, idx) {
         if (e == null) e = "N"
         let x = this.$store.state.re_px.pxs
         x[idx].unvalidation = e

         this.$store.commit("re_px/update_pxs", {records:x})
      },

      mr(x) {
         this.$store.dispatch('re_px/mr_state')
         this.$store.commit('re_px/update_dialog_trend', true)
      },

      validation_color(i) {
         if (i.validation_old == "Y")
            return "green lighten-4"

         return""
      }
   },

   computed : {
      pxs () {
         return this.$store.state.re_px.pxs
      },

      icon_info () {
         return window.BASE_URL + '/one-ui/apps/image/info.png'
      },

      snackbar : {
         get () { return this.$store.state.re_px.snackbar },
         set (v) { this.$store.commit('re_px/update_snackbar', v) }
      },

      snackbar_err : {
         get () { return this.$store.state.re_px.snackbar_err },
         set (v) { this.$store.commit('re_px/update_snackbar_err', v) }
      }
   },

   mounted () {
    //   this.$store.dispatch('re_patient/search')
   }
}
</script>
