1010 <div class =" no-data" >No data for the selected period</div >
1111 </div >
1212 <div v-else >
13+ <div class =" date-block" >
14+ <VueDatePicker
15+ range
16+ :enable-time-picker =" false"
17+ class =" date-picker"
18+ v-model =" selectedDate"
19+ :preset-ranges =" presetRanges"
20+ @update:model-value =" handleDate"
21+ >
22+ <template #yearly =" { label , range , presetDateRange } " >
23+ <span @click =" presetDateRange(range)" >{{ label }}</span >
24+ </template ></VueDatePicker
25+ >
26+ </div >
1327 <div class =" stats-block block" >
1428 <div class =" header" >Average time on selected days</div >
1529 <p >{{ convertSummaryTimeToString(tabsByDays.averageTime) }}</p >
@@ -48,27 +62,41 @@ import Expander from '../components/Expander.vue';
4862import { TabListByDays } from ' ../dto/tabListSummary' ;
4963import { useTabListByDays } from ' ../compositions/tab-list-by-days' ;
5064import { convertSummaryTimeToString } from ' ../utils/converter' ;
65+ import { ranges , ThisWeekRange } from ' ../utils/date' ;
5166
5267const tabsByDays = ref <TabListByDays >();
5368const isLoading = ref <boolean >();
5469const noData = ref <boolean >();
70+ const selectedDate = ref <Date []>();
71+
72+ const presetRanges = ranges ();
5573
5674const countOfDays = computed (() =>
5775 tabsByDays .value != undefined ? tabsByDays .value .days .length : 0 ,
5876);
5977
60- async function loadList() {
61- const tabList = await useTabListByDays (new Date ( ' 06/03/2023 ' ), new Date ( ' 06/14/2023 ' ) );
78+ async function loadList(dateFrom : Date , dateTo : Date ) {
79+ const tabList = await useTabListByDays (dateFrom , dateTo );
6280 if (tabList != null ) {
6381 tabsByDays .value = tabList ;
6482 if (tabList .days .length == 0 && tabList .summaryTime == 0 ) noData .value = true ;
6583 }
6684 isLoading .value = false ;
6785}
6886
87+ async function handleDate(modelData : Date []) {
88+ selectedDate .value = modelData ;
89+ const dateFrom = selectedDate .value ?.[0 ] as Date ;
90+ const dateTo = selectedDate .value ?.[1 ] as Date ;
91+ await loadList (dateFrom , dateTo );
92+ }
93+
6994onMounted (async () => {
7095 isLoading .value = true ;
71- await loadList ();
96+ selectedDate .value = ThisWeekRange ;
97+ const dateFrom = selectedDate .value ?.[0 ] as Date ;
98+ const dateTo = selectedDate .value ?.[1 ] as Date ;
99+ await loadList (dateFrom , dateTo );
72100});
73101 </script >
74102
@@ -95,4 +123,10 @@ onMounted(async () => {
95123 font-size : 13px ;
96124 color : rgb (59 , 59 , 59 );
97125}
126+ .date-block {
127+ margin : 0 20px 0 20px ;
128+ }
129+ .date-picker {
130+ width : 250px ;
131+ }
98132 </style >
0 commit comments