Merge remote-tracking branch 'origin/master'

This commit is contained in:
M_Kececi
2026-06-18 17:16:19 +03:00
parent a0274c532e
commit f8c0fe338a
2 changed files with 44 additions and 15 deletions

View File

@@ -216,6 +216,7 @@
color="primary" color="primary"
:model-value="allSelectedVisible" :model-value="allSelectedVisible"
:indeterminate="someSelectedVisible && !allSelectedVisible" :indeterminate="someSelectedVisible && !allSelectedVisible"
:disable="pageBusy"
@update:model-value="toggleSelectAllVisible" @update:model-value="toggleSelectAllVisible"
/> />
<div v-else class="header-with-filter"> <div v-else class="header-with-filter">
@@ -236,6 +237,7 @@
size="8px" size="8px"
icon="filter_alt" icon="filter_alt"
:color="hasFilter(col.field) ? 'primary' : 'grey-7'" :color="hasFilter(col.field) ? 'primary' : 'grey-7'"
:disable="pageBusy"
class="header-filter-btn" class="header-filter-btn"
> >
<q-badge v-if="hasFilter(col.field)" color="primary" floating rounded> <q-badge v-if="hasFilter(col.field)" color="primary" floating rounded>
@@ -254,12 +256,13 @@
outlined outlined
clearable clearable
use-input use-input
:disable="pageBusy"
class="excel-filter-select" class="excel-filter-select"
placeholder="Ara" placeholder="Ara"
/> />
<div class="excel-filter-actions row items-center justify-between q-pt-xs"> <div class="excel-filter-actions row items-center justify-between q-pt-xs">
<q-btn flat dense size="sm" label="Tumunu Sec" @click="selectAllColumnFilterOptions(col.field)" /> <q-btn flat dense size="sm" label="Tumunu Sec" :disable="pageBusy" @click="selectAllColumnFilterOptions(col.field)" />
<q-btn flat dense size="sm" label="Temizle" @click="clearColumnFilter(col.field)" /> <q-btn flat dense size="sm" label="Temizle" :disable="pageBusy" @click="clearColumnFilter(col.field)" />
</div> </div>
<q-virtual-scroll <q-virtual-scroll
v-if="getFilterOptionsForField(col.field).length > 0" v-if="getFilterOptionsForField(col.field).length > 0"
@@ -273,6 +276,7 @@
:key="`${col.field}-${option.value}`" :key="`${col.field}-${option.value}`"
dense dense
clickable clickable
:disable="pageBusy"
class="excel-filter-option" class="excel-filter-option"
@click="toggleColumnFilterValue(col.field, option.value)" @click="toggleColumnFilterValue(col.field, option.value)"
> >
@@ -281,6 +285,7 @@
dense dense
size="sm" size="sm"
:model-value="isColumnFilterValueSelected(col.field, option.value)" :model-value="isColumnFilterValueSelected(col.field, option.value)"
:disable="pageBusy"
@update:model-value="() => toggleColumnFilterValue(col.field, option.value)" @update:model-value="() => toggleColumnFilterValue(col.field, option.value)"
@click.stop @click.stop
/> />
@@ -302,12 +307,13 @@
outlined outlined
clearable clearable
use-input use-input
:disable="pageBusy"
class="excel-filter-select" class="excel-filter-select"
placeholder="Deger ara" placeholder="Deger ara"
/> />
<div class="excel-filter-actions row items-center justify-between q-pt-xs"> <div class="excel-filter-actions row items-center justify-between q-pt-xs">
<q-btn flat dense size="sm" label="Tumunu Sec" @click="selectAllColumnFilterOptions(col.field)" /> <q-btn flat dense size="sm" label="Tumunu Sec" :disable="pageBusy" @click="selectAllColumnFilterOptions(col.field)" />
<q-btn flat dense size="sm" label="Temizle" @click="clearColumnFilter(col.field)" /> <q-btn flat dense size="sm" label="Temizle" :disable="pageBusy" @click="clearColumnFilter(col.field)" />
</div> </div>
<q-virtual-scroll <q-virtual-scroll
v-if="getFilterOptionsForField(col.field).length > 0" v-if="getFilterOptionsForField(col.field).length > 0"
@@ -321,6 +327,7 @@
:key="`${col.field}-${option.value}`" :key="`${col.field}-${option.value}`"
dense dense
clickable clickable
:disable="pageBusy"
class="excel-filter-option" class="excel-filter-option"
@click="toggleColumnFilterValue(col.field, option.value)" @click="toggleColumnFilterValue(col.field, option.value)"
> >
@@ -329,6 +336,7 @@
dense dense
size="sm" size="sm"
:model-value="isColumnFilterValueSelected(col.field, option.value)" :model-value="isColumnFilterValueSelected(col.field, option.value)"
:disable="pageBusy"
@update:model-value="() => toggleColumnFilterValue(col.field, option.value)" @update:model-value="() => toggleColumnFilterValue(col.field, option.value)"
@click.stop @click.stop
/> />
@@ -352,6 +360,7 @@
clearable clearable
label="Min" label="Min"
inputmode="decimal" inputmode="decimal"
:disable="pageBusy"
class="range-filter-field" class="range-filter-field"
/> />
<q-input <q-input
@@ -361,11 +370,12 @@
clearable clearable
label="Max" label="Max"
inputmode="decimal" inputmode="decimal"
:disable="pageBusy"
class="range-filter-field" class="range-filter-field"
/> />
</div> </div>
<div class="row justify-end q-pt-xs"> <div class="row justify-end q-pt-xs">
<q-btn flat dense size="sm" label="Temizle" @click="clearRangeFilter(col.field)" /> <q-btn flat dense size="sm" label="Temizle" :disable="pageBusy" @click="clearRangeFilter(col.field)" />
</div> </div>
</div> </div>
<div v-else-if="isDateRangeFilterField(col.field)" class="excel-filter-menu"> <div v-else-if="isDateRangeFilterField(col.field)" class="excel-filter-menu">
@@ -377,6 +387,7 @@
clearable clearable
type="date" type="date"
label="Baslangic" label="Baslangic"
:disable="pageBusy"
class="range-filter-field" class="range-filter-field"
/> />
<q-input <q-input
@@ -386,11 +397,12 @@
clearable clearable
type="date" type="date"
label="Bitis" label="Bitis"
:disable="pageBusy"
class="range-filter-field" class="range-filter-field"
/> />
</div> </div>
<div class="row justify-end q-pt-xs"> <div class="row justify-end q-pt-xs">
<q-btn flat dense size="sm" label="Temizle" @click="clearRangeFilter(col.field)" /> <q-btn flat dense size="sm" label="Temizle" :disable="pageBusy" @click="clearRangeFilter(col.field)" />
</div> </div>
</div> </div>
</q-menu> </q-menu>
@@ -421,6 +433,7 @@
size="sm" size="sm"
color="primary" color="primary"
:model-value="isRowSelected(rowSelectionKey(props.row))" :model-value="isRowSelected(rowSelectionKey(props.row))"
:disable="pageBusy"
@update:model-value="(val) => onRowCheckboxChange(props.row, val)" @update:model-value="(val) => onRowCheckboxChange(props.row, val)"
@click.stop @click.stop
/> />
@@ -439,6 +452,7 @@
color="primary" color="primary"
label="Hesapla" label="Hesapla"
:loading="!!calcLoadingMap[props.row.productCode]" :loading="!!calcLoadingMap[props.row.productCode]"
:disable="pageBusy || !!calcLoadingMap[props.row.productCode]"
@click="calculateRow(props.row)" @click="calculateRow(props.row)"
/> />
</q-td> </q-td>
@@ -457,7 +471,7 @@
size="sm" size="sm"
color="grey-8" color="grey-8"
icon="history" icon="history"
:disable="!props.row?.productCode" :disable="pageBusy || !props.row?.productCode"
@click="openPriceHistoryDialog(props.row)" @click="openPriceHistoryDialog(props.row)"
> >
<q-tooltip anchor="top middle" self="bottom middle" :offset="[0, 6]">Fiyat gecmisi</q-tooltip> <q-tooltip anchor="top middle" self="bottom middle" :offset="[0, 6]">Fiyat gecmisi</q-tooltip>
@@ -574,6 +588,7 @@
:value="formatPrice(props.row[props.col.field])" :value="formatPrice(props.row[props.col.field])"
type="text" type="text"
inputmode="decimal" inputmode="decimal"
:disabled="pageBusy"
@change="(e) => onEditableCellChange(props.row, props.col.field, e.target.value)" @change="(e) => onEditableCellChange(props.row, props.col.field, e.target.value)"
/> />
<span class="old-price-label" :title="`Eski: ${formatPrice(getOriginalCellValue(props.row, props.col.field))}`"> <span class="old-price-label" :title="`Eski: ${formatPrice(getOriginalCellValue(props.row, props.col.field))}`">

