diff --git a/src/boot/axios.js b/src/boot/axios.js index e3e7289af..4fd83ddea 100644 --- a/src/boot/axios.js +++ b/src/boot/axios.js @@ -1,11 +1,10 @@ import axios from 'axios'; -import { Notify } from 'quasar'; import { useSession } from 'src/composables/useSession'; import { Router } from 'src/router'; -import { i18n } from './i18n'; +import useNotify from 'src/composables/useNotify.js'; const session = useSession(); -const { t } = i18n.global; +const { notify } = useNotify(); axios.defaults.baseURL = '/api/'; @@ -27,10 +26,7 @@ const onResponse = (response) => { const isSaveRequest = method === 'patch'; if (isSaveRequest) { - Notify.create({ - message: t('globals.dataSaved'), - type: 'positive', - }); + notify('globals.dataSaved', 'positive'); } return response; @@ -67,10 +63,7 @@ const onResponseError = (error) => { return Promise.reject(error); } - Notify.create({ - message: t(message), - type: 'negative', - }); + notify(message, 'negative'); return Promise.reject(error); }; diff --git a/src/components/CrudModel.vue b/src/components/CrudModel.vue index c26a9c4a5..d5d8e2a91 100644 --- a/src/components/CrudModel.vue +++ b/src/components/CrudModel.vue @@ -148,7 +148,7 @@ async function onSubmit() { await saveChanges($props.saveFn ? formData.value : null); } -async function onSumbitAndGo() { +async function onSubmitAndGo() { await onSubmit(); push({ path: $props.goTo }); } @@ -339,7 +339,7 @@ watch(formUrl, async () => { /> +defineProps({ + title: { type: String, default: null }, + content: { type: [String, Number], default: null }, +}); + + diff --git a/src/components/ui/CardDescriptor.vue b/src/components/ui/CardDescriptor.vue index b2084479d..8bb2a603e 100644 --- a/src/components/ui/CardDescriptor.vue +++ b/src/components/ui/CardDescriptor.vue @@ -39,6 +39,7 @@ const $props = defineProps({ }); const state = useState(); +const route = useRoute(); const { t } = useI18n(); const { viewSummary } = useSummaryDialog(); let arrayData; @@ -57,7 +58,7 @@ onBeforeMount(async () => { store = arrayData.store; entity = computed(() => (Array.isArray(store.data) ? store.data[0] : store.data)); // It enables to load data only once if the module is the same as the dataKey - if ($props.dataKey !== useRoute().meta.moduleName) await getData(); + if ($props.dataKey !== route.meta.moduleName || !route.params.id) await getData(); watch( () => [$props.url, $props.filter], async () => await getData() diff --git a/src/components/ui/CardSummary.vue b/src/components/ui/CardSummary.vue index cab5b98be..ceff9028a 100644 --- a/src/components/ui/CardSummary.vue +++ b/src/components/ui/CardSummary.vue @@ -22,6 +22,10 @@ const props = defineProps({ type: String, default: '', }, + moduleName: { + type: String, + default: null, + }, }); const emit = defineEmits(['onFetch']); const route = useRoute(); @@ -83,7 +87,7 @@ function existSummary(routes) { v-if="showRedirectToSummaryIcon" class="header link" :to="{ - name: `${route.meta.moduleName}Summary`, + name: `${moduleName ?? route.meta.moduleName}Summary`, params: { id: entityId || entity.id }, }" > diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml index f46d7e3ab..4601edfe8 100644 --- a/src/i18n/locale/en.yml +++ b/src/i18n/locale/en.yml @@ -113,6 +113,7 @@ globals: name: Name new: New comment: Comment + observations: Observations errors: statusUnauthorized: Access denied statusInternalServerError: An internal server error has ocurred diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml index 8f0305d0e..31b3c7a5d 100644 --- a/src/i18n/locale/es.yml +++ b/src/i18n/locale/es.yml @@ -114,6 +114,7 @@ globals: name: Nombre new: Nuevo comment: Comentario + observations: Observaciones errors: statusUnauthorized: Acceso denegado statusInternalServerError: Ha ocurrido un error interno del servidor diff --git a/src/pages/Department/Card/DepartmentDescriptorProxy.vue b/src/pages/Department/Card/DepartmentDescriptorProxy.vue index 07a6b6af1..5b556f655 100644 --- a/src/pages/Department/Card/DepartmentDescriptorProxy.vue +++ b/src/pages/Department/Card/DepartmentDescriptorProxy.vue @@ -1,6 +1,6 @@ + + diff --git a/src/pages/Travel/Card/TravelLog.vue b/src/pages/Travel/Card/TravelLog.vue index 1a2667ff7..a1f774769 100644 --- a/src/pages/Travel/Card/TravelLog.vue +++ b/src/pages/Travel/Card/TravelLog.vue @@ -2,5 +2,5 @@ import VnLog from 'src/components/common/VnLog.vue'; diff --git a/src/pages/Travel/ExtraCommunity.vue b/src/pages/Travel/ExtraCommunity.vue index 639c7d894..98648512f 100644 --- a/src/pages/Travel/ExtraCommunity.vue +++ b/src/pages/Travel/ExtraCommunity.vue @@ -2,7 +2,6 @@ import { onMounted, ref, computed, watch } from 'vue'; import { QBtn } from 'quasar'; import { useI18n } from 'vue-i18n'; -import { useRouter } from 'vue-router'; import SupplierDescriptorProxy from 'src/pages/Supplier/Card/SupplierDescriptorProxy.vue'; import TravelDescriptorProxy from 'src/pages/Travel/Card/TravelDescriptorProxy.vue'; @@ -19,8 +18,8 @@ import { usePrintService } from 'composables/usePrintService'; import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue'; import axios from 'axios'; import RightMenu from 'src/components/common/RightMenu.vue'; +import VnPopup from 'src/components/common/VnPopup.vue'; -const router = useRouter(); const stateStore = useStateStore(); const { t } = useI18n(); const { openReport } = usePrintService(); @@ -125,6 +124,10 @@ const tableColumnComponents = { component: 'span', attrs: {}, }, + notes: { + component: 'span', + attrs: {}, + }, }; const columns = computed(() => [ @@ -250,6 +253,14 @@ const columns = computed(() => [ sortable: true, format: (value) => toDate(value), }, + { + label: t('notes'), + field: '', + name: 'notes', + align: 'center', + showValue: false, + sortable: true, + }, ]); async function getData() { @@ -298,10 +309,6 @@ const saveFieldValue = async (val, field, index) => { } }; -const navigateToTravelId = (id) => { - router.push({ path: `/travel/${id}` }); -}; - const stopEventPropagation = (event, col) => { // Detener la propagación del evento de los siguientes elementos para evitar el click sobre la row que dispararía la función navigateToTravelId if (!['ref', 'id', 'cargoSupplierNickname', 'kg'].includes(col.name)) return; @@ -486,7 +493,7 @@ const getColor = (percentage) => { { + + + + + diff --git a/src/router/modules/department.js b/src/router/modules/department.js index dfd5e64ba..9aab40534 100644 --- a/src/router/modules/department.js +++ b/src/router/modules/department.js @@ -9,7 +9,7 @@ export default { moduleName: 'Department', }, component: RouterView, - redirect: { name: 'DepartmentCard' }, + redirect: { name: 'WorkerDepartment' }, menus: { main: [], card: ['DepartmentBasicData'], diff --git a/src/router/modules/ticket.js b/src/router/modules/ticket.js index 6cb7291dc..71b926308 100644 --- a/src/router/modules/ticket.js +++ b/src/router/modules/ticket.js @@ -12,7 +12,7 @@ export default { redirect: { name: 'TicketMain' }, menus: { main: ['TicketList'], - card: ['TicketBoxing', 'TicketSms', 'TicketSale'], + card: ['TicketBoxing', 'TicketSms', 'TicketSale', 'TicketLog'], }, children: [ { @@ -93,6 +93,15 @@ export default { }, component: () => import('src/pages/Ticket/Card/TicketSms.vue'), }, + { + path: 'log', + name: 'TicketLog', + meta: { + title: 'log', + icon: 'history', + }, + component: () => import('src/pages/Ticket/Card/TicketLog.vue'), + }, ], }, ],