diff --git a/src/pages/Item/ItemFixedPrice.vue b/src/pages/Item/ItemFixedPrice.vue index def2d73c2..fa7364442 100644 --- a/src/pages/Item/ItemFixedPrice.vue +++ b/src/pages/Item/ItemFixedPrice.vue @@ -2,9 +2,10 @@ import { onMounted, ref, onUnmounted, computed, watch } from 'vue'; import axios from 'axios'; import { useI18n } from 'vue-i18n'; +import { useQuasar } from 'quasar'; + import { useStateStore } from 'stores/useStateStore'; import { useState } from 'src/composables/useState'; - import { beforeSave } from 'src/composables/updateMinPriceBeforeSave'; import FetchedTags from 'components/ui/FetchedTags.vue'; @@ -15,13 +16,13 @@ import RightMenu from 'src/components/common/RightMenu.vue'; import VnTable from 'src/components/VnTable/VnTable.vue'; import VnColor from 'src/components/common/VnColor.vue'; -import { toDate } from 'src/filters'; +import { toDate, toCurrency } from 'src/filters'; import { isLower, isBigger } from 'src/filters/date.js'; import ItemFixedPriceFilter from './ItemFixedPriceFilter.vue'; import ItemDescriptorProxy from './Card/ItemDescriptorProxy.vue'; -import { toCurrency } from 'src/filters'; const stateStore = useStateStore(); +const quasar = useQuasar(); const { t } = useI18n(); const tableRef = ref(); const editFixedPriceForm = ref(null); @@ -219,9 +220,13 @@ const dateStyle = (date) => } : { color: dateColor, 'background-color': 'transparent' }; -const onDataSaved = () => { - tableRef.value.CrudModelRef.saveChanges(); +const onDataSaved = async (data) => { + for (const row of data) { + await axios.patch('FixedPrices/upsertFixedPrice', row); + } selectedRows.value = []; + tableRef.value.reload(); + tableRef.value.CrudModelRef.reset(); }; async function saveData(data, getChanges) { @@ -236,6 +241,10 @@ async function saveData(data, getChanges) { if (data?.deletes?.length) { for (const deleteItem of data.deletes) { await axios.delete(`FixedPrices/${deleteItem}`); + quasar.notify({ + message: t('globals.dataDeleted'), + color: 'positive', + }); } } tableRef.value.reload(); diff --git a/src/pages/Item/components/EditFixedPriceForm.vue b/src/pages/Item/components/EditFixedPriceForm.vue index 9c6a63893..06e4aa647 100644 --- a/src/pages/Item/components/EditFixedPriceForm.vue +++ b/src/pages/Item/components/EditFixedPriceForm.vue @@ -26,7 +26,6 @@ const $props = defineProps({ default: () => {}, }, }); - const { t } = useI18n(); const emit = defineEmits(['onDataSaved']); @@ -38,7 +37,7 @@ const inputs = { select: markRaw(VnSelect), }; -const newValue = ref(null); +const newFieldValue = ref(null); const selectedField = ref(null); const closeButton = ref(null); const isLoading = ref(false); @@ -46,7 +45,11 @@ const isLoading = ref(false); const onSubmit = async () => { isLoading.value = true; $props.rows.forEach((row) => { - row[selectedField.value.name] = newValue.value; + const newValue = + selectedField.value.component === 'number' + ? parseInt(newFieldValue.value) + : newFieldValue.value; + row[selectedField.value.name] = newValue; }); emit('onDataSaved', $props.rows); closeForm(); @@ -77,11 +80,19 @@ const closeForm = () => { data-cy="EditFixedPriceSelectOption" @update:model-value="newValue = null" :class="{ 'is-select': selectedField?.component === 'select' }" - /> + > + +