feat(material): add toast

This commit is contained in:
riefive
2025-09-25 11:36:14 +07:00
parent ff2e0a5c5f
commit 2bb38576a9
2 changed files with 32 additions and 6 deletions

No files matched your search

+6 -3
View File
@@ -7,6 +7,9 @@ import Header from '~/components/pub/custom-ui/nav-header/prep.vue'
import AppEquipmentEntryForm from '~/components/app/equipment/entry-form.vue' import AppEquipmentEntryForm from '~/components/app/equipment/entry-form.vue'
import RecordConfirmation from '~/components/pub/custom-ui/confirmation/record-confirmation.vue' import RecordConfirmation from '~/components/pub/custom-ui/confirmation/record-confirmation.vue'
// helpers
import { toast } from "~/components/pub/ui/toast"
// Types // Types
import type { Uom } from '~/models/uom' import type { Uom } from '~/models/uom'
@@ -147,10 +150,10 @@ onMounted(async () => {
@submit=" @submit="
(values: MaterialFormData, resetForm: any) => { (values: MaterialFormData, resetForm: any) => {
if (recId > 0) { if (recId > 0) {
handleActionEdit(recId, values, getEquipmentList, resetForm) handleActionEdit(recId, values, getEquipmentList, resetForm, toast)
return return
} }
handleActionSave(values, getEquipmentList, resetForm) handleActionSave(values, getEquipmentList, resetForm, toast)
} }
" "
@cancel="handleCancelForm" @cancel="handleCancelForm"
@@ -162,7 +165,7 @@ onMounted(async () => {
v-model:open="isRecordConfirmationOpen" v-model:open="isRecordConfirmationOpen"
action="delete" action="delete"
:record="recItem" :record="recItem"
@confirm="() => handleActionRemove(recId, getEquipmentList)" @confirm="() => handleActionRemove(recId, getEquipmentList, toast)"
@cancel="" @cancel=""
> >
<template #default="{ record }"> <template #default="{ record }">
+26 -3
View File
@@ -17,18 +17,27 @@ function onResetState() {
recItem.value = null recItem.value = null
} }
export async function handleActionSave(values: any, refresh: () => void, reset: () => void) { export async function handleActionSave(
values: any,
refresh: () => void,
reset: () => void,
toast: (params: any) => void,
) {
let isSuccess = false let isSuccess = false
isProcessing.value = true isProcessing.value = true
try { try {
const result = await postSourceMaterial(values) const result = await postSourceMaterial(values)
if (result.success) { if (result.success) {
toast({ title: 'Berhasil', description: 'Data berhasil disimpan', variant: 'default' })
isFormEntryDialogOpen.value = false isFormEntryDialogOpen.value = false
isSuccess = true isSuccess = true
if (refresh) refresh() if (refresh) refresh()
} else {
toast({ title: 'Gagal', description: 'Gagal menyimpan data', variant: 'destructive' })
} }
} catch (error) { } catch (error) {
console.warn('Error saving form:', error) console.warn('Error saving form:', error)
toast({ title: 'Gagal', description: 'Gagal menyimpan data', variant: 'destructive' })
isSuccess = false isSuccess = false
} finally { } finally {
if (isSuccess) { if (isSuccess) {
@@ -40,18 +49,28 @@ export async function handleActionSave(values: any, refresh: () => void, reset:
} }
} }
export async function handleActionEdit(id: number | string, values: any, refresh: () => void, reset: () => void) { export async function handleActionEdit(
id: number | string,
values: any,
refresh: () => void,
reset: () => void,
toast: (params: any) => void,
) {
let isSuccess = false let isSuccess = false
isProcessing.value = true isProcessing.value = true
try { try {
const result = await patchSourceMaterial(id, values) const result = await patchSourceMaterial(id, values)
if (result.success) { if (result.success) {
toast({ title: 'Berhasil', description: 'Data berhasil diubah', variant: 'default' })
isFormEntryDialogOpen.value = false isFormEntryDialogOpen.value = false
isSuccess = true isSuccess = true
if (refresh) refresh() if (refresh) refresh()
} else {
toast({ title: 'Gagal', description: 'Gagal mengubah data', variant: 'destructive' })
} }
} catch (error) { } catch (error) {
console.warn('Error editing form:', error) console.warn('Error editing form:', error)
toast({ title: 'Gagal', description: 'Gagal mengubah data', variant: 'destructive' })
isSuccess = false isSuccess = false
} finally { } finally {
if (isSuccess) { if (isSuccess) {
@@ -63,15 +82,19 @@ export async function handleActionEdit(id: number | string, values: any, refresh
} }
} }
export async function handleActionRemove(id: number | string, refresh: () => void) { export async function handleActionRemove(id: number | string, refresh: () => void, toast: (params: any) => void) {
isProcessing.value = true isProcessing.value = true
try { try {
const result = await removeSourceMaterial(id) const result = await removeSourceMaterial(id)
if (result.success) { if (result.success) {
toast({ title: 'Berhasil', description: 'Data berhasil dihapus', variant: 'default' })
if (refresh) refresh() if (refresh) refresh()
} else {
toast({ title: 'Gagal', description: 'Gagal menghapus data', variant: 'destructive' })
} }
} catch (error) { } catch (error) {
console.error('Error deleting record:', error) console.error('Error deleting record:', error)
toast({ title: 'Gagal', description: 'Gagal menghapus data', variant: 'destructive' })
} finally { } finally {
onResetState() onResetState()
isProcessing.value = false isProcessing.value = false