diff --git a/src/views/system/Menu/Detail/ButtonMange.vue b/src/views/system/Menu/Detail/ButtonMange.vue index 41e52f86..77d8f618 100644 --- a/src/views/system/Menu/Detail/ButtonMange.vue +++ b/src/views/system/Menu/Detail/ButtonMange.vue @@ -122,7 +122,8 @@ const table = reactive({ routeParams.id && getMenuInfo_api(routeParams.id).then((resp: any) => { menuInfo.value = resp.result; - table.tableData = resp.result.buttons as tableDataItem[]; + table.tableData = + (resp.result?.buttons as tableDataItem[]) || []; }); }, clickDel: (row: tableDataItem) => { diff --git a/src/views/system/Menu/components/ButtonAddDialog.vue b/src/views/system/Menu/components/ButtonAddDialog.vue index 5bec96ea..ffc69edb 100644 --- a/src/views/system/Menu/components/ButtonAddDialog.vue +++ b/src/views/system/Menu/components/ButtonAddDialog.vue @@ -95,8 +95,8 @@ const confirm = () => { loading.value = true; formRef.value && formRef.value.validate().then(() => { - const buttons = toRaw(props.menuInfo.buttons); - const button = buttons.find((item) => item.id === form.data.id); + const buttons = toRaw(props.menuInfo?.buttons); + const button = buttons?.find((item) => item.id === form.data.id); if (button) { Object.entries(form.data).forEach(([key, value]) => { button[key] = value; @@ -112,7 +112,10 @@ const confirm = () => { emits('confirm'); emits('update:visible', false); }) - .finally(() => (loading.value = false)); + .finally(() => (loading.value = false)) + .catch(() => { + loading.value = false; + }); }); }; const initForm = {