diff --git a/resources/js/Pages/Superuser/Menu/Index.vue b/resources/js/Pages/Superuser/Menu/Index.vue index 3caea1f..92cc9e7 100644 --- a/resources/js/Pages/Superuser/Menu/Index.vue +++ b/resources/js/Pages/Superuser/Menu/Index.vue @@ -107,8 +107,14 @@ const destroy = async menu => { const submit = () => form.id ? update() : store() +const timeout = ref(null) const save = () => { - return useForm({ menus: menus.value }).patch(route('superuser.menu.save')) + timeout.value && clearTimeout(timeout.value) + timeout.value = setTimeout(() => { + return useForm({ menus: menus.value }).patch(route('superuser.menu.save'), { + onFinish: () => clearTimeout(timeout.value) + }, 100) + }) } const esc = e => e.key === 'Escape' && close() @@ -143,18 +149,7 @@ onUnmounted(() => window.removeEventListener('keydown', esc)) - - diff --git a/resources/js/Pages/Superuser/Menu/Nested.vue b/resources/js/Pages/Superuser/Menu/Nested.vue index 0cb0434..c812bfd 100644 --- a/resources/js/Pages/Superuser/Menu/Nested.vue +++ b/resources/js/Pages/Superuser/Menu/Nested.vue @@ -4,8 +4,9 @@ import Dragable from 'vuedraggable' import Icon from '@/Components/Icon.vue' const self = getCurrentInstance() -const { menus, edit, destroy } = defineProps({ +const { menus, edit, destroy, save } = defineProps({ menus: Array, + save: Function, edit: Function, destroy: Function, }) @@ -16,7 +17,8 @@ const { menus, edit, destroy } = defineProps({ tag="ul" :list="menus" :group="{ name: 'g1' }" - item-key="name"> + item-key="id" + @change="save">