Files
FE_CPONE/test/vuex/one-sampling-verification-adhi/components/oneSamplingVerificationVerify.vue
2026-04-27 10:13:31 +07:00

194 lines
7.0 KiB
Vue

<template>
<v-layout class="fill-height" column>
<v-card class="grow">
<v-layout column ma-3>
<v-flex xs12>
<h3 class="title mb-2">INFORMASI SAMPLE :</h3>
</v-flex>
<v-flex xs12>
<v-layout row>
<v-flex xs4>
<v-text-field
label="Durasi Sampling"
outline
v-model="duration_sampling"
readonly
hide-details
></v-text-field>
</v-flex>
<v-flex xs8 ml-2>
<v-text-field
label="Petugas Sampling"
outline
v-model="user_sampling"
readonly
hide-details
></v-text-field>
</v-flex>
</v-layout>
</v-flex>
<v-divider class="mb-3 mt-3"></v-divider>
<v-flex xs12>
<v-layout row>
<v-flex xs6>
<v-layout column>
<v-flex xs12>
<one-field-verification
label="Jenis sampel sesuai"
:value="data.sample_checked"
:note="data.sample_note"
@change="update_data_sample"
v-if="verification_show"
></one-field-verification>
</v-flex>
<v-flex xs12 mt-2>
<one-field-verification
label="Kuantitas OK"
:value="data.quantity_checked"
:note="data.quantity_note"
@change="update_data_quantity"
v-if="verification_show"
></one-field-verification>
</v-flex>
<v-flex xs12 mt-2>
<one-field-verification
label="Kualitas OK"
:value="data.quality_checked"
:note="data.quality_note"
@change="update_data_quality"
v-if="verification_show"
></one-field-verification>
</v-flex>
</v-layout>
</v-flex>
<v-flex xs6 pl-2>
<v-layout column fill-height>
<v-flex xs12>
<v-textarea
auto-grow
label="Catatan"
rows="5"
v-model="note"
outline
v-show="verification_show"
></v-textarea>
</v-flex>
<v-flex xs12>
<v-btn color="red" dark @click="reject" v-show="verification_show">TOLAK</v-btn>
<v-btn color="blue" dark @click="verify" v-show="verification_show">TERIMA</v-btn>
</v-flex>
</v-layout>
<v-flex>
</v-layout>
</v-flex>
</v-layout>
</v-card>
</v-layout>
</template>
<script>
module.exports = {
components : {
'one-field-verification' : httpVueLoader('./../../common/oneFieldVerification.vue')
},
computed : {
data () {
let x = this.$store.state.verification_patient.selected_patient.data
if (typeof x == "undefined")
return {quality_checked:false,quantity_checked:false,sample_checked:false,
quality_note:"",quantity_note:"",sample_note:""}
x.quality_checked = x.quality == "Y" ? true : false
x.quantity_checked = x.quantity == "Y" ? true : false
x.sample_checked = x.sample == "Y" ? true : false
return x
},
patient () {
return this.$store.state.verification_patient.selected_patient
},
user_sampling () {
let x = this.$store.state.verification_patient.selected_patient
if (typeof x.user_sampling == "undefined")
return '-'
return 'Sampling : ' + x.user_sampling + ' / Receive : ' + x.user_receive
},
duration_sampling () {
let x = this.$store.state.verification_patient.selected_patient
if (typeof x.sampling_duration == "undefined")
return '0'
return Math.round(moment.duration(x.sampling_duration).asMinutes()) + ' menit'
},
note : {
get () {
let x = this.$store.state.verification_patient.selected_patient.data
if (typeof x == "undefined")
return ""
return x.note
},
set (v) {
this.$store.commit('verification_patient/update_verification_note', v)
}
},
verification_show : {
get () {
return this.$store.state.verification_patient.verification_show
},
set (v) {
this.$store.commit('verification_patient/update_verification_show', v)
}
}
},
methods : {
update_data_quality (v) {
let data = { type:"quality", quality:v.checked?"Y":"N", quality_note:v.note }
this.$store.commit('verification_patient/update_verification_data', data)
},
update_data_quantity (v) {
let data = { type:"quantity", quantity:v.checked?"Y":"N", quantity_note:v.note }
this.$store.commit('verification_patient/update_verification_data', data)
},
update_data_sample (v) {
let data = { type:"sample", sample:v.checked?"Y":"N", sample_note:v.note }
this.$store.commit('verification_patient/update_verification_data', data)
},
verify () {
this.$store.dispatch('verification_patient/verify')
},
reject () {
this.$store.dispatch('verification_patient/reject')
}
}
}
</script>