View File

@@ -220,6 +220,7 @@
color="primary" color="primary"
:model-value="allSelectedVisible" :model-value="allSelectedVisible"
:indeterminate="someSelectedVisible && !allSelectedVisible" :indeterminate="someSelectedVisible && !allSelectedVisible"
:disable="pageBusy"
@update:model-value="toggleSelectAllVisible" @update:model-value="toggleSelectAllVisible"
/> />
<div v-else class="header-with-filter"> <div v-else class="header-with-filter">
@@ -240,6 +241,7 @@
size="8px" size="8px"
icon="filter_alt" icon="filter_alt"
:color="hasFilter(col.field) ? 'primary' : 'grey-7'" :color="hasFilter(col.field) ? 'primary' : 'grey-7'"
:disable="pageBusy"
class="header-filter-btn" class="header-filter-btn"
> >
<q-badge v-if="hasFilter(col.field)" color="primary" floating rounded> <q-badge v-if="hasFilter(col.field)" color="primary" floating rounded>
@@ -258,12 +260,13 @@
outlined outlined
clearable clearable
use-input use-input
:disable="pageBusy"
class="excel-filter-select" class="excel-filter-select"
placeholder="Ara" placeholder="Ara"
/> />
<div class="excel-filter-actions row items-center justify-between q-pt-xs"> <div class="excel-filter-actions row items-center justify-between q-pt-xs">
<q-btn flat dense size="sm" label="Tumunu Sec" @click="selectAllColumnFilterOptions(col.field)" /> <q-btn flat dense size="sm" label="Tumunu Sec" :disable="pageBusy" @click="selectAllColumnFilterOptions(col.field)" />
<q-btn flat dense size="sm" label="Temizle" @click="clearColumnFilter(col.field)" /> <q-btn flat dense size="sm" label="Temizle" :disable="pageBusy" @click="clearColumnFilter(col.field)" />
</div> </div>
<q-virtual-scroll <q-virtual-scroll
v-if="getFilterOptionsForField(col.field).length > 0" v-if="getFilterOptionsForField(col.field).length > 0"
@@ -277,6 +280,7 @@
:key="`${col.field}-${option.value}`" :key="`${col.field}-${option.value}`"
dense dense
clickable clickable
:disable="pageBusy"
class="excel-filter-option" class="excel-filter-option"
@click="toggleColumnFilterValue(col.field, option.value)" @click="toggleColumnFilterValue(col.field, option.value)"
> >
@@ -285,6 +289,7 @@
dense dense
size="sm" size="sm"
:model-value="isColumnFilterValueSelected(col.field, option.value)" :model-value="isColumnFilterValueSelected(col.field, option.value)"
:disable="pageBusy"
@update:model-value="() => toggleColumnFilterValue(col.field, option.value)" @update:model-value="() => toggleColumnFilterValue(col.field, option.value)"
@click.stop @click.stop
/> />
@@ -306,12 +311,13 @@
outlined outlined
clearable clearable
use-input use-input
:disable="pageBusy"
class="excel-filter-select" class="excel-filter-select"
placeholder="Deger ara" placeholder="Deger ara"
/> />
<div class="excel-filter-actions row items-center justify-between q-pt-xs"> <div class="excel-filter-actions row items-center justify-between q-pt-xs">
<q-btn flat dense size="sm" label="Tumunu Sec" @click="selectAllColumnFilterOptions(col.field)" /> <q-btn flat dense size="sm" label="Tumunu Sec" :disable="pageBusy" @click="selectAllColumnFilterOptions(col.field)" />
<q-btn flat dense size="sm" label="Temizle" @click="clearColumnFilter(col.field)" /> <q-btn flat dense size="sm" label="Temizle" :disable="pageBusy" @click="clearColumnFilter(col.field)" />
</div> </div>
<q-virtual-scroll <q-virtual-scroll
v-if="getFilterOptionsForField(col.field).length > 0" v-if="getFilterOptionsForField(col.field).length > 0"
@@ -325,6 +331,7 @@
:key="`${col.field}-${option.value}`" :key="`${col.field}-${option.value}`"
dense dense
clickable clickable
:disable="pageBusy"
class="excel-filter-option" class="excel-filter-option"
@click="toggleColumnFilterValue(col.field, option.value)" @click="toggleColumnFilterValue(col.field, option.value)"
> >
@@ -333,6 +340,7 @@
dense dense
size="sm" size="sm"
:model-value="isColumnFilterValueSelected(col.field, option.value)" :model-value="isColumnFilterValueSelected(col.field, option.value)"
:disable="pageBusy"
@update:model-value="() => toggleColumnFilterValue(col.field, option.value)" @update:model-value="() => toggleColumnFilterValue(col.field, option.value)"
@click.stop @click.stop
/> />
@@ -356,6 +364,7 @@
clearable clearable
label="Min" label="Min"
inputmode="decimal" inputmode="decimal"
:disable="pageBusy"
class="range-filter-field" class="range-filter-field"
/> />
<q-input <q-input
@@ -365,11 +374,12 @@
clearable clearable
label="Max" label="Max"
inputmode="decimal" inputmode="decimal"
:disable="pageBusy"
class="range-filter-field" class="range-filter-field"
/> />
</div> </div>
<div class="row justify-end q-pt-xs"> <div class="row justify-end q-pt-xs">
<q-btn flat dense size="sm" label="Temizle" @click="clearRangeFilter(col.field)" /> <q-btn flat dense size="sm" label="Temizle" :disable="pageBusy" @click="clearRangeFilter(col.field)" />
</div> </div>
</div> </div>
<div v-else-if="isDateRangeFilterField(col.field)" class="excel-filter-menu"> <div v-else-if="isDateRangeFilterField(col.field)" class="excel-filter-menu">
@@ -381,6 +391,7 @@
clearable clearable
type="date" type="date"
label="Baslangic" label="Baslangic"
:disable="pageBusy"
class="range-filter-field" class="range-filter-field"
/> />
<q-input <q-input
@@ -390,11 +401,12 @@
clearable clearable
type="date" type="date"
label="Bitis" label="Bitis"
:disable="pageBusy"
class="range-filter-field" class="range-filter-field"
/> />
</div> </div>
<div class="row justify-end q-pt-xs"> <div class="row justify-end q-pt-xs">
<q-btn flat dense size="sm" label="Temizle" @click="clearRangeFilter(col.field)" /> <q-btn flat dense size="sm" label="Temizle" :disable="pageBusy" @click="clearRangeFilter(col.field)" />
</div> </div>
</div> </div>
</q-menu> </q-menu>
@@ -425,6 +437,7 @@
size="sm" size="sm"
color="primary" color="primary"
:model-value="isRowSelected(rowSelectionKey(props.row))" :model-value="isRowSelected(rowSelectionKey(props.row))"
:disable="pageBusy"
@update:model-value="(val) => onRowCheckboxChange(props.row, val)" @update:model-value="(val) => onRowCheckboxChange(props.row, val)"
@click.stop @click.stop
/> />
@@ -444,7 +457,7 @@
size="sm" size="sm"
color="grey-8" color="grey-8"
icon="history" icon="history"
:disable="!props.row?.productCode" :disable="pageBusy || !props.row?.productCode"
@click="openCampaignHistoryDialog(props.row)" @click="openCampaignHistoryDialog(props.row)"
> >
<q-tooltip anchor="top middle" self="bottom middle" :offset="[0, 6]">Kampanya gecmisi</q-tooltip> <q-tooltip anchor="top middle" self="bottom middle" :offset="[0, 6]">Kampanya gecmisi</q-tooltip>
@@ -514,7 +527,7 @@
:options="campaignSelectOptions" :options="campaignSelectOptions"
:model-value="props.row.campaignId" :model-value="props.row.campaignId"
:placeholder="props.row.campaignIsMixed ? 'Karisik' : ''" :placeholder="props.row.campaignIsMixed ? 'Karisik' : ''"
:disable="campaignLoading" :disable="pageBusy || campaignLoading"
style="min-width: 120px" style="min-width: 120px"
@update:model-value="(val) => onRowCampaignChange(props.row, val)" @update:model-value="(val) => onRowCampaignChange(props.row, val)"
/> />
@@ -627,6 +640,7 @@
:value="formatPrice(props.row[props.col.field])" :value="formatPrice(props.row[props.col.field])"
type="text" type="text"
inputmode="decimal" inputmode="decimal"
:disabled="pageBusy"
@change="(e) => onEditableCellChange(props.row, props.col.field, e.target.value)" @change="(e) => onEditableCellChange(props.row, props.col.field, e.target.value)"
/> />
<span class="old-price-label" :title="`Eski: ${formatPrice(getOriginalCellValue(props.row, props.col.field))}`"> <span class="old-price-label" :title="`Eski: ${formatPrice(getOriginalCellValue(props.row, props.col.field))}`">