diff --git a/src/components/VnTable/VnTable.vue b/src/components/VnTable/VnTable.vue index ea7cf1dda..0393bda3a 100644 --- a/src/components/VnTable/VnTable.vue +++ b/src/components/VnTable/VnTable.vue @@ -15,6 +15,7 @@ import VnTableChip from 'components/VnTable/VnChip.vue'; import VnVisibleColumn from 'src/components/VnTable/VnVisibleColumn.vue'; import VnLv from 'components/ui/VnLv.vue'; import VnTableOrder from 'src/components/VnTable/VnOrder.vue'; +import ContextMenu from 'src/components/common/ContextMenu.vue'; const $props = defineProps({ columns: { @@ -113,6 +114,10 @@ const $props = defineProps({ type: Boolean, default: false, }, + contextMenuItems: { + type: Array, + default: () => [], + }, }); const { t } = useI18n(); const stateStore = useStateStore(); @@ -544,6 +549,14 @@ function handleSelection({ evt, added, rows: selectedRows }, rows) { component-prop="columnField" /> + + en: status: Status diff --git a/src/components/common/ContextMenu.vue b/src/components/common/ContextMenu.vue new file mode 100644 index 000000000..b4c751d99 --- /dev/null +++ b/src/components/common/ContextMenu.vue @@ -0,0 +1,186 @@ + + + diff --git a/src/filters/toCurrency.js b/src/filters/toCurrency.js index f820c0127..31240e684 100644 --- a/src/filters/toCurrency.js +++ b/src/filters/toCurrency.js @@ -1,9 +1,9 @@ -import { useI18n } from 'vue-i18n'; +import { i18n } from 'src/boot/i18n'; export default function (value, symbol = 'EUR', fractionSize = 2) { if (value == null || value === '') value = 0; - const { locale } = useI18n(); + const locale = i18n.global?.locale?.value; const options = { style: 'currency', diff --git a/src/filters/toDate.js b/src/filters/toDate.js index 8fe8f3836..96c7075e6 100644 --- a/src/filters/toDate.js +++ b/src/filters/toDate.js @@ -1,4 +1,4 @@ -import { useI18n } from 'vue-i18n'; +import { i18n } from 'src/boot/i18n'; export default function (value, options = {}) { if (!value) return; @@ -9,8 +9,7 @@ export default function (value, options = {}) { options.year = 'numeric'; } - const { locale } = useI18n(); const date = new Date(value); - + const locale = i18n.global?.locale?.value; return new Intl.DateTimeFormat(locale.value, options).format(date); } diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml index ecfa2c8fe..990b1a129 100644 --- a/src/i18n/locale/en.yml +++ b/src/i18n/locale/en.yml @@ -833,6 +833,12 @@ item: specie: Specie components: topbar: {} + contextMenu: + filterBySelection: Filter by selection + excludeSelection: Exclude selection + removeFilter: Remove filter + removeAllFilters: Remove all filters + copyValue: Copy value itemsFilterPanel: typeFk: Type value: Value diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml index def0b0696..e6dd5bdd8 100644 --- a/src/i18n/locale/es.yml +++ b/src/i18n/locale/es.yml @@ -827,6 +827,12 @@ item: concept: Concepto components: topbar: {} + contextMenu: + filterBySelection: Filtro por selección + excludeSelection: Excluir selección + removeFilter: Quitar filtro por selección + removeAllFilters: Eliminar todos los filtros + copyValue: Copiar valor itemsFilterPanel: typeFk: Tipo value: Valor diff --git a/src/pages/Ticket/TicketFilter.vue b/src/pages/Ticket/TicketFilter.vue index bde27f30e..12ca5fcbc 100644 --- a/src/pages/Ticket/TicketFilter.vue +++ b/src/pages/Ticket/TicketFilter.vue @@ -47,7 +47,23 @@ const getGroupedStates = (data) => { /> - + + -