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">