diff --git a/src/components/VnTable/VnTable.vue b/src/components/VnTable/VnTable.vue index 3eea028d8..aa9a3bb44 100644 --- a/src/components/VnTable/VnTable.vue +++ b/src/components/VnTable/VnTable.vue @@ -35,6 +35,7 @@ import { getColAlign } from 'src/composables/getColAlign'; import RightMenu from '../common/RightMenu.vue'; import VnContextMenu from './VnContextMenu.vue'; import VnScroll from '../common/VnScroll.vue'; +import VnMultiCheck from '../common/VnMultiCheck.vue'; const arrayData = useArrayData(useAttrs()['data-key']); const $props = defineProps({ @@ -114,6 +115,10 @@ const $props = defineProps({ type: Object, default: () => ({}), }, + multiCheck: { + type: Object, + default: () => ({}), + }, crudModel: { type: Object, default: () => ({}), @@ -158,6 +163,7 @@ const CARD_MODE = 'card'; const TABLE_MODE = 'table'; const mode = ref(CARD_MODE); const selected = ref([]); +const selectAll = ref(false); const hasParams = ref(false); const CrudModelRef = ref({}); const showForm = ref(false); @@ -645,6 +651,23 @@ const rowCtrlClickFunction = computed(() => { }; return () => {}; }); +const handleMultiCheck = (value) => { + if (value) { + selected.value = tableRef.value.rows; + } else { + selected.value = []; + } + emit('update:selected', selected.value); +}; + +const handleSelectedAll = (data) => { + if (data) { + selected.value = data; + } else { + selected.value = []; + } + emit('update:selected', selected.value); +}; + <<<<<<< HEAD + ======= >>>>>>> 172b2d157479ccc10c9163961b89d89a6a675e42 +import { ref } from 'vue'; +import VnCheckbox from './VnCheckbox.vue'; +import axios from 'axios'; +import { toRaw } from 'vue'; +import { useI18n } from 'vue-i18n'; +import { useRoute } from 'vue-router'; +const route = useRoute(); +const { t } = useI18n(); +const model = defineModel({ type: [Boolean] }); +const props = defineProps({ + expand: { + type: Boolean, + default: false, + }, + url: { + type: String, + default: null, + required: true, + }, + searchUrl: { + type: [String, Boolean], + default: 'table', + }, +}); +const value = ref(false); +const rows = ref(0); +const onClick = () => { + if (value.value) { + const { filter } = JSON.parse(route.query[props.searchUrl]); + filter.limit = 0; + const params = { + params: { filter: JSON.stringify(filter) }, + }; + axios + .get(props.url, params) + .then(({ data }) => { + rows.value = data; + }) + .catch(console.error); + } +}; +defineEmits(['update:selected', 'select:all']); + + + + +en: + Select all: 'Select all ({rows})' +fr: + Select all: 'Sélectionner tout ({rows})' +es: + Select all: 'Seleccionar todo ({rows})' +de: + Select all: 'Alle auswählen ({rows})' +it: + Select all: 'Seleziona tutto ({rows})' +pt: + Select all: 'Selecionar tudo ({rows})' + diff --git a/src/components/ui/VnPaginate.vue b/src/components/ui/VnPaginate.vue index b232e6c05..8a3c5a616 100644 --- a/src/components/ui/VnPaginate.vue +++ b/src/components/ui/VnPaginate.vue @@ -222,7 +222,7 @@ defineExpose({ diff --git a/src/pages/Ticket/Card/TicketPackage.vue b/src/pages/Ticket/Card/TicketPackage.vue index 5fbf4c800..ff55bf9d4 100644 --- a/src/pages/Ticket/Card/TicketPackage.vue +++ b/src/pages/Ticket/Card/TicketPackage.vue @@ -49,88 +49,95 @@ watch( -
- - + +
diff --git a/src/pages/Ticket/TicketAdvance.vue b/src/pages/Ticket/TicketAdvance.vue index ea6c76781..c98484ea3 100644 --- a/src/pages/Ticket/TicketAdvance.vue +++ b/src/pages/Ticket/TicketAdvance.vue @@ -385,7 +385,12 @@ watch( if (!$el) return; const head = $el.querySelector('thead'); const firstRow = $el.querySelector('thead > tr'); - + const headSelectionCol = $el.querySelector( + 'thead tr.bg-header th.q-table--col-auto-width', + ); + if (headSelectionCol) { + headSelectionCol.classList.add('horizontal-separator'); + } const newRow = document.createElement('tr'); destinationElRef.value = document.createElement('th'); originElRef.value = document.createElement('th'); @@ -394,8 +399,8 @@ watch( destinationElRef.value.classList.add('text-uppercase', 'color-vn-label'); originElRef.value.classList.add('text-uppercase', 'color-vn-label'); - destinationElRef.value.setAttribute('colspan', '7'); - originElRef.value.setAttribute('colspan', '9'); + destinationElRef.value.setAttribute('colspan', '10'); + originElRef.value.setAttribute('colspan', '10'); destinationElRef.value.textContent = `${t( 'advanceTickets.destination', @@ -490,8 +495,6 @@ watch( selection: 'multiple', }" v-model:selected="selectedTickets" - :pagination="{ rowsPerPage: 0 }" - :no-data-label="$t('globals.noResults')" :right-search="false" :order="['futureTotalWithVat ASC']" auto-load diff --git a/src/pages/Zone/ZoneList.vue b/src/pages/Zone/ZoneList.vue index 355eb900e..c8e2f1646 100644 --- a/src/pages/Zone/ZoneList.vue +++ b/src/pages/Zone/ZoneList.vue @@ -189,16 +189,14 @@ const exprBuilder = (param, value) => { return { code: { like: `%${value}%` }, }; + case 'id': + case 'price': case 'agencyModeFk': return { - agencyModeFk: value, + [param]: value, }; case 'search': return /^\d+$/.test(value) ? { id: value } : { name: { like: `%${value}%` } }; - case 'price': - return { - price: value, - }; } }; diff --git a/test/cypress/integration/item/ItemFixedPrice.spec.js b/test/cypress/integration/item/ItemFixedPrice.spec.js index 41230f570..2b92c861e 100644 --- a/test/cypress/integration/item/ItemFixedPrice.spec.js +++ b/test/cypress/integration/item/ItemFixedPrice.spec.js @@ -54,7 +54,7 @@ describe('Handle Items FixedPrice', () => { }); it('should edit all items', () => { - cy.get('.bg-header > :nth-child(1) > .q-checkbox > .q-checkbox__inner').click(); + cy.get('.bg-header > :nth-child(1) [data-cy="vnCheckbox"]').click(); cy.dataCy('FixedPriceToolbarEditBtn').should('not.be.disabled'); cy.dataCy('FixedPriceToolbarEditBtn').click(); cy.dataCy('EditFixedPriceSelectOption').type(grouping); @@ -65,7 +65,7 @@ describe('Handle Items FixedPrice', () => { }); it('should remove all items', () => { - cy.get('.bg-header > :nth-child(1) > .q-checkbox > .q-checkbox__inner').click(); + cy.get('.bg-header > :nth-child(1) [data-cy="vnCheckbox"]').click(); cy.dataCy('crudModelDefaultRemoveBtn').should('not.be.disabled'); cy.dataCy('crudModelDefaultRemoveBtn').click(); cy.dataCy('VnConfirm_confirm').click();