diff --git a/src/components/CrudModel.vue b/src/components/CrudModel.vue index 81276e7b0..7e8c6a3de 100644 --- a/src/components/CrudModel.vue +++ b/src/components/CrudModel.vue @@ -83,7 +83,7 @@ const saveButtonRef = ref(null); const watchChanges = ref(); const formUrl = computed(() => $props.url); -const emit = defineEmits(['onFetch', 'update:selected', 'saveChanges']); +const emit = defineEmits(['onFetch', 'update:selected', 'saveChanges', 'dataError']); defineExpose({ reload, @@ -161,11 +161,7 @@ async function onSubmit() { isLoading.value = true; await saveChanges($props.saveFn ? formData.value : null); } catch (e) { - const errMessage = e?.response?.data?.error?.message; - quasar.notify({ - type: 'negative', - message: t(`${errMessage}`), - }); + emit('dataError', e); } } diff --git a/src/pages/Item/Card/ItemTags.vue b/src/pages/Item/Card/ItemTags.vue index 992b1042b..d64929f78 100644 --- a/src/pages/Item/Card/ItemTags.vue +++ b/src/pages/Item/Card/ItemTags.vue @@ -9,6 +9,7 @@ import VnInput from 'src/components/common/VnInput.vue'; import FetchData from 'components/FetchData.vue'; import VnSelect from 'src/components/common/VnSelect.vue'; import axios from 'axios'; +import { useQuasar } from 'quasar'; const route = useRoute(); const { t } = useI18n(); @@ -16,7 +17,7 @@ const { t } = useI18n(); const itemTagsRef = ref(null); const tagOptions = ref([]); const valueOptionsMap = ref(new Map()); - +const quasar = useQuasar(); const getSelectedTagValues = async (tag) => { if (!tag.tagFk && tag.tag.isFree) return; const filter = { @@ -63,6 +64,15 @@ const insertTag = (rows) => { const submitTags = async (data) => { itemTagsRef.value.onSubmit(data); }; + +const errMessage = ref(); +function showError(error) { + errMessage.value = error?.response?.data?.error?.message; + quasar.notify({ + type: 'negative', + message: t(`${errMessage.value}`), + }); +}