document.addEventListener('alpine:init', () => { Alpine.data('masterData', () => ({ // 0. Init dijalankan sebelum inisialisasi init() { }, // 1. Inisialisasi Start // multiple select dataAssay: [ { idAssay: 1, namaAssay: 'Xn500' }, { idAssay: 2, namaAssay: 'HGB' }, { idAssay: 3, namaAssay: 'WBC' }, { idAssay: 4, namaAssay: 'RBC' }, { idAssay: 5, namaAssay: 'PLT' }, ], dataAlat: [ { idAlat: 1, namaAlat: 'Hema 01', }, { idAlat: 2, namaAlat: 'Axsym', }, { idAlat: 3, namaAlat: 'Cobas C311', }, ], // multiple select dataMaster: [ { idMaster: 1, kode: 'A04', namaPemeriksaan: 'Darah Lengkap', harga: '50.000', pemeriksaanStr: 'Xn500, HCB, WBC, RBC, PLT', dataAssay: [ { idAssay: 1, namaAssay: 'Xn500' }, { idAssay: 2, namaAssay: 'HGB' }, { idAssay: 3, namaAssay: 'WBC' }, { idAssay: 4, namaAssay: 'RBC' }, { idAssay: 5, namaAssay: 'PLT' }, ], }, ], showDialogAdd: false, kodeAdd: '', namaAdd: '', hargaAdd: '', formAddArray: [], showDialogEdit: false, objForm: { nama: '', kode: '', harga: '', alat: {}, assay: [] }, objFormEdit: { nama: '', kode: '', harga: '', dataAssay: [], }, // 1. Inisialisasi End // 2. Fungsi Start formAddDetail() { const lastId = this.formAddArray.length; this.formAddArray.push({ idForm: lastId + 1, openAlat: false, dataAlatForm: this.dataAlat, selectedAlat: { idAlat: -1, namaAlat: 'Alat' }, selectedAssay: [], searchAssay: "", filterItemAssay: this.dataAssay, dataAssayForm: this.dataAssay, openAssayAdd: false, }) }, filterItemAssay(idx, formItem) { let formId = formItem.idForm // console.log('formItem ',formItem) let targetForm = this.formAddArray.find(e => e.idForm === formId); if (targetForm) { targetForm.openAssayAdd = true let searchTerm = targetForm.searchAssay ? targetForm.searchAssay.toLowerCase() : ""; targetForm.filterItemAssay = targetForm.dataAssayForm.filter(item => item.namaAssay.toLowerCase().includes(searchTerm) ); // targetForm.dataAssayForm = targetForm.filterItemAssay console.log('Filtered Assay:', targetForm.filterItemAssay); } else { console.warn('Tidak match ID Form nya'); } }, addItemAssayToForm(item, idForm) { let form = this.formAddArray.find(f => f.idForm === idForm); if (form) { let exists = form.selectedAssay.some(a => a.idAssay === item.idAssay); if (!exists) { form.selectedAssay.push(item); } else { console.warn("Item sudah dipilih:", item); } } }, removeItemAssayToForm(idForm, index) { let form = this.formAddArray.find(f => f.idForm === idForm); if (!form) return; form.selectedAssay.splice(index, 1); }, closeDialog() { this.formAddArray = [] this.kodeAdd = '' this.namaAdd = '' this.hargaAdd = '' this.objForm = { nama: '', kode: '', harga: '', dataAssay: [], } this.showDialogAdd = false }, saveA() { this.objForm.alat = this.formAddArray.map(form => form.selectedAlat); this.objForm.assay = this.formAddArray.map(form => form.selectedAssay); console.log('Data yang disimpan:', this.objForm); }, onChangeInstrument(item, idForm) { let form = this.formAddArray.find(f => f.idForm === idForm); if (!form) return; form.selectedAlat = { idAlat: item.idAlat, namaAlat: item.namaAlat } form.openAlat = false }, onChangeInstrumentEdit(item) { this.openInstrument = false; this.selectedInstrumentEdit = item; }, onChangeNamaAdd() { this.objForm.nama = this.namaAdd; }, onChangeNamaEdit() { this.objFormEdit.nama = this.e_nama; }, onChangeKodeAdd() { this.objForm.kode = this.kodeAdd; }, onChangeKodeEdit() { this.objFormEdit.kode = this.e_kode; }, onChangeHargaAdd() { this.objForm.harga = this.hargaAdd; }, onChangeHargaEdit() { this.objFormEdit.harga = this.e_harga; }, openModalEdit(item) { // mrn this.e_mrn = item.mrn // sid this.e_sid = item.sid // name this.e_name = item.name // multiple pemeriksaan this.e_selectedPemeriksaan = [...item.dataPemeriksaan]; this.e_filteredPemeriksaan = [...this.dataPemeriksaan]; this.showDialogEdit = !this.showDialogEdit; }, closeDialogEdit() { this.showDialogEdit = !this.showDialogEdit; }, editMobilePage(item) { var json = JSON.stringify(item); localStorage.setItem('itemEditMobile', json) window.location.href = "order_mobile_edit.html"; }, // 2. Fungsi End })) })