From 451619fb885a452322592c0b08a670b5dc1b3701 Mon Sep 17 00:00:00 2001 From: alexm Date: Tue, 23 Jul 2024 10:09:42 +0200 Subject: [PATCH] hotFix(VnTable): add ctrl + click --- src/components/VnTable/VnTable.vue | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/components/VnTable/VnTable.vue b/src/components/VnTable/VnTable.vue index 162c3a5191..ef8d69729b 100644 --- a/src/components/VnTable/VnTable.vue +++ b/src/components/VnTable/VnTable.vue @@ -37,6 +37,10 @@ const $props = defineProps({ type: [Function, Boolean], default: null, }, + rowCtrlClick: { + type: [Function, Boolean], + default: null, + }, redirect: { type: String, default: null, @@ -203,6 +207,16 @@ const rowClickFunction = computed(() => { return () => {}; }); +const rowCtrlClickFunction = computed(() => { + if ($props.rowCtrlClick != undefined) return $props.rowCtrlClick; + if ($props.redirect) + return (evt, { id }) => { + stopEventPropagation(evt); + window.open(`/#/${$props.redirect}/${id}`, '_blank'); + }; + return () => {}; +}); + function redirectFn(id) { router.push({ path: `/${$props.redirect}/${id}` }); } @@ -417,6 +431,11 @@ defineExpose({ class="no-margin q-px-xs" :class="[getColAlign(col), col.class, col.columnField?.class]" v-if="col.visible ?? true" + @click.ctrl=" + ($event) => + rowCtrlClickFunction && + rowCtrlClickFunction($event, row) + " >