diff --git a/src/components/ui/VnSms.vue b/src/components/ui/VnSms.vue index bf6e0695e..8b25ba5da 100644 --- a/src/components/ui/VnSms.vue +++ b/src/components/ui/VnSms.vue @@ -54,6 +54,7 @@ function formatNumber(number) { :offset="100" :limit="5" auto-load + map-key="smsFk" > <template #body="{ rows }"> <QCard diff --git a/src/pages/Customer/Card/CustomerConsumption.vue b/src/pages/Customer/Card/CustomerConsumption.vue index 35f366e47..640e37ed3 100644 --- a/src/pages/Customer/Card/CustomerConsumption.vue +++ b/src/pages/Customer/Card/CustomerConsumption.vue @@ -2,7 +2,7 @@ import { ref, computed, onBeforeMount } from 'vue'; import axios from 'axios'; import { useI18n } from 'vue-i18n'; -import { toDate } from 'src/filters/index'; +import { dateRange, toDate } from 'src/filters/index'; import { useRoute } from 'vue-router'; import VnTable from 'components/VnTable/VnTable.vue'; @@ -104,18 +104,12 @@ function getParams() { }; } const userParams = computed(() => { - const minDate = Date.vnNew(); - minDate.setHours(0, 0, 0, 0); - minDate.setMonth(minDate.getMonth() - 2); - - const maxDate = Date.vnNew(); - maxDate.setHours(23, 59, 59, 59); - - return { - campaign: campaignList.value[0]?.id, - from: minDate, - to: maxDate, + const campaign = campaignList.value[0]?.id; + const userParams = { + campaign, + ...updateDateParams(campaign, { from: Date.vnNew(), to: Date.vnNew() }), }; + return userParams; }); const openReportPdf = () => { openReport(`Clients/${route.params.id}/campaign-metrics-pdf`, getParams()); @@ -134,6 +128,23 @@ const sendCampaignMetricsEmail = ({ address }) => { ...getParams(), }); }; + +const updateDateParams = (value, params) => { + if (!value) { + params.from = null; + params.to = null; + return; + } + const campaign = campaignList.value.find((c) => c.id === value); + if (!campaign) return; + + const { dated, previousDays, scopeDays } = campaign; + const _date = new Date(dated); + const [from, to] = dateRange(_date); + params.from = new Date(from.setDate(from.getDate() - previousDays)).toISOString(); + params.to = new Date(to.setDate(to.getDate() + scopeDays)).toISOString(); + return params; +}; </script> <template> @@ -144,7 +155,6 @@ const sendCampaignMetricsEmail = ({ address }) => { :order="['itemTypeFk', 'itemName', 'itemSize', 'description']" :columns="columns" search-url="consumption" - :filter="filter" :user-params="userParams" :default-remove="false" :default-reset="false" @@ -201,6 +211,7 @@ const sendCampaignMetricsEmail = ({ address }) => { class="q-px-sm q-pt-none fit" dense option-label="code" + @update:model-value="(data) => updateDateParams(data, params)" > <template #option="scope"> <QItem v-bind="scope.itemProps">