Files
FE_CPONE/process/one-process-resultentry-px/components/oneSearchBox.vue
2026-04-27 10:08:27 +07:00

151 lines
5.2 KiB
Vue

<template>
<v-card class="mb-1 pa-1">
<v-layout row>
<v-flex xs4>
<v-layout>
<one-date-picker
label="Tanggal"
:date="sdate"
data="0"
@change="changeDate"
></one-date-picker>
<v-text-field class="flex xs8 ma-1"
label=""
placeholder="Pemeriksaan"
single-line
solo
hide-details
v-model="search"
@keyup.enter="keySearch"
></v-text-field>
</v-layout>
</v-flex>
<v-flex xs3 pt-1 pl-2>
<v-select
:items="groups"
v-model="selected_group"
item-text="group_name"
item-value="group_id"
label="Grup Pemeriksaan"
return-object
solo
hide-details
@change="changeGroup"
clearable
></v-select>
</v-flex>
<v-flex xs2>
<v-layout>
<v-btn class="btn-search one-btn-icon ma-1" color="success" @click="search_px" >
<span class="icon-search"><span>
</v-btn>
</v-layout>
</v-flex>
<v-flex xs3 class="text-xs-right">
<v-btn
color="blue"
class="white--text ma-1"
@click="save_result"
>
Simpan
<v-icon right dark>save_alt</v-icon>
</v-btn>
</v-flex>
</v-layout>
</v-card>
</template>
<style scoped>
button {
height: 48px;
}
.btn-search {
font-size: 1.5em
}
</style>
<script>
module.exports = {
components : {
'one-date-picker' : httpVueLoader('./oneDatePicker.vue')
},
computed : {
sdate: {
get() { return this.$store.state.search_box.sdate }
,set(v) { this.$store.commit('search_box/update_sdate',v) }
},
search:{
get() { return this.$store.state.search_box.search}
,set(v) { this.$store.commit('search_box/update_search',v) }
},
groups() {
return this.$store.state.search_box.groups
},
selected_group: {
get() { return this.$store.state.search_box.selected_group },
set(v) { this.$store.commit('search_box/update_selected_group',v) }
}
},
methods : {
changeDate(o) {
this.sdate = o.new_date
this.search_px()
},
keySearch(src) {
this.search_px()
},
changeGroup() {
let self = this
setTimeout( function() {
self.search_px()
},1)
},
async search_px() {
let sel_group = this.$store.state.search_box.selected_group
let group_id =0
if (sel_group != undefined && sel_group.group_id != undefined) group_id = sel_group.group_id
let search = this.$store.state.search_box.search
let sdate= this.$store.state.search_box.sdate
this.$store.commit("list_px/update_selected_px",{})
this.$store.commit("list_px/update_orders",[])
let prm = { group_id : group_id , search : search, sdate: sdate, token: window.one_token() }
await this.$store.dispatch("search_box/search_px", prm)
let pxs = this.$store.state.search_box.pxs
if (pxs.length > 0 ) {
this.$store.commit("list_px/update_selected_px",pxs[0])
let sdate = this.$store.state.search_box.sdate
let prm = { nat_test_id : pxs[0].Nat_TestID, sdate: sdate , token: window.one_token() }
this.$store.dispatch("list_px/search_order",prm)
}
},
async save_result() {
// list change
let orders = this.$store.state.list_px.orders
let upd_order = _.filter(orders, function(it) {
if (it.OriginalResult == null && (it.T_OrderDetailResult == "" || it.T_OrderDetailResult == null) ) return false
return it.T_OrderDetailResult != it.OriginalResult
})
if ( upd_order ) {
let prm = { orders : upd_order , token: window.one_token() }
await this.$store.dispatch("list_order/save",prm)
let msg = _.map(upd_order,"T_OrderHeaderLabNumber").join(", ")
msg = 'Hasil <b>' + this.$store.state.list_px.selected_px.Nat_TestName + '</b> untuk No Reg. <b>' + msg +
' </b>sudah di simpan'
this.$store.commit("list_order/update_snackbar_info",msg)
this.$store.commit("list_order/update_snackbar",true)
}
}
},
mounted () {
this.$store.dispatch('search_box/search_group')
}
}
</script>