Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -3,6 +3,18 @@
|
||||
<q-inner-loading :showing="pageBusy">
|
||||
<q-spinner-gears size="52px" color="primary" />
|
||||
</q-inner-loading>
|
||||
<div
|
||||
v-if="pageBusy"
|
||||
class="page-busy-overlay"
|
||||
@click.stop
|
||||
@mousedown.stop
|
||||
@mouseup.stop
|
||||
@touchstart.stop
|
||||
@wheel.stop
|
||||
>
|
||||
<q-spinner-gears size="56px" color="primary" />
|
||||
<div class="page-busy-label">Yukleniyor...</div>
|
||||
</div>
|
||||
|
||||
<div class="top-bar row items-center justify-between q-mb-xs">
|
||||
<div class="text-subtitle1 text-weight-bold">Urun Fiyatlandirma</div>
|
||||
@@ -69,7 +81,7 @@
|
||||
:disable="pageBusy"
|
||||
@click="leftDetailsExpanded = !leftDetailsExpanded"
|
||||
/>
|
||||
<q-btn-dropdown dense color="secondary" outline icon="view_module" label="Doviz Gorunumu" :auto-close="false">
|
||||
<q-btn-dropdown dense color="secondary" outline icon="view_module" label="Doviz Gorunumu" :auto-close="false" :disable="pageBusy">
|
||||
<q-list dense class="currency-menu-list">
|
||||
<q-item clickable @click="selectAllCurrencies">
|
||||
<q-item-section>Tumunu Sec</q-item-section>
|
||||
@@ -126,7 +138,7 @@
|
||||
</div>
|
||||
|
||||
<div class="toolbar-group">
|
||||
<q-btn-dropdown dense color="primary" outline icon="download" label="Cikti Al" :auto-close="true">
|
||||
<q-btn-dropdown dense color="primary" outline icon="download" label="Cikti Al" :auto-close="true" :disable="pageBusy">
|
||||
<q-list dense style="min-width: 260px;">
|
||||
<q-item clickable :disable="filteredRows.length === 0" @click="exportCurrentView">
|
||||
<q-item-section avatar><q-icon name="grid_on" /></q-item-section>
|
||||
@@ -2503,7 +2515,12 @@ async function reloadData ({ page = 1, useCache = true } = {}) {
|
||||
await bindHorizontalScrollSync()
|
||||
// Let the table render before we re-enable actions (prevents double-submits while the UI is still updating).
|
||||
await nextTick()
|
||||
await new Promise((resolve) => setTimeout(resolve, 0))
|
||||
const remainingBusyMs = Math.max(0, 350 - (Date.now() - startedAt))
|
||||
await new Promise((resolve) => setTimeout(resolve, remainingBusyMs))
|
||||
console.info('[product-pricing][ui] render:done', {
|
||||
duration_ms: Date.now() - startedAt,
|
||||
row_count: Array.isArray(store.rows) ? store.rows.length : 0
|
||||
})
|
||||
isReloading.value = false
|
||||
}
|
||||
}
|
||||
@@ -2574,6 +2591,27 @@ onBeforeUnmount(() => {
|
||||
min-width: 170px;
|
||||
}
|
||||
|
||||
.page-busy-overlay {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 9000;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 10px;
|
||||
background: rgba(255, 255, 255, 0.72);
|
||||
backdrop-filter: blur(1px);
|
||||
cursor: wait;
|
||||
pointer-events: all;
|
||||
}
|
||||
|
||||
.page-busy-label {
|
||||
color: #1f2937;
|
||||
font-size: 13px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.top-actions {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
@@ -3,6 +3,18 @@
|
||||
<q-inner-loading :showing="pageBusy">
|
||||
<q-spinner-gears size="52px" color="primary" />
|
||||
</q-inner-loading>
|
||||
<div
|
||||
v-if="pageBusy"
|
||||
class="page-busy-overlay"
|
||||
@click.stop
|
||||
@mousedown.stop
|
||||
@mouseup.stop
|
||||
@touchstart.stop
|
||||
@wheel.stop
|
||||
>
|
||||
<q-spinner-gears size="56px" color="primary" />
|
||||
<div class="page-busy-label">Yukleniyor...</div>
|
||||
</div>
|
||||
|
||||
<div class="top-bar row items-center justify-between q-mb-xs">
|
||||
<div class="text-subtitle1 text-weight-bold">Toptan Kampanya Yonetimi</div>
|
||||
@@ -69,7 +81,7 @@
|
||||
:disable="pageBusy"
|
||||
@click="leftDetailsExpanded = !leftDetailsExpanded"
|
||||
/>
|
||||
<q-btn-dropdown dense color="secondary" outline icon="view_module" label="Gosterge Fiyat Sec" :auto-close="false">
|
||||
<q-btn-dropdown dense color="secondary" outline icon="view_module" label="Gosterge Fiyat Sec" :auto-close="false" :disable="pageBusy">
|
||||
<q-list dense class="currency-menu-list">
|
||||
<q-item clickable @click="selectAllPriceOptions">
|
||||
<q-item-section>Tumunu Sec</q-item-section>
|
||||
@@ -130,7 +142,7 @@
|
||||
</div>
|
||||
|
||||
<div class="toolbar-group">
|
||||
<q-btn-dropdown dense color="primary" outline icon="download" label="Cikti Al" :auto-close="true">
|
||||
<q-btn-dropdown dense color="primary" outline icon="download" label="Cikti Al" :auto-close="true" :disable="pageBusy">
|
||||
<q-list dense style="min-width: 260px;">
|
||||
<q-item clickable :disable="filteredRows.length === 0" @click="exportCurrentView">
|
||||
<q-item-section avatar><q-icon name="grid_on" /></q-item-section>
|
||||
@@ -2713,7 +2725,13 @@ async function reloadData ({ page = 1, useCache = true } = {}) {
|
||||
})
|
||||
await bindHorizontalScrollSync()
|
||||
await nextTick()
|
||||
await new Promise((resolve) => setTimeout(resolve, 0))
|
||||
const remainingBusyMs = Math.max(0, 350 - (Date.now() - startedAt))
|
||||
await new Promise((resolve) => setTimeout(resolve, remainingBusyMs))
|
||||
console.info('[product-pricing][ui] render:done', {
|
||||
duration_ms: Date.now() - startedAt,
|
||||
row_count: Array.isArray(store.rows) ? store.rows.length : 0,
|
||||
variant_row_count: Array.isArray(variantRows.value) ? variantRows.value.length : 0
|
||||
})
|
||||
isReloading.value = false
|
||||
}
|
||||
}
|
||||
@@ -2787,6 +2805,27 @@ onBeforeUnmount(() => {
|
||||
min-width: 170px;
|
||||
}
|
||||
|
||||
.page-busy-overlay {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 9000;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 10px;
|
||||
background: rgba(255, 255, 255, 0.72);
|
||||
backdrop-filter: blur(1px);
|
||||
cursor: wait;
|
||||
pointer-events: all;
|
||||
}
|
||||
|
||||
.page-busy-label {
|
||||
color: #1f2937;
|
||||
font-size: 13px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.top-actions {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
Reference in New Issue
Block a user