From 51afa21fa4a5acc986d0ae3a7dbbe9a90a115e06 Mon Sep 17 00:00:00 2001 From: jtubau Date: Mon, 10 Feb 2025 13:41:03 +0100 Subject: [PATCH 1/3] feat: refs #8440 add VehicleNotes component and update routing --- src/pages/Route/Vehicle/Card/VehicleNotes.vue | 34 +++++++++++++++++++ src/router/modules/route.js | 11 +++++- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 src/pages/Route/Vehicle/Card/VehicleNotes.vue diff --git a/src/pages/Route/Vehicle/Card/VehicleNotes.vue b/src/pages/Route/Vehicle/Card/VehicleNotes.vue new file mode 100644 index 000000000..320e9150d --- /dev/null +++ b/src/pages/Route/Vehicle/Card/VehicleNotes.vue @@ -0,0 +1,34 @@ + + + \ No newline at end of file diff --git a/src/router/modules/route.js b/src/router/modules/route.js index 835324d20..86e0b39cc 100644 --- a/src/router/modules/route.js +++ b/src/router/modules/route.js @@ -166,7 +166,7 @@ const vehicleCard = { component: () => import('src/pages/Route/Vehicle/Card/VehicleCard.vue'), redirect: { name: 'VehicleSummary' }, meta: { - menu: ['VehicleBasicData'], + menu: ['VehicleBasicData', 'VehicleNotes'], }, children: [ { @@ -187,6 +187,15 @@ const vehicleCard = { }, component: () => import('src/pages/Route/Vehicle/Card/VehicleBasicData.vue'), }, + { + name: 'VehicleNotes', + path: 'notes', + meta: { + title: 'notes', + icon: 'vn:notes', + }, + component: () => import('src/pages/Route/Vehicle/Card/VehicleNotes.vue'), + } ], }; -- 2.40.1 From 62e8b5b30749b95cc9cbb71f517ed62b581feca4 Mon Sep 17 00:00:00 2001 From: jtubau Date: Wed, 12 Feb 2025 14:40:17 +0100 Subject: [PATCH 2/3] feat: refs #8440 add delete functionality to notes and update required attributes --- src/components/ui/VnNotes.vue | 55 ++++++++++++++----- src/pages/Route/Vehicle/Card/VehicleNotes.vue | 3 +- 2 files changed, 43 insertions(+), 15 deletions(-) diff --git a/src/components/ui/VnNotes.vue b/src/components/ui/VnNotes.vue index ec6289a67..cc0f78532 100644 --- a/src/components/ui/VnNotes.vue +++ b/src/components/ui/VnNotes.vue @@ -25,13 +25,16 @@ const $attrs = computed(() => { return rest; }); -const isRequired = computed(() => { - return Object.keys($attrs).includes('required') +const isRequired = ref(() => { + return Object.keys($attrs).includes('required'); +}); +const isDeletable = ref(() => { + return Object.keys($attrs).includes('removable'); }); const $props = defineProps({ url: { type: String, default: null }, - saveUrl: {type: String, default: null}, + saveUrl: { type: String, default: null }, filter: { type: Object, default: () => {} }, body: { type: Object, default: () => {} }, addNote: { type: Boolean, default: false }, @@ -52,6 +55,11 @@ function handleClick(e) { else insert(); } +async function deleteNote(e) { + await axios.delete(`${$props.url}/${e.id}`); + await vnPaginateRef.value.fetch(); +} + async function insert() { if (!newNote.text || ($props.selectType && !newNote.observationTypeFk)) return; @@ -65,7 +73,7 @@ async function insert() { } function confirmAndUpdate() { - if(!newNote.text && originalText) + if (!newNote.text && originalText) quasar .dialog({ component: VnConfirm, @@ -88,11 +96,17 @@ async function update() { ...body, ...{ notes: newNote.text }, }; - await axios.patch(`${$props.saveUrl ?? `${$props.url}/${$props.body.workerFk}`}`, newBody); + await axios.patch( + `${$props.saveUrl ?? `${$props.url}/${$props.body.workerFk}`}`, + newBody, + ); } onBeforeRouteLeave((to, from, next) => { - if ((newNote.text && !$props.justInput) || (newNote.text !== originalText) && $props.justInput) + if ( + (newNote.text && !$props.justInput) || + (newNote.text !== originalText && $props.justInput) + ) quasar.dialog({ component: VnConfirm, componentProps: { @@ -104,12 +118,11 @@ onBeforeRouteLeave((to, from, next) => { else next(); }); -function fetchData([ data ]) { +function fetchData([data]) { newNote.text = data?.notes; originalText = data?.notes; emit('onFetch', data); } - -- 2.40.1 From 3de0ebeccd7383d2f2f6fafaf7f7c31614a03e14 Mon Sep 17 00:00:00 2001 From: jtubau Date: Wed, 12 Feb 2025 14:52:05 +0100 Subject: [PATCH 3/3] refactor: refs #8440 remove unnecessary computed properties --- src/components/ui/VnNotes.vue | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/components/ui/VnNotes.vue b/src/components/ui/VnNotes.vue index cc0f78532..1663f6eb2 100644 --- a/src/components/ui/VnNotes.vue +++ b/src/components/ui/VnNotes.vue @@ -25,13 +25,6 @@ const $attrs = computed(() => { return rest; }); -const isRequired = ref(() => { - return Object.keys($attrs).includes('required'); -}); -const isDeletable = ref(() => { - return Object.keys($attrs).includes('removable'); -}); - const $props = defineProps({ url: { type: String, default: null }, saveUrl: { type: String, default: null }, -- 2.40.1