Files
logapi_nuxt/pages/Surat-Kontrol/index.vue
2024-12-16 13:49:33 +07:00

371 lines
15 KiB
Vue

<template>
<div>
<v-main>
<v-container>
<v-card title="List Surat Kontrol" flat>
<div variant="outline">
<VForm v-model="valid" @submit.prevent="form_proses" :key="formkey">
<v-container >
<v-row>
<v-col cols="12" md="3">
<v-text-field
v-model="tanggal_awal"
label="Tanggal Awal"
type="date"
></v-text-field>
</v-col>
<v-col cols="12" md="3">
<v-text-field
v-model="tanggal_akhir"
label="Tanggal Akhir"
type="date"
></v-text-field>
</v-col>
</v-row>
<v-row>
<v-col cols="12" md="3">
<v-autocomplete
label="Poliklinik"
v-model="poliklinik"
:items="subspesialis"
item-title="Subspesialis"
item-value="id"
dense
/>
</v-col>
<v-col cols="12" md="2">
<v-text-field
v-model="noRM"
label="No RM" />
</v-col>
<v-col cols="12" md="2">
<v-text-field
v-model="noSEP"
label="No SEP" />
</v-col>
</v-row>
<VBtn
variant="tonal"
type="submit">
C A R I
</VBtn>
<VBtn
class="text-none text-subtitle-1 pe-2"
color="#5865f2"
size="small"
variant="flat"
to="Surat-Kontrol/formSurkon" >
tambah
</VBtn>
</v-container>
</VForm>
</div>
<v-text-field v-model="search" label="Search" prepend-inner-icon="mdi-magnify" variant="outlined" hide-details single-line class="rounded elevation-1"></v-text-field>
<v-data-table class="elevation-1" :headers="headers" :items="surkon.list_data" F :search="search">
<template v-slot:item.action="{ item }" >
<v-dialog v-model="dialog" max-width="750" >
<template v-slot:activator="{ props: activatorProps }">
<v-btn small v-bind="activatorProps" class="mr-2" @click="proses_edit(item)"><v-icon>mdi-pencil</v-icon>Edit</v-btn>
<v-btn color="red" @click="modal_hapus(item)"><v-icon>mdi-delete</v-icon>Delete</v-btn>
</template>
<VCard width="750" class="ma-auto">
<VCardTitle class="text-center">
Data Edit
</VCardTitle>
<VCardText>
<VForm ref="form" @submit.prevent="form_proses">
<v-container>
<v-row justify="space-around">
<v-col cols="12" md="6">
<v-text-field :rules="[v => !!v || '*ID belum terisi']"
name="idxdaftar"
v-model="dataedit.idxdaftar"
label="idx daftar"
></v-text-field>
</v-col>
<v-col cols="12" md="6">
<v-text-field :rules="[v => !!v || '*No SEP belum terisi']"
name="noSEP"
v-model="dataedit.noSEP"
label="No.SEP"
></v-text-field>
</v-col>
</v-row>
<v-row>
<v-col cols="12" md="6">
<v-text-field :rules="[v => !!v || '*kode HFIS belum terisi']"
name="kodeHFIS"
v-model="dataedit.kodeHFIS"
label="kode HFIS"
></v-text-field>
</v-col>
<v-col cols="12" md="6">
<v-text-field :rules="[v => !!v || '*ID dokter belum terisi']"
name="id_dokter"
v-model="dataedit.id_dokter"
label="ID dokter"
></v-text-field>
</v-col>
</v-row>
<v-row>
<v-col cols="12" md="6">
<v-text-field :rules="[v => !!v || '*kode Poli belum terisi']"
name="kodePoli"
v-model="dataedit.kodePoli"
label="kode Poli"
></v-text-field>
</v-col>
<v-col cols="12" md="6">
<v-text-field :rules="[v => !!v || '*Sub spesialis belum terisi']"
name="subspesialis"
v-model="dataedit.subspesialis"
label="sub spesialis"
></v-text-field>
</v-col>
</v-row>
<v-row>
<v-col cols="12" md="6">
<v-text-field :rules="[v => !!v || '*tanggal rencana kontrol belum terisi']"
name="tglRencanaKontrol"
v-model="dataedit.tglRencanaKontrol"
label="tanggal rencana kontrol"
></v-text-field>
</v-col>
<v-col cols="12" md="6">
<v-text-field :rules="[v => !!v || '*Nama Dokter belum terisi']"
name="user"
v-model="dataedit.user"
label="Nama Dokter"
></v-text-field>
</v-col>
</v-row>
<v-row>
<v-col cols="12" md="6">
<v-text-field :rules="[v => !!v || '*kode diagnosa belum terisi']"
name="kode_diagnosa"
v-model="dataedit.kode_diagnosa"
label="kode diagnosa"
></v-text-field>
</v-col>
<v-col cols="12" md="6">
<v-text-field :rules="[v => !!v || '*Nama diagnosa belum terisi']"
name="nama_diagnosa"
v-model="dataedit.nama_diagnosa"
label="Nama Diagnosa"
></v-text-field>
</v-col>
</v-row>
<v-row>
<v-col cols="12" md="6">
<v-text-field :rules="[v => !!v || '*tipe surkon belum terisi']"
name="tipe_surkon"
v-model="dataedit.tipe_surkon"
label="tipe surkon"
></v-text-field>
</v-col>
<v-col cols="12" md="6">
<v-text-field :rules="[v => !!v || '*tipe rawat belum terisi']"
name="tipe_rawat"
v-model="dataedit.tipe_rawat"
label="tipe rawat"
v-if="aksi == true"
></v-text-field>
</v-col>
</v-row>
<v-row>
<v-col col="12" md="6">
<VBtn variant="tonal" @click="dialog.dialog=false" block> K E M B A L I </VBtn>
</v-col>
<v-col col="12" md="6">
<VBtn variant="tonal" type="submit"block>S I M P A N</VBtn>
</v-col>
</v-row>
</v-container>
</VForm>
</VCardText>
</VCard>
</v-dialog>
</template>
</v-data-table>
</v-card>
</v-container>
</v-main>
</div>
</template>
<script setup>
import { ref, reactive } from "vue";
import Swal from "sweetalert2";
import { storeToRefs } from "pinia";
const noRM = ref('');
const noSEP = ref('');
const tanggal_awal = ref('');
const tanggal_akhir = ref('');
const poliklinik = ref('');
// const itemsPerPage= 5;
const search = ref("");
const headers = [
{
align: 'start',
key: 'name',
sortable: false,
},
{ key: 'Nomor_surat_kontrol', title: 'Nomor surat kontrol' },
{ key: 'Nomor_sep', title: 'Nomor sep' },
{ key: 'Tanggal_cetak_surat_kontrol', title: 'Tanggal Entry' },
{ key: 'Tanggal_rencana_kontrol', title: 'Tanggal Rencana Kontrol' },
{ key: 'No_rm', title: 'Nomor Rekam Medik' },
{ key: 'NamaDokter', title: 'Nama Dokter' },
{ text: "", value: "action", title:'Aksi' },
];
const payload = {
no_rm: "",
no_sep: "",
poliklinik: "",
tanggal_awal: "",
tanggal_akhir: "",
tipe_surkon : "1",
offset: "0",
};
const { surkon } = storeToRefs(useSurkonStorePost());
const { loadSurKon } = useSurkonStorePost();
const { subspesialis,loadSubspesialisData } = useSubspesialisStore();
const headers2 = [
{
align: 'start',
key: 'name',
sortable: false,
},
{ key: 'id', title: 'ID' },
{ key: 'Kode', title: 'Kode' },
{ key: 'Subspesialis', title: 'Subspesialis' },
{ key: 'FK_daftar_spesialis_ID', title: 'FK_daftar_spesialis_ID' },
{ key: 'Spesialis', title: 'Spesialis' },
{ text: "", value: "action" },
];
const form_proses = async() => {
payload.no_rm = noRM._value;
payload.no_sep = noSEP._value;
payload.tanggal_awal = tanggal_awal._value;
payload.tanggal_akhir = tanggal_akhir._value;
payload.poliklinik = poliklinik._value.toString();
Swal.fire({
title: 'Berhasil Menampilkan Data' ,
icon: 'success',
showConfirmButton: false,
timer: 1000,
})
loadSurKon(payload);
}
onMounted(() => {
loadSubspesialisData();
});
const dataedit = reactive({
idxdaftar: '',
noSEP: '',
kodeHFIS: '',
id_dokter: '',
kodePoli: '',
subspesialis: '',
tglRencanaKontrol: '',
user: '',
kode_diagnosa: '',
nama_diagnosa: '',
tipe_surkon: '',
tipe_rawat: '',
})
const proses_edit = (item)=>{
const {data_edit} = storeToRefs(useSurkonStorePost());
const { proses_edit } = useSurkonStorePost();
proses_edit(item);
var aksi = false;
watchEffect(() => {
if (data_edit.value) {
aksi=true;
dataedit.idxdaftar = data_edit.value.Idx_daftar || '';
dataedit.noSEP = data_edit.value.Nomor_sep || '';
dataedit.kodeHFIS = data_edit.value.kodeHFIS || '';//?
dataedit.id_dokter = data_edit.value.id_dokter || '';
dataedit.kodePoli = data_edit.value.Kode_poli || '';
dataedit.subspesialis = data_edit.value.Subspesialis || '';
dataedit.tglRencanaKontrol = data_edit.value.Tanggal_rencana_kontrol || '';
dataedit.user = data_edit.value.NamaDokter || '';
dataedit.kode_diagnosa = data_edit.value.Kode_diagnosa || '';
dataedit.nama_diagnosa = data_edit.value.Nama_diagnosa || '';
dataedit.tipe_surkon = data_edit.value.Tipe_SurKon || '';
dataedit.tipe_rawat = data_edit.value.tipe_rawat || '';//?
}
})
}
const dialog = ref(false);
const hapusData = ref('');
const modal_hapus = (item) => {
hapusData.value = item;
}
const proses_hapus = () => {
console.log("proses hapus")
console.log(hapusData.value)
// console.log(hapusData.value.id)
dialog.dialog = false;
}
const tambah = reactive({
dialog:false
})
</script>