diff --git a/core/core-frontend/src/views/template/component/DeTemplateImport.vue b/core/core-frontend/src/views/template/component/DeTemplateImport.vue index 80232c26e7..20e11fbeb3 100644 --- a/core/core-frontend/src/views/template/component/DeTemplateImport.vue +++ b/core/core-frontend/src/views/template/component/DeTemplateImport.vue @@ -65,8 +65,12 @@ - {{ t('commons.cancel') }} - {{ t('commons.confirm') }} + {{ + t('commons.cancel') + }} + {{ + t('commons.confirm') + }} @@ -80,6 +84,7 @@ import { useI18n } from '@/hooks/web/useI18n' const emits = defineEmits(['closeEditTemplateDialog', 'refresh', 'addCategoryInfo']) const { t } = useI18n() const filesRef = ref(null) +const loading = ref(false) const maxImageSize = 35000000 const props = defineProps({ pid: { @@ -180,6 +185,9 @@ const saveTemplate = () => { return false } + if (loading.value) return false + loading.value = true + if (props.optType === 'insert') { importTemplate() } else { @@ -196,17 +204,26 @@ const editTemplate = () => { optType: props.optType } // 全局名称校验 - nameCheck(nameCheckRequest).then(response => { - if (response.data.indexOf('exist') > -1) { - ElMessage.warning(t('template_manage.exists_name_hint')) - } else { - save(state.templateInfo).then(response => { - ElMessage.success(t('template_manage.edit_success')) - emits('refresh', getRefreshPInfo()) - emits('closeEditTemplateDialog') - }) - } - }) + nameCheck(nameCheckRequest) + .then(response => { + if (response.data.indexOf('exist') > -1) { + ElMessage.warning(t('template_manage.exists_name_hint')) + loading.value = false + } else { + save(state.templateInfo) + .then(() => { + ElMessage.success(t('template_manage.edit_success')) + emits('refresh', getRefreshPInfo()) + emits('closeEditTemplateDialog') + }) + .finally(() => { + loading.value = false + }) + } + }) + .catch(() => { + loading.value = false + }) } const getRefreshPInfo = () => { @@ -231,36 +248,57 @@ const importTemplate = () => { categories: state.templateInfo.categories, optType: props.optType } - categoryTemplateNameCheck(nameCheckRequest).then(response => { - if (response.data.indexOf('exist') > -1) { - ElMessageBox.confirm(t('template_manage.hint'), { - tip: t('template_manage.cover_exists_hint'), - confirmButtonType: 'danger', - type: 'warning', - autofocus: false, - showClose: false - }).then(() => { - save(state.templateInfo).then(() => { - ElMessage.success(t('template_manage.cover_success')) - emits('refresh', getRefreshPInfo()) - emits('closeEditTemplateDialog') + categoryTemplateNameCheck(nameCheckRequest) + .then(response => { + if (response.data.indexOf('exist') > -1) { + ElMessageBox.confirm(t('template_manage.hint'), { + tip: t('template_manage.cover_exists_hint'), + confirmButtonType: 'danger', + type: 'warning', + autofocus: false, + showClose: false }) - }) - } else { - // 全局名称校验 - nameCheck(nameCheckRequest).then(response => { - if (response.data.indexOf('exist') > -1) { - ElMessage.warning(t('template_manage.exists_name_hint')) - } else { - save(state.templateInfo).then(rsp => { - ElMessage.success(t('template_manage.import_success')) - emits('refresh', getRefreshPInfo()) - emits('closeEditTemplateDialog') + .then(() => { + save(state.templateInfo) + .then(() => { + ElMessage.success(t('template_manage.cover_success')) + emits('refresh', getRefreshPInfo()) + emits('closeEditTemplateDialog') + }) + .finally(() => { + loading.value = false + }) }) - } - }) - } - }) + .catch(() => { + loading.value = false + }) + } else { + // 全局名称校验 + nameCheck(nameCheckRequest) + .then(response => { + if (response.data.indexOf('exist') > -1) { + ElMessage.warning(t('template_manage.exists_name_hint')) + loading.value = false + } else { + save(state.templateInfo) + .then(() => { + ElMessage.success(t('template_manage.import_success')) + emits('refresh', getRefreshPInfo()) + emits('closeEditTemplateDialog') + }) + .finally(() => { + loading.value = false + }) + } + }) + .catch(() => { + loading.value = false + }) + } + }) + .catch(() => { + loading.value = false + }) } const handleFileChange = e => {