diff --git a/src/api/magicApi/index.ts b/src/api/magicApi/index.ts index 1e4139e..dde64ba 100644 --- a/src/api/magicApi/index.ts +++ b/src/api/magicApi/index.ts @@ -22,6 +22,7 @@ export const requestMagicApi = ( }, { errorMessageMode: mode, + ignoreErrorInEditor: true }, ); }; diff --git a/src/components/SecondDev/AjaxErrorIcon.vue b/src/components/SecondDev/AjaxErrorIcon.vue new file mode 100644 index 0000000..c771517 --- /dev/null +++ b/src/components/SecondDev/AjaxErrorIcon.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/hooks/core/useGlobalFlag.ts b/src/hooks/core/useGlobalFlag.ts new file mode 100644 index 0000000..3df4b63 --- /dev/null +++ b/src/hooks/core/useGlobalFlag.ts @@ -0,0 +1,20 @@ +import { ref } from 'vue'; + +const isEditorOpen = ref(false); +const hasAjaxError = ref(false); + +function ajaxError() { + hasAjaxError.value = true; + setTimeout(() => { + hasAjaxError.value = false; + }, 10000); +} + +export default function() { + return { + isEditorOpen, + hasAjaxError, + ajaxError + } +} + diff --git a/src/utils/http/axios/index.ts b/src/utils/http/axios/index.ts index 62a7ad6..e03717b 100644 --- a/src/utils/http/axios/index.ts +++ b/src/utils/http/axios/index.ts @@ -22,10 +22,12 @@ import { useGo } from '/@/hooks/web/usePage'; import { validateScript } from '/@/utils/event/design'; import { notification } from 'ant-design-vue'; import { throttle } from 'lodash-es'; +import useGlobalFlag from '/@/hooks/core/useGlobalFlag'; const globSetting = useGlobSetting(); const urlPrefix = globSetting.urlPrefix; const { createMessage, createErrorModal } = useMessage(); +const { isEditorOpen, ajaxError } = useGlobalFlag(); const showNetworkError = function() { notification.error({ @@ -92,10 +94,14 @@ const transform: AxiosTransform = { // errorMessageMode=‘modal’的时候会显示modal错误弹窗,而不是消息提示,用于一些比较重要的错误 // errorMessageMode='none' 一般是调用时明确表示不希望自动弹出错误提示 - if (options.errorMessageMode === 'modal') { - createErrorModal({ title: t('错误提示'), content: timeoutMsg }); - } else if (options.errorMessageMode === 'message') { - createMessage.error(timeoutMsg); + if (options.ignoreErrorInEditor && isEditorOpen.value) { + ajaxError(); + } else { + if (options.errorMessageMode === 'modal') { + createErrorModal({ title: t('错误提示'), content: timeoutMsg }); + } else if (options.errorMessageMode === 'message') { + createMessage.error(timeoutMsg); + } } throw new Error(timeoutMsg || t('请求出错,请稍候重试')); @@ -187,6 +193,7 @@ const transform: AxiosTransform = { let errMessage = ''; try { + if (code === 'ECONNABORTED' && message.indexOf('timeout') !== -1) { trNetworkError(); } else if (err?.includes('Network Error')) { diff --git a/src/views/form/design/components/components/DataFirstModal.vue b/src/views/form/design/components/components/DataFirstModal.vue index 5137e39..8482ee6 100644 --- a/src/views/form/design/components/components/DataFirstModal.vue +++ b/src/views/form/design/components/components/DataFirstModal.vue @@ -13,6 +13,7 @@
+ {{ t('上一步') }} @@ -34,12 +35,13 @@