Merge pull request 'fix: FilterPanel when is multiline and VnTable vh on n toolbar' (!1657) from fix_itemFilter_multiLine into dev
gitea/salix-front/pipeline/head This commit looks good
Details
gitea/salix-front/pipeline/head This commit looks good
Details
Reviewed-on: #1657 Reviewed-by: Pablo Natek <pablone@verdnatura.es> Reviewed-by: Alex Moreno <alexm@verdnatura.es>
This commit is contained in:
commit
1e1096a108
|
@ -19,6 +19,7 @@ import { useQuasar, date } from 'quasar';
|
|||
import { useStateStore } from 'stores/useStateStore';
|
||||
import { useFilterParams } from 'src/composables/useFilterParams';
|
||||
import { dashIfEmpty, toDate } from 'src/filters';
|
||||
import { useTableHeight } from './filters/useTableHeight';
|
||||
|
||||
import CrudModel from 'src/components/CrudModel.vue';
|
||||
import FormModelPopup from 'components/FormModelPopup.vue';
|
||||
|
@ -117,7 +118,7 @@ const $props = defineProps({
|
|||
},
|
||||
tableHeight: {
|
||||
type: String,
|
||||
default: '90vh',
|
||||
default: undefined,
|
||||
},
|
||||
footer: {
|
||||
type: Boolean,
|
||||
|
@ -166,6 +167,7 @@ const tableRef = ref();
|
|||
const params = ref(useFilterParams($attrs['data-key']).params);
|
||||
const orders = ref(useFilterParams($attrs['data-key']).orders);
|
||||
const app = inject('app');
|
||||
const tableHeight = useTableHeight();
|
||||
|
||||
const editingRow = ref(null);
|
||||
const editingField = ref(null);
|
||||
|
@ -678,7 +680,7 @@ const rowCtrlClickFunction = computed(() => {
|
|||
table-header-class="bg-header"
|
||||
card-container-class="grid-three"
|
||||
flat
|
||||
:style="isTableMode && `max-height: ${tableHeight}`"
|
||||
:style="isTableMode && `max-height: ${$props.tableHeight || tableHeight}`"
|
||||
:virtual-scroll="isTableMode"
|
||||
@virtual-scroll="handleScroll"
|
||||
@row-click="(event, row) => handleRowClick(event, row)"
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
import { onMounted, nextTick, ref } from 'vue';
|
||||
|
||||
export function useTableHeight() {
|
||||
const tableHeight = ref('90vh');
|
||||
|
||||
onMounted(async () => {
|
||||
await nextTick();
|
||||
let height = 100;
|
||||
Array.from(document.querySelectorAll('[role="toolbar"]'))
|
||||
.filter((element) => window.getComputedStyle(element).display !== 'none')
|
||||
.forEach(() => {
|
||||
height -= 10;
|
||||
});
|
||||
tableHeight.value = `${height}vh`;
|
||||
});
|
||||
|
||||
return tableHeight;
|
||||
}
|
|
@ -340,3 +340,6 @@ input::-webkit-inner-spin-button {
|
|||
.containerShrinked {
|
||||
width: 70%;
|
||||
}
|
||||
.q-item__section--main ~ .q-item__section--side {
|
||||
padding-inline: 0;
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ import FetchData from 'components/FetchData.vue';
|
|||
import VnFilterPanel from 'src/components/ui/VnFilterPanel.vue';
|
||||
import VnSelect from 'src/components/common/VnSelect.vue';
|
||||
import VnInput from 'src/components/common/VnInput.vue';
|
||||
import { QCheckbox } from 'quasar';
|
||||
import VnCheckbox from 'src/components/common/VnCheckbox.vue';
|
||||
|
||||
import { useArrayData } from 'composables/useArrayData';
|
||||
import { useValidator } from 'src/composables/useValidator';
|
||||
|
@ -250,10 +250,9 @@ onMounted(async () => {
|
|||
</QItemSection>
|
||||
</QItem>
|
||||
<!-- Tags filter -->
|
||||
<QItem class="row items-center">
|
||||
<QItemLabel>
|
||||
{{ t('params.tags') }}
|
||||
</QItemLabel>
|
||||
<QItemLabel header>
|
||||
{{ t('params.tags') }}
|
||||
|
||||
<QIcon
|
||||
name="add_circle"
|
||||
class="fill-icon-on-hover q-ml-md"
|
||||
|
@ -261,7 +260,7 @@ onMounted(async () => {
|
|||
color="primary"
|
||||
@click="tagValues.push({})"
|
||||
/>
|
||||
</QItem>
|
||||
</QItemLabel>
|
||||
<QItem
|
||||
v-for="(tag, index) in tagValues"
|
||||
:key="index"
|
||||
|
@ -269,6 +268,7 @@ onMounted(async () => {
|
|||
>
|
||||
<QItemSection class="col">
|
||||
<VnSelect
|
||||
class="full-width"
|
||||
:label="t('params.tag')"
|
||||
v-model="tag.selectedTag"
|
||||
:options="tagOptions"
|
||||
|
@ -316,25 +316,19 @@ onMounted(async () => {
|
|||
/>
|
||||
</QItem>
|
||||
<!-- Filter fields -->
|
||||
<QItem class="row items-center">
|
||||
<QItemLabel>
|
||||
{{ t('More fields') }}
|
||||
</QItemLabel>
|
||||
<QItemLabel header
|
||||
>{{ t('More fields') }}
|
||||
<QIcon
|
||||
name="add_circle"
|
||||
class="fill-icon-on-hover q-ml-md"
|
||||
size="sm"
|
||||
color="primary"
|
||||
@click="fieldFiltersValues.push({})"
|
||||
/>
|
||||
</QItem>
|
||||
<QItem
|
||||
v-for="(fieldFilter, index) in fieldFiltersValues"
|
||||
:key="index"
|
||||
class="row items-center"
|
||||
>
|
||||
/></QItemLabel>
|
||||
<QItem v-for="(fieldFilter, index) in fieldFiltersValues" :key="index">
|
||||
<QItemSection class="col">
|
||||
<VnSelect
|
||||
class="full-width"
|
||||
:label="t('params.tag')"
|
||||
:model-value="fieldFilter.selectedField"
|
||||
:options="moreFields"
|
||||
|
@ -355,7 +349,7 @@ onMounted(async () => {
|
|||
/>
|
||||
</QItemSection>
|
||||
<QItemSection class="col">
|
||||
<QCheckbox
|
||||
<VnCheckbox
|
||||
v-if="fieldFilter.selectedField?.type === 'boolean'"
|
||||
v-model="fieldFilter.value"
|
||||
:label="t('params.value')"
|
||||
|
@ -370,13 +364,14 @@ onMounted(async () => {
|
|||
@keydown.enter="applyFieldFilters(params, searchFn)"
|
||||
/>
|
||||
</QItemSection>
|
||||
<QIcon
|
||||
name="delete"
|
||||
class="fill-icon-on-hover q-ml-xs"
|
||||
size="sm"
|
||||
color="primary"
|
||||
@click="removeFieldFilter(index, params, searchFn)"
|
||||
/>
|
||||
<QItemSection side
|
||||
><QIcon
|
||||
name="delete"
|
||||
class="fill-icon-on-hover q-ml-xs"
|
||||
size="sm"
|
||||
color="primary"
|
||||
@click="removeFieldFilter(index, params, searchFn)"
|
||||
/></QItemSection>
|
||||
</QItem>
|
||||
<QItem>
|
||||
<QItemSection>
|
||||
|
|
|
@ -99,6 +99,7 @@ const columns = computed(() => [
|
|||
align: 'left',
|
||||
label: t('globals.quantity'),
|
||||
name: 'quantity',
|
||||
class: 'shrink',
|
||||
format: (row) => toCurrency(row.quantity),
|
||||
},
|
||||
{
|
||||
|
@ -791,7 +792,7 @@ watch(
|
|||
{{ row?.item?.subName.toUpperCase() }}
|
||||
</div>
|
||||
</div>
|
||||
<FetchedTags v-if="row.item" :item="row.item" :max-length="6" />
|
||||
<FetchedTags v-if="row.item" :item="row.item" :columns="6" :max-length="6" />
|
||||
<QPopupProxy v-if="row.id && isTicketEditable">
|
||||
<VnInput
|
||||
v-model="row.concept"
|
||||
|
|
Loading…
Reference in New Issue